Logo Studenta

ARTICULO-Tarificador-de-llamadas-VoIP-Opensource

¡Estudia con miles de materiales!

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.

Otros materiales

Materiales relacionados

14 pag.
8448171330

Cesar Vallejo

User badge image

Maik

105 pag.
Club165

SIN SIGLA

User badge image

mateo chillagana

92 pag.
IMPLEMENTACION VOIP-pro

Teodoro Olivares

User badge image

Rene torres gonzalez