Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Tarificador de llamadas VoIP Open Source Area de conocimiento: Sistemas de Información Fabiola Castillo Portilla 1 , Gerardo Contreras Vega 2 y Carlos Alberto Ochoa Rivera 3 1 Facultad de Informática, Universidad Veracruzana, Edificio Perote, Depto. 301 Unidad FOVISSSTE, Xalapa, Veracruz, México, amsaspenda@hotmail.com. 2 Facultad de Informática, Universidad Veracruzana, Av. Xalapa esq. Av. Ávila Camacho s/n, Xalapa, Veracruz, México, gcontreras@uv.mx, Tel. 01 228 112 3672 3 Facultad de Informática, Universidad Veracruzana, Av. Xalapa esq. Av. Ávila Camacho s/n, Xalapa, Veracruz, México, cochoa@uv.mx, Tel. 01 228 121 7577 Resumen: Hoy en día muchas empresas utilizan la tecnología VoIP pero con soluciones propietarias, ya que las soluciones de software libre son escasas. Al momento de iniciar este proyecto existían algunos tarificadores y otros más se encontraban en desarrollo. Un software tarificador es aquel que lleva un control de las llamadas entrantes y salientes y aplica tarifas preestablecidas sobre cada llamada que es realizada desde una extensión o número telefónico perteneciente a una red telefónica. Los objetivos del trabajo son la obtención de un software tarificador VoIP con licencia GPL. Para el desarrollo del proyecto se usaron las metodologías: Áncora, para el análisis de requerimientos, PUDS, como metodología base. El software usado para el desarrollo fue: MySQL, Ruby on Rails, Asterisk y RAGI (Ruby Asterisk Gateway Interface). Palabras Clave: VoIP, Tarificador, RAGI, Asterisk. Introducción Desde sus inicios hasta nuestros días la telefonía ha tenido una evolución significativa. Se empezó con teléfonos de tamaño grande, hasta actualmente usar dispositivos de bolsillo con tamaños minúsculos. Por otro lado, en cuanto a su funcionamiento, también ha habido cambios importantes. Con el surgimiento de Internet, aparecieron nuevas tecnologías en telecomunicaciones. El método de transmisión de datos ha cambiado y actualmente la transmisión de una llamada telefónica a través de las redes de datos ha tomando fuerza últimamente. La situación actual de la telefonía es prometedora en el aspecto del desarrollo de software. Hay muchas opciones de software para desarrollar y las opciones se multiplican cuando hablamos de software libre y software propietario. mailto:amsaspenda@hotmail.com mailto:gcontreras@uv.mx mailto:cochoa@uv.mx Aunque, VoIP se ha popularizado en gran parte debido a las ventajas de reducción de costos a los consumidores, por otro lado no se conocen los proyectos de software libre que existen relacionados con esta tecnología, los cuales pueden ofrecer mayores beneficios aumentando la libertad de uso de los usuarios. Un ejemplo de software VoIP son los tarificadores de llamadas. Este artículo, muestra el desarrollo de un software tarificador de llamadas basado en VoIP con licencia GPL. Al momento de iniciar el proyecto detallado en el presente artículo, el software tarificador VoIP con licencia GPL es escaso. Estado del Arte A continuación se presenta una explicación general de los fundamentos teóricos que respaldan el presente proyecto. Se muestra la información que se consideró relevante y necesaria de conocer antes de adentrarse a los términos del proyecto, tal como el software utilizado y conceptos de tecnología de VoIP. Ruby Ruby es un lenguaje de scripts, multiplataforma, completamente orientado a objetos. Es software libre creado por Yukihiro Matsumoto y fue diseñado especialmente para desarrollar de forma rápida y sencilla. El lenguaje Ruby posee varias características de otros lenguajes como son: Perl, Smalltalk, Eiffel, Ada y Lisp. Ruby on Rails Ruby on Rails es un framework creado por David Heinemeier Hansson para el desarrollo de aplicaciones web con acceso a datos, es software libre por naturaleza y su estructura y funcionamiento se basan en el patrón de diseño Modelo Vista Controlador (MVC). Rails es un entorno de desarrollo del lenguaje Ruby. Para probarlo, solo se necesita una base de datos y un servidor web. Un aspecto importante de trabajar con Ruby on Rails en el proyecto aquí descrito es que, el código fuente quedará abierto a aquellos que deseen modificarlo y realizar mejoras, sirviendo como retroalimentación entre los desarrolladores de Asterisk. Sobre este último punto, es importante mencionar la contribución que esto significa para el área de programación, pues, seria sino el primero, uno de los primeros software tarificadores que se harían utilizando Ruby on Rails, ya que, los tarificadores existentes, la mayoría están desarrollados con lenguajes como Perl, Python y PHP. Asterisk Asterisk es una aplicación software libre de una central telefónica (PBX), fue desarrollada por Mark Spencer. Como cualquier PBX, se puede conectar un número determinado de teléfonos para hacer llamadas entre sí e incluso conectar a un proveedor de VoIP o bien a una RDSI tanto básicos como primarios. Los usuarios pueden crear nuevas funcionalidades escribiendo planes de marcación (dialplan) en el lenguaje de script de Asterisk o añadiendo módulos escritos en lenguaje C o en cualquier otro lenguaje de programación soportado por Linux[1]. RAGI (Ruby Asterisk Gateway Interface) RAGI es un framework open source que permite conectar una aplicación Ruby on Rails con el servidor Asterisk. RAGI facilita el desarrollo de aplicaciones de telefonía automatizadas e interactivas tales como IRV, Enrutamiento de llamadas, Centro de llamadas. Extiende la funcionalidad del PBX para potenciar la productividad de Ruby on Rails. Las clases más importantes en RAGI para desarrollar una aplicación son: call_connection, call_handler y call_initiate. Estas tres clases proveen todo lo necesario para crear una aplicación telefónica interactiva en Asterisk usando Ruby. Se utilizó para no tener que implementar la relación Asterisk-Ruby desde cero. RAGI fue creado por SnapVine, Inc.[3] y está disponible bajo la licencia BSD. Figura 1. RAGI y Asterisk VoIP (Voice over Internet Protocol) VoIP es un método que consiste en tomar señales de audio, convertirlas en datos digitales, y transmitirlos a través de una red. Fig. 2 Arquitectura y funcionamiento de una red VoIP Existen tres métodos de conexión a una red de VoIP: El uso de un teléfono VoIP El uso de un teléfono tradicional, con un adaptador de VoIP El uso de una computadora con bocinas y micrófono Metodología de desarrollo Para el desarrollo de este proyecto se hizo uso de las metodologías: Ancora, para el análisis de requerimientos [3]. PUDS (Proceso Unificado de Desarrollo de Software), como metodología base ya que se desarrolló el software en incrementos y revisiones. En este punto, es importante mencionar que no se hizo uso de todos los diagramas especificados por PUDS, sino sólo de aquellos que se consideró representaban información útil y necesaria para este caso. Objetivo general Desarrollar un software dentro del contexto de la telefonía VoIP para que las empresas usuarias de esta tecnología se motiven a continuar utilizándola y/o surjan nuevos usuarios. Objetivos específicos: Obtener un software tarificador de llamadas VoIP con Licencia Pública General (GPL por sus siglas en inglés). 1. Contribuir con la comunidad de desarrolladores de Asterisk al proporcionar un código fuente abierto, desarrollado con Ruby on Rails, lenguaje y framework que a la fecha recién comienza su aplicación en la tecnología VoIP. 2. Motivar el uso de la telefonía VoIP al presentar una opción más de software tarificador cuya licencia no tendrá tantas limitantes como el licenciamiento del software privativo. Software tarificador de llamadas telefónicas Un software tarificador de llamadas telefónicas tiene como función principal aplicar tarifas a una llamada que es realizadadesde una extensión o número telefónico obteniendo un costo total al finalizar ésta. En general, el software tarificador podrá manipular la información obtenida de las llamadas y aplicar tarifas, para proporcionar información al usuario que le ayudará en la toma de decisiones respecto a su consumo telefónico y a la manera en que tiene distribuidos los permisos de realización de llamadas y uso de servicios sobre las extensiones o números telefónicos. Guión de la propuesta computacional A continuación se muestra la propuesta computacional para el software a desarrollar. Guión: Tarificador de llamadas VoIP Open source Pista: General Papeles: ATA=Administrador del Tarificador UTA= Usuario del Tarificador TAVO=Software Tarificador de Llamadas VoIP Open Source Utensilios: I=Impresora T=Tarifa RLE=Reporte Llamadas Entrantes RLS=Reporte Llamadas Salientes Ll=Llamada CU=Cuenta de usuario RU=Rol de usuario ET=Extensión telefónica GP=Grupo BD=Base de Datos Condiciones de entrada: UTA o ATA requiere tarificar las llamadas salientes UT o ATA requiere reportes de llamadas entrantes y salientes AT requiere administrar usuarios y roles de usuario del sistema; así como las extensiones telefónicas, grupos de extensiones telefónicas y tarifas de llamadas. Condiciones de salida: UT o AT obtiene reporte de llamadas realizadas y recibidas con sus respectivos montos de tarifas aplicadas. ADM administra usuarios y roles de usuario del sistema; así como las extensiones telefónicas, grupos de extensiones telefónicas y tarifas de llamadas. Escena 1: Control de acceso UTA o ATA ingresa login y password ¿login y/o password incorrectos? UTA o ATA recibe mensaje de “login y/o password incorrectos” Escena 2: Reportes UTA o ATA ingresa parámetros de RLS o RLE UTA o ATA visualiza RLS o RLE UTA o ATA especifica parámetros de impresión de RLS o RLE ¿No se pudo imprimir? UTA o ATA recibe mensaje de error de impresión UTA o ATA obtiene de RLE o RLS usando I Escena 3: Tarificación TAVO recibe Ll ¿Es saliente? TAVO determina costo de Ll usando T TAVO registra Ll en BD Escena 4: Cuentas de usuario ATA ingresa datos de CU ATA actualiza CU ¿No se pudo actualizar? ATA recibe mensaje de error de la actualización Escena 5: Tarifas ATA ingresa datos de T ATA actualiza T ¿No se pudo actualizar? ATA recibe mensaje de error de la actualización Escena 6: Extensiones telefónicas ATA ingresa datos de ET ADM actualiza ET ¿No se pudo actualizar? ATA recibe mensaje de error de la actualización Escena 7: Grupos ATA ingresa datos de GP ADM actualiza GP ¿No se pudo actualizar? ATA recibe mensaje de error de la actualización Análisis En este apartado se muestra el diagrama de paquetes de análisis y el diagrama de casos de uso. Diagrama de casos de uso En este diagrama se observan 7 casos de uso o funcionalidades y 3 roles de usuarios del sistema. Fig. 5 Diagrama de casos de uso Trabajos futuros El proyecto desarrollado en este documento queda abierto a la aportación de otros desarrolladores que deseen mejorarlo. Se puede ampliar la forma de presentar reportes, agregando la generación de gráficas o el manejo de AJAX para manipulación de los resultados. Debido a la cantidad de software que se requiere instalar para que el software tarificador funcione, se necesita crear instalador que se encargue de automatizar todo el proceso de instalación. Conclusiones Con el desarrollo de este proyecto de software se deja abierta la puerta para el desarrollo de nuevos proyectos necesarios para el área de la telefonía IP. Es un campo relativamente nuevo y con poca explotación donde se tuvo que hacer uso de los beneficios que ofrece el software libre para desarrollar el proyecto y contribuir específicamente con la modificación del gateway RAGI, el cual, fue liberado como proyecto en el año de 2005 por lo que aún le queda mucho camino por recorrer. Referencias [1] About Asterisk. http://www.asterisk.org/support/about. 13 de junio de 2008 [2] Sitio oficial de RAGI. www.snapvine.com/code/ragi. 13 de junio de 2008. [3] Áncora: Metodología para el Análisis de Requerimientos de Software conducente al Reuso. Sumano López Ma. De los Ángeles. Octubre de 2001, México. Currículo corto de los autores Fabiola Castillo Portilla Licenciada en Informática egresada de la Universidad Veracruzana en 2004. Actual estudiante de la Maestría en Ingeniería de Software en la misma universidad. Gerardo Contreras Vega Maestro en Ciencias de la Computación. Actual catedrático de la Licenciatura en Informática en la Universidad Veracruzana. Carlos Alberto Ochoa Rivera Maestro en Ciencias de la Computación. Actual catedrático de la Licenciatura en Informática en la Universidad Veracruzana.
Compartir