Вы находитесь на странице: 1из 232

UNIVERSIDAD SIMN BOLVAR

Decanato de Estudios Profesionales


Coordinacin de Electrnica

Propuesta de Implementacin de un Servidor Proxy


SIP para el Enrutamiento de Voz sobre IP.

Por
BENITEZ DAZA, Jessica
GONZLEZ CLAREMBAUX, Valentina Sofa

Sartenejas, febrero 2007

- ii -

UNIVERSIDAD SIMN BOLVAR


Decanato de Estudios Profesionales
Coordinacin de Electrnica

Propuesta de Implementacin de un Servidor Proxy


SIP para el Enrutamiento de Voz sobre IP.

Por
BENITEZ DAZA, Jessica
GONZLEZ CLAREMBAUX, Valentina Sofa

Realizado en la empresa CANTV con la Asesora de:


Tutor Acadmico: BADRA, Renny
Tutor industrial: PADRN, Ivan

INFORME FINAL DE
CURSOS EN COOPERACIN TCNICA Y DESARROLLO SOCIAL
Presentado ante la Ilustre Universidad Simn Bolvar
como requisito parcial para optar al ttulo de

Ingeniero Electrnico
Sartenejas, febrero 2007

- iii -

UNIVERSIDAD SIMN BOLVAR


Decanato de Estudios Profesionales
Coordinacin de Electrnica

Propuesta de Implementacin de un Servidor Proxy SIP


para el Enrutamiento de Voz sobre IP.
INFORME FINAL DE CURSOS EN COOPERACIN TCNICA Y DESARROLLO SOCIAL
presentado por
BENITEZ DAZA, Jessica
GONZLEZ CLAREMBAUX, Valentina Sofa

RESUMEN
El objetivo principal de esta pasanta fue la elaboracin de una propuesta de implementacin
de un Servidor Proxy SIP, para el Enrutamiento de Voz sobre IP, incorporando una ejemplificacin en
la cual se representaron las funcionalidades bsicas de un Proxy, escalable y editable. Para
alcanzarlo, se necesit de una investigacin terica, la eleccin de las herramientas adecuadas para la
misma, la configuracin de cada una de forma independiente para darle una estructura adecuada, al
igual que la realizacin de las pruebas pertinentes para asegurar as su correcto funcionamiento. El
servidor SIP est desarrollado sobre el software libre OpenSER, permitiendo la manejabilidad del
mismo. Adems se desarroll una herramienta Web para poder administrar el servicio de una manera
fcil y rpida sin tener que acceder a la consola para modificar la configuracin del servicio, as como
tambin dos manuales uno tcnico y otro para usuario donde se mostr cmo manejar de una manera
ms rpida y eficiente las herramientas desarrolladas.
PALABRAS CLAVES:
VoIP, Proxy, SIP, enrutamiento, OpenSER, software, softphone, servidor, peticin.

Aprobado con mencin:_______


Postulado para el premio:_______

Sartenejas, febrero 2007

- iv DEDICATORIA

A mis padres, por ser mi soporte y por su amor incondicional,


a mis hermano Jonathan, por todo el apoyo brindado,
a mi hermana Jacqueline, por ser la alegra de mis das,
a mis abuelos, por apoyarme siempre.
Gracias a todos. Los quiero mucho.
Jessica

A mis abuelos, ejemplo de orgullo, constancia y rectitud,


a mis padres por su amor y apoyo incondicional,
a mi hermano Daniel, por ser mi ejemplo a seguir,
a mi hermano Leopoldo por estar conmigo en todo momento.
Los quiero.
Valentina

-vAGRADECIMIENTOS

A Dios por ser nuestro gua y estar presente con nosotras.


A nuestros padres, de quienes siempre estaremos orgullosos, gracias por brindarnos todo su
amor, por estar cuando ms los necesitamos, por su paciencia y todo su cario. Gracias por existir.
A nuestros hermanos. Gracias por siempre estar all y compartir los buenos y los malos
momentos con nosotras.
A nuestros tutores, Ing. Ivn Padrn e Ing. Renny Badra, por su apoyo y seguimiento durante
el desarrollo del proyecto.
Al Ing. Jess Tovar, por su ayuda y comprensin en el desenvolvimiento del proyecto.
A los ingenieros Carlos Camacho, Jess Tovar, Ivn Padrn, Pedro Pea y Maurizio Trombetta
por habernos recibido con cario y haber estado en todo momento.
A nuestros amigos, Gervasio Briceo, Miguelangel Faria, Idania Gorrochategui, Vernica
Jaraba, Arqumedes Lpez, Silvia Mendez y Keith Vergara, por los momentos compartidos a pesar de
encontrarnos en una nueva etapa.
A nuestros profesores, que con su labor del da a da nos ayudaron a enfrentar los retos que se
nos presentaron en este proyecto y los que nos surgirn ms adelante.
A todas aquellas personas que de una u otra forma nos ayudaron a realizar este proyecto.
Muchas Gracias.

- vi NDICE
RESUMEN .................................................................................................................................... iii
PALABRAS CLAVES ..................................................................................................................... iii
DEDICATORIA ............................................................................................................................ iv
AGRADECIMIENTOS....................................................................................................................v
NDICE ........................................................................................................................................ vi
NDICE DE FIGURAS .................................................................................................................viii
NDICE DE TABLAS .....................................................................................................................x
GLOSARIO DE TRMINOS Y ABREVIATURAS ........................................................................... xi
GLOSARIO DE TRMINOS Y ABREVIATURAS ........................................................................... xi
CAPTULO I: INTRODUCCIN ....................................................................................................1
1.1.
Justificacin....................................................................................................................1
1.2.
Objetivos........................................................................................................................1
1.2.1.Objetivo General.........................................................................................................1
1.2.2.Objetivos Especficos...................................................................................................2
CAPITULO II MARCO ORGANIZACIONAL ..................................................................................3
2.1.
Misin ............................................................................................................................3
2.2.
Visin.............................................................................................................................3
2.3.
Resea histrica .............................................................................................................3
2.4.
Empresas filiales de CANTV .............................................................................................4
2.5.
Estructura Organizativa ...................................................................................................4
CAPTULO III: MARCO TERICO ...............................................................................................7
3.1.
Evolucin de los Sistemas Telefnicos ..............................................................................7
3.2.
Redes Telefnicas ...........................................................................................................8
3.3.
Sealizacin telefnica ....................................................................................................9
3.4.
Funciones de sealizacin telefnica ................................................................................9
3.4.1 Estructura de sealizacin .........................................................................................10
3.4.2.Evolucin de las Redes Telefnicas ............................................................................11
3.4.2.1.POTS.........................................................................................................11
3.4.2.2.PSTN.........................................................................................................12
3.4.2.3.NGN ..........................................................................................................12
3.5.
Sistema de Sealizacin R2 ...........................................................................................13
3.6.
Sistema de Sealizacin N 7.........................................................................................13
3.6.1 Puntos de Sealizacin ..............................................................................................14
3.6.2 Protocolo SS7 ...........................................................................................................15
3.7.
Redes de Computadora .................................................................................................16
3.7.1 Topologas de Red (Fsica y lgica) ............................................................................16
3.7.2.Modelos de Redes.....................................................................................................18
3.7.3.El protocolo IP..........................................................................................................20
3.7.4.El protocolo TCP .......................................................................................................21
3.7.5.El protocolo UDP ......................................................................................................22
3.8.
Elementos de redes.......................................................................................................22
3.8.1.Hubs .....................................................................................................................22
3.8.2.Switches................................................................................................................22
3.8.3.Routers .................................................................................................................23
3.8.4.Gateways ..............................................................................................................23
3.8.5.Ordenadores y Servidores .........................................................................................23
3.8.6.VPN .........................................................................................................................23
3.9.
Sistema operativo Linux. Fedora Core 4..........................................................................24
3.10.
Sealizacin Telefnica en NGN y VoIP.......................................................................24
3.10.1.VoIP ......................................................................................................................25
3.10.2.Protocolos VoIP ......................................................................................................26
3.10.3.Trfico Telefnico ...................................................................................................31

- vii 3.10.4.Calidad de Servicio en las redes VoIP .......................................................................32


3.11.
Resumen entre sistema de telefona tradicional o bsico y paquetizado (VoIP). ............33
3.12.
Herramientas para VoIP ............................................................................................34
CAPTULO IV: METODOLOGA..................................................................................................38
4.1.
Revisin Tcnica ...........................................................................................................38
4.2.
Investigacin y seleccin de las herramientas .................................................................38
4.2.1.Aplicaciones .............................................................................................................38
4.2.2.Sistema Operativo ....................................................................................................39
4.2.3.Servidor ...................................................................................................................39
4.2.4.Herramientas complementarias .................................................................................39
4.3.
Evaluacin de la aplicacin ............................................................................................40
4.4.
Instalacin de las herramientas y configuracin de la Aplicacin ......................................40
4.4.1.Software ..................................................................................................................40
4.4.2.Aplicacin Web .........................................................................................................43
4.4.3.Manuales Tcnico y Web...........................................................................................43
4.5.
Verificacin y Pruebas. ..................................................................................................43
4.5.1.Funcionamiento de la aplicacin ................................................................................44
4.5.2.Pgina Web..............................................................................................................44
4.5.3.Pruebas de trfico.....................................................................................................44
CAPTULO V: RESULTADOS ......................................................................................................45
5.1.
Seleccin de las herramientas........................................................................................45
5.1.1.OpenSER..................................................................................................................47
5.1.2.Dreamweaver...........................................................................................................48
5.1.3.Ngrep ......................................................................................................................49
5.1.4.MySQL Front y Putty:................................................................................................49
5.1.5.SIPp ........................................................................................................................49
5.2.
Archivo de Configuracin ...............................................................................................49
5.2.1.Diseo .....................................................................................................................50
5.2.2.Posibles Escenarios para la Ubicacin del OpenSER dentro de la Red de CANTV. ..........55
5.2.3.Pruebas de Configuracin..........................................................................................57
5.3.
Pgina Web ..................................................................................................................80
5.3.1.Diseo .....................................................................................................................80
5.3.2.Modificacin del archivo de configuracin de OpenSER ...............................................82
CAPTULO VI: CONCLUSIONES Y RECOMENDACIONES .........................................................86
REFERENCIAS............................................................................................................................88
ANEXO 1: Manual de OpenSER .................................................................................................91
ANEXO 2. Manual SERWeb Administrador ............................................................................ 170
ANEXO 3. Trazas de una llamada desde un telfono IP hacia un telfono en la PSTN
conlgando ste. ....................................................................................................................... 199
ANEXO 4. Trazas de una llamada desde un telfono IP, colgando ste, hacia un telfono en
la PSTN..................................................................................................................................... 205
ANEXO 5. Trazas de una llamada desde un telfono IP hacia un telfono celular, colgando
ste. ......................................................................................................................................... 210
ANEXO 6. Trazas de una llamada desde un telfono IP, colgando ste, hacia un telfono
celular. ..................................................................................................................................... 215

- viii NDICE DE FIGURAS


Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura

1. Organigrama Primario .......................................................................................................5


2. Organigrama Secundario ...................................................................................................5
3. Organigrama Terciario.......................................................................................................6
4. Red con topologa de malla. ..............................................................................................7
5. Red con topologa Jerrquica .............................................................................................8
6. Red Telefnica..................................................................................................................8
7. Modo de operacin asociado............................................................................................10
8. Modo de operacin cuasi-asociado ...................................................................................11
9. Generacin PSTN ............................................................................................................12
10. Generacin NGN ...........................................................................................................13
11. Puntos de Sealizacin en SS7 [16] ..............................................................................14
12. Modelo OSI y Modelo del Protocolo SS7..........................................................................15
13. Topologa de Red en BUS ..............................................................................................16
14. Topologa de Red en ANILLO .........................................................................................17
15. Topologa de Red en ESTRELLA .....................................................................................17
16. Capas del modelo OSI. ..................................................................................................18
17. Capas del modelo TCP/IP ..............................................................................................19
18. Clases de Direcciones IP ................................................................................................21
19. Campos del Protocolo TCP .............................................................................................21
20. Campos del Protocolo UDP ............................................................................................22
21. Elementos y Protocolos de una Red VoIP........................................................................25
22. Protocolos de una red VoIP ...........................................................................................26
23. Estructura de una red de sealizacin H.323...................................................................28
24. Estructura de una red de sealizacin SIP ......................................................................29
25. Lgica de envo de los mensajes SIP para las pruebas de trfico......................................47
26. Error de compilacin del archivo de configuracin ...........................................................50
27. Diagrama General del Archivo de configuracin...............................................................50
28. Estructura general del Archivo de Configuracin de OpenSER ..........................................51
29. Proceso de revisin y enrutamiento por reglas. ...............................................................52
30. Enrutamiento por URI ...................................................................................................53
31. Enrutamiento por FROM ................................................................................................53
32. Enrutamiento por FROM ................................................................................................53
33. Enrutamiento por FROM ................................................................................................54
34. Enrutamiento por FROM ................................................................................................54
35. Posible escenario de Ubicacin del OpenSER dentro de la Red de CANTV .........................55
36. Posible escenario de Ubicacin del OpenSER dentro de la Red de CANTV .........................56
37. Posible escenario de Ubicacin del OpenSER dentro de la Red de CANTV .........................57
38. Esquema general de Pruebas .........................................................................................58
39. Diagrama de conexin para la prueba de llamadas salientes. ...........................................59
40. Flujo de Mensajes entre telfono IP y nmero en la PSTN (ste cuelga) ...........................60
41. Flujo de Mensajes entre telfono IP (ste cuelga) y nmero en la PSTN ...........................60
42. Flujo de Mensajes entre telfono IP y nmero celular (ste cuelga) .................................61
43. Flujo de Mensajes entre telfono IP (ste cuelga) y celular..............................................61
44. Partes de pantalla de pruebas........................................................................................63
45. Resultados UAC Prueba 1 ..............................................................................................64
46. Resultados UAC Prueba 2 ..............................................................................................65
47. Consumo de memoria del Servidor .................................................................................66
48. Resultados UAC Prueba 3 ..............................................................................................67
49. Consumo de memoria del Servidor .................................................................................68
50. Resultados UAC Prueba 4 ..............................................................................................69
51. Consumo de memoria del Servidor .................................................................................70
52. Resultados UAC Prueba 5 ..............................................................................................71

- ix Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura

53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.

Consumo de memoria del Servidor .................................................................................72


Resultados UAC Prueba 6 ..............................................................................................73
Consumo de memoria del Servidor .................................................................................74
Resultados UAC Prueba 7 ..............................................................................................75
Resultados UAC Prueba 8 ..............................................................................................76
Resultados UAC Prueba 9 ..............................................................................................77
Consumo de Memoria del Servidor. ................................................................................78
Resultados UAC Prueba 10 ............................................................................................79
Consumo de Memoria del Servidor. ................................................................................80
Diagrama de las funciones de la pgina Web. .................................................................81
Opciones para el administrador en la pgina web............................................................82
Pgina para la modificacin del archivo de configuracin .................................................83
Pgina Principal de Enrutamiento ...................................................................................84
Opciones para un enrutamiento en especfico .................................................................85

-xNDICE DE TABLAS
Tabla
Tabla
Tabla
Tabla
Tabla

1.
2.
3.
4.
5.

Comparacin entre sistemas telefnicos. .................................................................34


Comparacin entre SER, OpenSER y Asterisk ...........................................................37
Plataformas soportadas por Ngrep [39] ...................................................................49
Tabla deresultados obtenidos de llamadas realizadas ...............................................59
Pruebas con SIPp...................................................................................................62

- xi GLOSARIO DE TRMINOS Y ABREVIATURAS

ABA: Acceso a Banda Ancha.


AbaVoz: Servicios de Voz a travs de conexin de Banda Ancha Aba de CANTV.
ADSL: Asymmetric Digital Subscriber Line, Lnea de Subscriptor Digital Asimtrica.
ATA: Access Terminal Adapter, Adaptador Terminal de Acceso.
ATM: Asynchronous Transfer Mode, Modo de Transferencia Asncrono de frames o marcos de datos.
Frame Relay: forma simplificada de tecnologa de conmutacin de paquetes que transmite una
variedad de tamaos de marcos (frames) para datos
B2BUA: Back-To-Back User Agent, agente de usuario encargado de establecer y terminar una
llamada entre dos usuarios SIP.
CANTV: Compaa Annima Nacional de Telfonos de Venezuela.
CDR: Call Detail Record, Record Detallado de Llamadas.
Codec: Cdigo usado en la codificacin y en la decodificacin.
CSMA: Carrier Sense Multiple Access, Acceso Mltiple por Deteccin de Portadora.
DHCP: Dynamic Host Control Protocol, Protocolo de Configuracin Dinmica de Servidores.
DNS: Domain Name Server, Servidor de Nombres de Dominio.
DSL: Digital Subscriber Line, Lnea de Abonado Digital.
DTMF: Dual Tone MultiFrecuency, Protocolo de Sealizacin multifrecuencial en tonos duales.
E1 Carrier: Portadora E1.
H.323: es una recomendacin del ITU-T (International Telecommunication Union), que define los
protocolos para proveer sesiones de comunicacin audiovisual sobre paquetes de redes una parte de
la serie de protocolos H.32x, los cuales tambin dirigen las comunicaciones sobre RDSI, RTC o SS7 [1].
HTML: Hypertext Markup Language, Lenguaje de formato de Hipertexto.
HTTP: Hypertext Transfer Protocol, Procotolo de Transferencia de Hipertexto.
IP: Internet Protocol, Protocolo Internet.
IPv6: Internet Protocol version 6, Protocolo de Internet versin 6.
ISDN: Integrated Services Digital Network, Red Digital de Servicios Integrados.
ISDN-UP: Integrated Services Digital Network - User Part, Red Digital de Servicios Integrados, parte
de Usuario.
ISP: Internet Service Provider, Proveedor de Servicios de Internet
ITU: International Telecommunications Union, Unin Internacional de Telecomunicaciones.
IVR: Interactive Voice response, Respuesta de Voz Interactiva.
Jitter: en VoIP, jitter es la variacin en el tiempo de llegada entre paquetes, causado por la
congestin en la red, sincronismo o cambio de rutas [2].
LAN: Local Area Network, Red de rea Local.

- xii Login: es el identificador de usuario, requerido al acceder a un sistema operativo. Tambin es


conocido como nombre o identificador del usuario [3].
MAC: Media Access Control, Control de Accesos al Medio.
MAN: Metropolitan Area Network, Red de rea Metropolitana.
MGC: Media Gateway Controler, Controlador de puerta de enlace de media.
MTP: Message Transfer Part, Protocolo de Transferencia de Mensajes.
MySQL: sistema de gestin de base de datos.
NGN: Next Generation Networks, Redes de Prxima Generacin.
OSI: Open Systems Interconnections, Interconexin de Sistemas Abiertos.
PABX: Private Automatic Branch eXchange, servicio de un numero virtual que administra las llamadas
entrantes a dos o ms lneas telefnicas [4].
PBX: Private Branch Exchange, servicio de un numero virtual que administra las llamadas entrantes a
dos o ms lneas telefnicas [4].
PCM: Pulse Code Modulation, Modulacin por impulsos codificados.
PHP: Personal Home Page, actualmente Hypertext Pre-procesor.
POTS: Plain Old Telephone System, Sistema de telefona simple y antiguo.
Proxy: sirve para permitir el acceso a Internet a todos los equipos de una organizacin cuando slo
se puede disponer de un nico equipo conectado (una nica direccin IP).
PSTN: Public Switched Telephone Network, Red de Telefona Pblica Conmutada.
RAS: Registration Administration and Status, Protocolo de Registro, Administracin y Estatus.
RFI: Request For Information, Documento para Demanda de Informacin.
RTCP: Real Time Control Protocol, Protocolo de Control a Tiempo Real.
SBC: Session Border Controller, Controlador de Sesiones de Borde.
SCC: Sealizacin por Canal Comn.
SCCP: Signaling Connection Control Part, Protocolo de Control de Conexin y Sealizacin.
SCTP: Simple Control Transfer Protocol, Protocolo Simple para Control de Transporte.
SDP: Session Description Protocol, Protocolo de Descripcin de Sesiones.
Servicios TriplePlay: es la comercializacin de los servicios telefnicos de voz junto al acceso de banda
ancha, aadiendo adems los servicios audiovisuales.
SIP: Session Initiation Protocol, Protocolo de Inicializacin de Sesiones
Socket: punto de fin en el protocolo de red IP.
SS7: Signaling System 7, Sistema de Sealizacin Nmero 7.
SSH: Secure SHell, permite el acceso a mquinas remotas a travs de una red.
STP: Signaling Transference Points, nodos de transferencia de sealizacin.
TCAP: Transaction Capabilities Application Part, Protocolo de Aplicacin para Capacidades de
Transaccin.

- xiii TCP: Transmition Control Protocol, Protocolo de Control de Transmisin.


TDM: Time Division Multiplexing, Multiplexacin por Divisin de Tiempo.
TDMA: Time Division Multiple Access, Acceso Mltiple por Division de Tiempo.
UA: User Agent, Agente de Usuario.
UAC: User Agent Client, Cliente de Agente de Usuario.
UAS: User Agent Server, Servidor de Agente de Usuario.
UDP: User Datagram Protocol, Protocolo orientado a Datagramas, usado para la transmisin de
paquetes de datos sobre alguna red.
VLAN: Virtual Local Area Network, Red Virtual de rea Local.
VoIP: Voice over IP, Voz sobre IP.
VPN: Virtual Private Network, Red Privada Virtual.
WAN: Wide Area Network, Red de rea Amplia.
XMPP: Extensible Messaging and Presence Protocol, Protocolo abierto y extensible basado en XML
ideado para mensajera instantnea.

CAPTULO I: INTRODUCCIN
El presente informe tiene como finalidad exponer las actividades realizadas durante el periodo
de pasanta en la Empresa Compaa Annima Nacional Telfonos de Venezuela (CANTV), las cuales
nos permitieron poder aplicar muchos de los conocimientos adquiridos a lo largo de la carrera.
En el Primer Captulo se describe la Justificacin de la realizacin del proyecto. Adems, se
expone el Objetivo General, que como en todo proyecto es fundamental ya que es el que dicta los
lineamientos del mismo, junto con los Objetivos Especficos. En el Segundo Captulo se hace una breve
Resea Histrica de la empresa, y se da una explicacin sobre la estructura Organizativa de la Misma.
En el Tercer Captulo se hace una descripcin de los fundamentos tericos referentes a los
Sistemas Telefnicos Tradicionales, la Evolucin de los Sistemas Telefnicos, as como la sealizacin
telefnica en VoIP, destacndose el Protocolo de Sealizacin SIP que fue el que se utiliz. Todos
estos conocimientos resultaron primordiales para el desarrollo de la pasanta.
El Cuarto Captulo explica de forma detallada la metodologa utilizada en el desarrollo del
proyecto. Se presentan las fases del mismo, conformadas cada una por un conjunto de actividades.
Por ltimo, en el Captulo Cinco se muestran los resultados obtenidos, as como el conjunto de pruebas
realizadas a cada una de las aplicaciones.
1.1. Justificacin
La tecnologa de las redes de paquetes representa una evolucin en las telecomunicaciones.
En un sistema de Voz sobre IP se pueden unificar servicios de comunicaciones de voz, datos y video a
travs de un sola red; esto junto a una serie de beneficios econmicos sustentan la actual migracin
que est llevando a cabo la Compaa Annima Nacional Telfonos de Venezuela (CANTV) de sus
redes conmutadas (TDM) a redes de paquetes (VoIP).
Debido a esto, CANTV necesita tener el completo dominio de una herramienta que le permita
realizar el enrutamiento de llamadas. Aunque en el mercado existen soluciones de este tipo, sus
desarrollos son cerrados por lo que limitan la configuracin, escalabilidad y mejoras a las ofrecidas por
el proveedor. Es por ello que CANTV ha decidido emprender el desarrollo de una herramienta propia
que sirva para el enrutamiento de VoIP, garantizando as que su personal interno pueda reconfigurar
el sistema sin necesidad de depender de proveedores.
1.2. Objetivos
1.2.1. Objetivo General
El objetivo general de este trabajo es elaborar una propuesta de implementacin de un
Servidor Proxy SIP, para el Enrutamiento de Voz sobre IP, que incorpore una ejemplificacin
representando las funcionalidades bsicas de un Proxy, la cual pueda ser escalada o modificada.

-21.2.2. Objetivos Especficos


Los objetivos especficos de este trabajo son:

Describir los fundamentos tericos de los sistemas telefnicos y el Protocolo de

Sealizacin SIP.

Analizar las necesidades de CANTV referentes al enrutamiento de VoIP.

Identificar las distintas soluciones existentes en el mercado y de software libre que se

encuentren disponibles y establecer una comparacin entre ellas.

Definir la ejemplificacin a desarrollar a fin de garantizar que la misma represente

adecuadamente las funcionalidades bsicas de un Servidor Proxy.

Definir las funcionalidades a incluir en la Aplicacin Web.

Elaborar las pruebas de funcionamiento tanto del Servidor Proxy, como de la

Aplicacin Web.

Elaborar el manual de configuracin y operacin del servidor Proxy, as como el de la

aplicacin Web.

CAPITULO II MARCO ORGANIZACIONAL

2.1.

Misin

La misin de la empresa es mejorar la calidad de vida de la gente en Venezuela al proveer


soluciones de comunicaciones que exceden las expectativas de sus clientes.
2.2.

Visin

La visin de la empresa es ser el proveedor preferido de servicios integrales de


telecomunicaciones de Venezuela, y satisfacer plenamente las necesidades especficas de sus clientes,
siempre bajo exigentes patrones de tica y rentabilidad.
2.3.

Resea histrica

Cantv es la empresa pionera en proveer servicios de telecomunicaciones en Venezuela.


Actualmente, la gama de productos y servicios abarcan desde interconexin hasta comunicaciones de
larga distancia nacional e internacional.
Fue fundada en 1930 por Flix A. Guerrero, comerciante de profesin, el cul obtiene una
concesin (por un perodo inicial de 35 aos con miras a una extensin de 20 aos ms) del Ministerio
de Fomento para construir y explotar una red telefnica en el Distrito Federal y los estados del pas.
Los trminos de la Concesin establecen que Cantv es el proveedor exclusivo de servicios de
comunicacin locales, de larga distancia nacional e internacional hasta noviembre del ao 2000.
En 1950, el Estado compra la totalidad de las acciones de las empresas particulares e inicia el
proceso de nacionalizacin que culmina en 1973 adquiriendo la ltima de las empresas ubicada en San
Fernando de Apure.
En consecuencia a los problemas econmicos y de atraso tecnolgico, en 1991 se efecta la
licitacin internacional de 40% de las acciones de la empresa, en el marco de su privatizacin. Como
resultado, en diciembre de ese ao, el Consorcio Venworld Telecom (incluye a la empresa
estadounidense GTE, Telefnica Internacional de Espaa, La Electricidad de Caracas, Banco Mercantil y
AT&T; tambin de Estados Unidos), adquiere el control esas acciones.
Como parte de su programa de expansin y mejoramiento de la red de telecomunicaciones,
Cantv ha incrementado sus lneas de acceso de aproximadamente 1,6 millones en 1991 a 2,9 millones
al cierre del segundo trimestre de 2005. El porcentaje de lneas digitales en servicio ha aumentado de
15,2% en 1991, a 83% en la actualidad.
Adems de su expansin por toda Venezuela, CANTV establece conexiones a travs de cables
submarinos de forma de ofrecer todos los medios de transmisin con estndares internacionales de
calidad.

-42.4.

Empresas filiales de CANTV

En 1992 nace Movilnet como empresa filial de Cantv, dedicada a prestar servicios de telefona
mvil en Venezuela, logrando un crecimiento importante gracias al lanzamiento de productos
innovadores.
Cantv Servicios es creada en 1996 como filial de Cantv, con la finalidad de ofrecer servicios de
valor agregado para el mercado venezolano, especficamente, acceso a Internet con tecnologa
avanzada y la confiabilidad de la infraestructura de telecomunicaciones ms completa del pas. En
1999 Cantv Servicios pasa a ser Cantv.net. En Venezuela fue la primera compaa que presta servicio
basado en tecnologa ADSL es CANTV, a travs del servicio ABA (Acceso a Banda Ancha). El cual surge
para satisfacer la necesidad de muchos clientes naturales y jurdicos, cuyos requerimientos van ms
all de lo que un dial-up puede ofrecer.
En 1953 se crea la empresa Gua, C.A. de Publicidad que se encargara de publicar el directorio
telefnico oficial de Venezuela. El 13 de octubre de 1975 se registra una nueva empresa bajo el
nombre de C.A. Venezolana de Guas, Caveguas. En septiembre 1992 se privatiza Caveguas y se
produce el relanzamiento del producto, con reforma estatutaria y composicin accionaria (80% Cantv y
20% Grabados Nacionales), lo que gener una nueva imagen y conllev a la reorganizacin de la
empresa.
En el 2001 Cantv inicia el proceso de integracin corporativa con Movilnet, Cantv.net y
Caveguas, consolidando las unidades de apoyo para prestar servicios corporativos y unificando los
conceptos de imagen grfica de Cantv, Movilnet y Cantv.net, pudiendo as ampliar su visin, unir sus
fortalezas y seguir prestando excelentes servicios a nivel nacional e internacional de una forma mas
comprometida con el pas [5].
2.5.

Estructura Organizativa

En el organigrama primario, Figura 1, se pueden apreciar las gerencias generales dependientes


de la Gerencia de Relaciones e Inversiones Venezolanas y Servicios como la Gerencia General de

Consultora Jurdica, Organizacin y Recursos Humanos, Asuntos Regulatorios, Planificacin y Finanzas,


Mercadeo Corporativo y Comunicaciones y Asuntos Pblicos.

-5Presidencia

Vicepresidencia
Ejecutiva
Gerencia General,
Asuntos Regulatorios

Gerencia General,
Consultora Jurdica
Gerencia de Relaciones e
Inversiones Venezolanas
y Servicios

Gerencia General,
Organizacin y
Recursos Humanos

Gerencia General,
Mercadeo
Corporativo

Gerencia General,
Planificacin y
Finanzas

Gerencia General,
Comunicaciones y
Asuntos Pblicos

Figura 1. Organigrama Primario

El resto de las gerencias incluyendo la Gerencia General de Tecnologa y Operaciones de

Telecomunicaciones Fijas, se encuentran por debajo de la Vicepresidencia Ejecutiva como se muestra


en el organigrama secundario de la Figura 2.

Presidencia

Vicepresidencia
Ejecutiva
Gerencia General, Tecnologa
y Operaciones
Telecomunicaciones Fijas

Gerencia General,
Proyectos Mayores

Gerencia General,
Operadores de
Telecomunicaciones

Gerencia General,
Aseguramiento de
Ingresos

Gerencia General,
CANTV Empresas e
Instituciones

Gerencia General, del


Centro de Servicio
Gerencia General,
CANTV Mercados
Masivos
Figura 2. Organigrama Secundario

En el organigrama terciario, Figura 3, se puede observar el organigrama de la Gerencia

General de Tecnologa y Operaciones de Telecomunicaciones Fijas donde se encuentra la Gerencia de

-6Ingeniera y Construccin de Redes y a su vez se encuentra la Gerencia de Plataforma de Gestin de


Redes y Servicios, gerencia en la cual se desarroll el proyecto planteado en este Libro.

Gerencia General,
Tecnologa y Operaciones
Telecomunicaciones Fijas

Gerencia Ingeniera y
Construccin de Redes

Gerencia,
Nodos de Acceso

Gerencia, Proyectos de
Ingeniera y
Construccin de Redes

Gerencia, Plataformas
de Gestin de Redes y
Servicios

Gerencia,
Medios de Acceso e
Interconexin
Gerencia,
Nodos de Transporte

Figura 3. Organigrama Terciario

CAPTULO III: MARCO TERICO

En este captulo se expondrn una serie de fundamentos tericos relacionados con los
sistemas telefnicos necesarios para comprender el desarrollo del proyecto. Se explica la evolucin de
los sistemas telefnicos desde sus inicios, la sealizacin telefnica, as como el Sistema de
Sealizacin Nmero 7 (SS7) usado en la red PSTN, Public Switched Telephone Network o Red
Pblica de Telefona Conmutada de CANTV, terminando con las redes de nueva generacin VoIP.
3.1. Evolucin de los Sistemas Telefnicos
En sus inicios la red telefnica se cre para lograr comunicaciones de voz a larga distancia. Las
primeras conexiones se establecieron directamente entre los usuarios pertenecientes a una misma red
(conexiones punto a punto), este tipo de interconexin hizo que el sistema telefnico se convirtiera en
una red completamente mallada. En un principio el nmero de abonados era muy pequeo, pero con
el paso del tiempo la evolucin, mejoras hizo que el nmero de usuarios se incrementar, con lo cual
mantener ese tipo de topologa de interconexin era insostenible debido a que el coste de un nuevo
usuario era proporcional al nmero de usuarios registrados en esos momentos a la red. En concreto, el
nmero de enlaces necesarios para N usuarios es N*(N-1)/2. En la Figura 4 se muestra una red con
topologa de malla.
Usuario 1
Usuario 6

Usuario 2

Usuario 5

Usuario 3
Usuario 4

Figura 4. Red con topologa de malla.

Esta problemtica llev a la red telefnica hacia un cambio a la topologa de interconexin tipo
estrella entre los usuarios, que es la usada en la actualidad, y que consiste en que cada usuario se
conecta a una central urbana mediante un cable de cobre. Todos los usuarios que se encuentren
ubicados en la misma zona se conectan a la misma central urbana, logrando a travs de la misma la
interconexin entre ellos. Para permitir a su vez la interconexin de estos usuarios con otros ubicados
en otra central, es necesario conectarse con una central regional. Estas centrales se conectan con
otras, hasta que toda central tiene acceso con cualquier otra, ya sea mediante una conexin directa
entre centrales, o a travs de otra central usada como puente [6]. En la Figura 5 se muestra un
ejemplo de esta topologa de sistema telefnico.

-8En las ltimas dcadas y hasta hace no ms de unos cinco aos, la red telefnica dominante a
nivel mundial estaba representada por la PSTN. Sin embargo, en estos ltimos aos han surgido
diversas alternativas que permiten la transmisin de voz a travs de las redes de informacin, entre
ellas redes mviles, ISDN, Internet.

Usuario 1
Usuario 6

Usuario 7
Usuario
12

Usuario 2

Red de
interconexin

Central 1

Usuario 5
CSA de la
Central 1

Usuario 8

Usuario 3

Central 2

Usuario
11

Usuario 4

Usuario 9
Usuario
10

CSA de la
Central 2

Figura 5. Red con topologa Jerrquica

3.2. Redes Telefnicas


Para poder formar la red PSTN de CANTV y lograr una conexin entre los abonados, todos los
telfonos deben estar conectados a una Central Telefnica o conmutador de categora 5, usando para
ello el tradicional cable par telefnico de cobre, tambin conocido como ltima milla.
Las conexiones entre centrales telefnicas se llaman rutas, las mismas disponen de numerosos
troncales los cuales determinan el nmero de llamadas simultneas que pueden transitar por la misma.
Las centrales Tandem (Conmutadores Tandem de categora 4) son aquellas que se utilizan como punto
alternativo de conexin, o que desvan el trfico entre dos centrales telefnicas de la red [7]. En la
Figura 6 se muestra un ejemplo de red telefnica.

ltima milla

Central
Tandem

Central
Telefnica

Abonados
Figura 6. Red Telefnica

-93.3. Sealizacin telefnica


Toda llamada telefnica requiere de un modelo de sealizacin para que sta sea establecida y
mantenida. Desde que se descuelga el auricular para hacer una llamada, hasta que se cuelga, ocurren
ciertos eventos de sealizacin: el envo del nmero telefnico, el tono de ocupado de una llamada, la
informacin del nmero del que se llama, son algunos ejemplos de sealizacin.
Por sealizacin telefnica se entiende el conjunto de informaciones intercambiadas entre dos
puntos de la red telefnica que permiten efectuar operaciones de supervisin, direccionamiento,
gestin y mantenimiento de la red [8]. La sealizacin, por lo tanto, permite el intercambio de
informacin entre los componentes de una red telefnica para permitir la provisin y mantenimiento
del servicio.
Para poder completar una llamada, cada elemento involucrado en la red telefnica debe
cumplir la primera etapa de transmisin de sealizacin, una vez que las conexiones son completadas
exitosamente, los circuitos de voz permiten el intercambio de media entre los usuarios involucrados en
la llamada, por ltimo la llamada se cerrar cuando alguna de las partes cuelgue el auricular.
3.4. Funciones de sealizacin telefnica
En la actualidad las redes de comunicaciones emplean sistemas de sealizacin sofisticados
para establecer, terminar llamadas, controlar y mantener la red. En la medida en que las redes se
vuelven ms complejas crece el nmero de funciones que debe realizar el sistema de sealizacin. Las
siguientes funciones listadas por Martn [9] se encuentran entre las ms importantes:

Informacin audible por el suscriptor (tono de invitacin a discar, tono de repique y tono de
ocupado) y para el usuario llamado (seal de repique).

Transmisin del nmero marcado a las centrales que intentarn completar la conexin.

Transmisin de informacin entre conmutadores indicando que una llamada ha terminado y


que el camino se puede desconectar.

Una seal que realiza un ring del telfono.

Transmisin de informacin utilizada para la facturacin.

Informacin sobre el estado de los enlaces y equipos, a ser utilizada en el enrutamiento,


gestin y mantenimiento de la red.
En

resumen,

las

funciones

de

sealizacin

se

pueden

clasificar

en

supervisin,

direccionamiento, informacin de alerta, progreso de la llamada y gestin, constituyendo el soporte


bsico para las funciones de mando y control de la red.
La sealizacin supervisoria o de lnea se encarga de detectar la condicin o cambio de estado
de las lneas telefnicas, tiene como funcin la asignacin y liberacin de recursos. Las seales de
direccionamiento representan un mecanismo para identificar a los usuarios que intentan comunicarse,
transmitiendo informacin como nmeros telefnicos, y cdigos de rea. Los mensajes de alerta y

- 10 progreso proporcionan informacin del estado en que se encuentra la llamada como por ejemplo: tono
de congestin, tono de progreso, fuera de servicio, fuera del rea de cobertura, tono de invitacin a
marcar. Por ltimo, los mensajes de gestin sirven para el mantenimiento y control de la red.
3.4.1. Estructura de sealizacin
Cuando se habla de sealizacin es importante destacar que la misma debe ser considerada en
dos contextos: la sealizacin entre un suscriptor y una central, y la sealizacin entre dos centrales.
La sealizacin entre un telfono u otro dispositivo de suscriptor y la central final a la que ste
se vincula, es en un sentido amplio determinada por las caractersticas del dispositivo del suscriptor. La
sealizacin entre centrales se da por completo central-a-central; este tipo de sealizacin no slo
tiene que ver con la gestin de llamadas del suscriptor, sino tambin con la gestin de la red misma;
es por ello que se requiere un repertorio ms complejo de comandos, respuestas y parmetros.
La sealizacin entre centrales, puede dividirse entonces en Sealizacin por Canal Asociado
(SAC) en la cual la sealizacin y la voz viajan por un mismo canal y Sealizacin por Canal Comn
(SCC), donde la sealizacin es enviada por un canal diferente a los canales por donde se transmite la
voz. En la red de sealizacin por canal comn se pueden emplear a su vez, dos modos de operacin.
En el modo de operacin asociado, el canal de sealizacin est asociado con los canales que llevan la
informacin, en el sentido de que viajan por la misma ruta fsica, es decir, utilizando los mismos
troncales. Para el modo de operacin cuasi-asociado se instalan los nodos adicionales de transferencia
(STP), creando as una red de sealizacin prcticamente independiente de la red de voz. Los
mensajes de sealizacin se envan entre dos o ms enlaces (nodos de sealizacin, SP), haciendo
trnsito sobre uno o ms puntos de transferencia de sealizacin. [10]. En las Figuras 7 y 8 se pueden
observar estos tipos de sealizacin por canal comn.

Conversacin

SP

SP

Sealizacin
Figura 7. Modo de operacin asociado

- 11 -

SP

Conversacin

STP

SP

STP
Sealizacin

Figura 8. Modo de operacin cuasi-asociado

3.4.2. Evolucin de las Redes Telefnicas


En los ltimos aos la arquitectura de las redes pblicas de telecomunicaciones han ido
cambiando a pasos acelerados, trayendo consigo nuevos protocolos y tecnologas. Las razones de
estos nuevos cambios en la arquitectura de redes pblicas son la aparicin de nuevos servicios tales
como Internet, videoconferencia, Voz sobre IP, telefona celular de banda ancha, entre otras [11].
La evolucin de las redes telefnicas ha mejorado la forma como es transmitida la voz a travs
de los troncales y la forma como son enviados los mensajes de sealizacin entre las centrales
telefnicas a pesar de que la infraestructura de ltima milla se ha mantenido bsicamente igual.
3.4.2.1.

POTS

El viejo servicio telefnico POTS, Plain Old Telephone System se refiere al servicio de
telefona estndar, ofrecido en los inicios de las redes telefnicas. La red te telefona bsica tena como
premisa la transmisin de voz entre los usuarios. En los inicios, los sistemas realizaban la conmutacin
mediante centrales telefnicas manuales, por lo que los operadores eran los que establecan un enlace
fsico entre los dos telfonos de los abonados.
Posteriormente, con los avances tecnolgicos se implementaron los sistemas de marcado por
pulsos, stos eran generados por el abonado que llamaba y descifrados por las centrales de
conmutacin las cuales haban sustituido sus operadores por unos componentes electromecnicos
llamados rels [12].
Con el paso de los aos, los avances permitieron digitalizar las lneas telefnicas, y gracias al
sistema de Multiplexacin por Divisin de Tiempo TDM, Time Division Multiplexing, y la Modulacin
por Pulsos PCM, Pulse Code Modulation, la seal que llegaba a las centrales por parte del abonado
era transformada de analgica a digital, y posteriormente se volva a transformar a analgica cuando
se iba a enviar al receptor. La razn de transformar la seal a digital era que este tipo de formato
permita una transmisin ms rpida entre las centrales. Esta nueva era de comunicacin digital dej
atrs muchas limitaciones existentes en las primeras redes analgicas y nos llev a la conmutacin de
circuitos. Mediante la modulacin de pulsos, se muestrea a una tasa de 125S, 8000
muestras/segundo lo que implica que las seales digitales se transmiten a 64 Kbps (DS0).

- 12 Para agrupar las seales se emplea la tcnica TDM, este esquema presenta dos estndares. El
estndar Europeo, conocido como E1 presenta 32 ranuras de tiempo de las cuales 30 son usadas para
canales de voz, y 2 para sincronizacin y sealizacin. Por su parte, el estndar Americano T1 presenta
24 canales de voz y utiliza un bit para sealizacin.
3.4.2.2.

PSTN

La Red Telefnica Pblica Conmutada PSTN, Public Switched Telephone Network, es una red
con conmutacin de circuitos tradicional, optimizada para comunicaciones de voz. La PSTN garantiza la
calidad de servicio QoS al dedicar el circuito a la llamada hasta que sta culmina, independientemente
de si los participantes en la llamada hablan o estn en silencio.
En esta generacin de red de telefona, los paquetes son transportados en un solo canal DS0,
mientras que la sealizacin se transmite por medio de unos paquetes separados en la red conmutada.
La sealizacin ms usada es la SS7 basada en el Sistema de Sealizacin N7, y la carga til es
transportada por la red digital TDM, de esta manera, la red PSTN es conformada por la red TDM para
voz y la red SS7 para sealizacin [13]. En la Figura 9 se muestra un ejemplo de la Red Telefnica
Pblica Conmutada.

Internet

Host

PSTN

Router
Tramas
T1, E1

SS7

Modem

SS7

Tramas
T1, E1

Telfono

Telfono
TDM
Central A

Fax

Central B

Conmutacin de Circuitos

Fax

Figura 9. Generacin PSTN

3.4.2.3.

NGN

El trmino Redes de Nueva Generacin NGN, New Generation Networks, se usa para definir
redes las cuales debido a su separacin formal en diversas capas, y el uso de interfaces abiertas,
ofrece a los proveedores y abastecedores de servicios una plataforma que pueda desarrollarse paso a
paso, para desplegar y manejar servicios innovadores [14].
A diferencia de la red PSTN, este tipo de redes permite el transporte de voz, datos, video y fax
usando la tecnologa de conmutacin de paquetes IP. Tanto la sealizacin como la voz se transmiten

- 13 en la misma red de conmutacin de paquetes, adoptando para ello el concepto de VoIP. En la Figura
10 se puede observar la arquitectura de una red NGN.

Sealizacin
y Control de
Llamadas

Internet

Fax

Fax

Seales sobre IP

Telfono

Gateway

Gateway

Telfono

Red IP
Host

Host
Figura 10. Generacin NGN

3.5. Sistema de Sealizacin R2


El sistema de sealizacin MFC/R2 fue usado originalmente para proveer sealizacin sobre el
cable de cobre tradicional a una velocidad mayor a la de marcacin por pulso. Para hacer esto, se
contina con el uso de voltaje DC como indicador de estado del telfono, sin embargo, luego se
remplaz el marcado por pulsos digitales con el sistema de sealizacin por tonos duales. El generador
de pulsos y decodificador se necesita solamente durante el inicio de la llamada, y tal vez relocalizado al
establecimiento de la misma. El monitoreo del fin de la llamada es manejado simplemente por las
seales de lnea.
Con el paso del tiempo se necesit el uso de este sistema sobre circuitos anlogos, por lo que
se introdujo el uso de un tono de 3825Hz donde su presencia o ausencia indicaba el estado de la lnea.
Cuando se incluyeron los E1 tambin se necesitaron modificaciones usando rara vez la versin
anloga.
Los canales R2 pueden ser configurados para slo permitir la entrada o la salida de llamadas,
sin embargo algunas variaciones permiten a cada canal manejar ambos casos. Este protocolo no evita
colisiones pero si las detecta y puede colocar la llamada por otro canal.
3.6. Sistema de Sealizacin N 7
El estndar Internacional SS7, Signalling System Number 7, de la ITU-T,

Internacional

Telecommunications Union Standarization Sector, define los procedimientos y protocolos por los
cuales los elementos de las redes pblicas de telefona intercambian informacin sobre una red para
permitir la gestin, enrutamiento y control de las llamadas telefnicas, proporcionando una estructura
universal para la sealizacin de la red telefnica, mensajera, interconexin y mantenimiento de la
red.

- 14 En este estndar se definen las tres topologas de una red de sealizacin modo asociado,
cuasi-asociado y por canal comn.
Actualmente, ste es el Sistema de Sealizacin ms usado en las redes de Telefona Pblica.
Aunque todava en muchas redes de telefona todava se usa el estndar de sealizacin R2, los
beneficios de la SS7 han impulsado a las redes telefnicas a usar dicho estndar.
3.6.1. Puntos de Sealizacin
En una red SS7, cada nodo se conoce como Punto de Sealizacin (SP), stos son los puntos
orgenes y destinos del trfico de sealizacin. La arquitectura SS7 distingue tres diferentes puntos de
sealizacin: Puntos de Conmutacin de Seal (SSP), Puntos de Transferencia de Seal (STP) y Puntos
de Control de Seal (SCP).
Los Puntos de Conmutacin de Seal son conmutadores que originan, terminan o son un paso
intermedio en las llamadas. Son capaces de enviar mensajes de sealizacin a otros SSP para
establecer o liberar conexiones o realizan consultas a una base de datos (SCP) para determinar cmo
encaminar una llamada. Los Puntos de Transferencia de Seal son los encargados de recibir y dirigir
los mensajes de sealizacin hacia el destinatario correcto, por lo que desempean funciones de ruteo.
Los Puntos de Control de Sealizacin son entidades de la red que ofrecen una lgica complementaria,
utilizada para ofrecer servicios adicionales. Bsicamente se trata de bases de datos que proveen
caractersticas avanzadas como por ejemplo, servicios a nmeros gratuitos 800. [15]. En la Figura 11
se muestran los diferentes puntos de sealizacin en una red SS7, as como las relaciones entre ellos.

Figura 11. Puntos de Sealizacin en SS7 [16]

- 15 3.6.2. Protocolo SS7


El protocolo SS7 fue diseado para facilitar las funciones de sealizacin as como mantener la
red sobre la cual se ofrecen los servicios. Se encuentra dividido en cuatro niveles y presenta
similitudes con el modelo OSI. En la Figura 12 se muestran los niveles que conforman el modelo SS7.
Aplicacin

OMA

ASE

TCAP
Presentacin
Sesin
Transporte

ISDNUP
ISP

SCCP
Red

MTP Nivel 3

Enlace de datos

MTP Nivel 2

Nivel fsico

MTP Nivel 1

Modelo OSI

Modelo del Protocolo SS7

Figura 12. Modelo OSI y Modelo del Protocolo SS7

Los tres niveles ms bajos lo ocupan el nivel de la transferencia de mensajes MTP Message
Transfer Part, la cual est compuesta por tres partes, que juntas son responsables de llevar un
mensaje desde su origen hasta su destino. La capa MTP-1 es equivalente al nivel Fsico del Modelo
OSI. Define las caractersticas funcionales, elctricas y fsicas del enlace de sealizacin digital. Las
interfaces fsicas definidas incluyen: E1 (2048 Kb/s, 32 canales de 64 Kb/s), DS-1 (1544 Kbps, 24
canales de 64Kbps), V.35 (64 Kbps), DS-0 (64 Kbps) y DS-0A (56 Kbps).
El nivel 2 de MTP es equivalente a la capa de Enlace del Modelo OSI. Tiene como funcin
asegurar la transmisin sin errores extremo a extremo de un mensaje a travs del enlace de
sealizacin. Implementa control de flujo, validacin de la secuencia de los mensajes y control de
errores. Cuando se produce un error en un enlace de sealizacin, el mensaje (o el conjunto de
mensajes) es retransmitido [17].
El nivel 3 de MTP es equivalente a la capa de Red del Modelo OSI. Proporciona enrutamiento
entre dos puntos de sealizacin de la red SS7. Tiene como funcin controlar el trfico cuando ocurren
congestiones en la red, as como de re-enrutar trfico para evitar enlaces y puntos de sealizacin
daados.
En un nivel superior se presentan dos opciones: la Parte de Usuario ISUP, que es un protocolo
de sealizacin que provee servicios a aplicaciones ISUP, sin embargo tambin puede usarse en
aplicaciones que no sean de este tipo, y bsicamente se ocupa de la iniciacin y terminacin de
llamadas telefnicas entre SSPs. Este protocolo es orientado a conexin. La segunda opcin es el

- 16 Protocolo de Control de Conexin de Sealizacin, SCCP que normalmente es un protocolo orientado


a no conexin, aunque puede usarse tambin en servicios orientados a conexin. Adems tiene un
mecanismo de direccionamiento que le permite llevar a cabo la sealizacin entre dos puntos an
cuando no conozcan la direccin del otro. Esto se conoce como Direccionamiento de Ttulo Global.
El protocolo de Aplicacin de Capacidades de Transaccin, TCAP define el intercambio de
mensajes y protocolos empleados en los nodos para comunicarse entre aplicaciones. El envo de
peticiones y respuestas entre los distintos SSP y SCP son enviados sobre TCAP.
La parte de Operacin, Mantenimiento y Administracin, OMAP, suministra los protocolos de
aplicacin para monitorear, coordinar y controlar todos los recursos de la red que hacen posibles las
comunicaciones basadas en SS7.
3.7. Redes de Computadora
Estn formadas por un conjunto de computadoras y/o dispositivos acoplados mediante enlaces
fsicos o inalmbricos que tienen como una de sus finalidades permitir a usuarios y/o procesos
(residentes en los equipos), compartir recursos e informacin lo ms rpido posible de manera sencilla
y transparente para el usuario.
3.7.1. Topologas de Red (Fsica y lgica)
La topologa de una red de computadoras especifica la forma en que estn conectados los
elementos as como tambin la forma en que se encuentran configurados los equipos para permitirles
o no el acceso a ciertos recursos. Es posible tener conectadas computadoras en una misma red sin
tener acceso la una con la otra adems tambin se pueden conectar remotamente dos computadoras
haciendo parecer que estuvieran una al lado de la otra, conectadas en una misma red.

Topologas Fsicas

La topologa fsica de una red se refiere al patrn que forman los nodos conectados a la red,
sin tomar en cuenta los tipos de dispositivos, los mtodos de conectividad o las direcciones en dicha
red [18].
Las topologas de red ms comunes son: red en bus, donde cada computadora est conectada
a un segmento de cable lineal que recorre la red de un extremo al otro (ver Figura 13), red en anillo,
donde los nodos estn unidos formando un crculo lgico (ver Figura 14) y red en estrella, siendo esta
la ms antigua, donde las computadoras son conectadas a travs de un dispositivo concentrador que
regula el paso de informacin entre las mismas (ver Figura 15) [19].

Figura 13. Topologa de Red en BUS

- 17 -

Figura 14. Topologa de Red en ANILLO

Figura

15. Topologa de Red en ESTRELLA

Topologas Lgicas

La topologa lgica de una red define el comportamiento de los equipos para acceder al medio
compartido que los interconecta adems de especificar el mtodo que usan para comunicarse con el
resto de los nodos y la ruta que toman los datos de la red entre los diferentes nodos de la misma [19].
Hay dos formas principales de acceder a los medios, una de ellas es haciendo un uso ordenado del
medio dando un turno a cada equipo para transmitir por un tiempo determinado y luego ste pasa el
turno al prximo equipo. La otra forma de acceso es la que ha demostrado mayor rapidez y efectividad
donde los equipos antes de transmitir escuchan el medio para evitar transmitir mientras otro equipo lo
est haciendo, en caso de que ocurra una colisin, es decir, que dos equipos traten de transmitir al
mismo tiempo ambos equipos dejan de transmitir y luego de un tiempo de espera (aleatorio para cada
equipo, el cual depende de la jerarqua que tenga dentro de la red) intentan retransmitir el mensaje.

- 18 3.7.2. Modelos de Redes


Para poder proporcionar a los fabricantes un conjunto de estndares para asegurar una mayor
compatibilidad e interoperabilidad entre distintos tipos de tecnologa de red se cre el modelo de red
descriptivo: Interconexin de Sistemas Abiertos OSI, Open System Interconection.
Tomando como patrn al modelo OSI, se crearon diversos protocolos, entre ellos el TCP/IP, en
el cual no se diferencian tanto las capas pero es uno de los ms usados en la interconexin de redes.

Modelo OSI

Este modelo, mostrado en la Figura 16, proporciona el marco de referencia para poder
entender cmo los productos de las comunicaciones pueden ser construidos y comunicarse entre si.

APLICACIN

PRESENTACIN

SESIN

TRANSPORTE

RED

ENLACE DE DATOS

ACCESO A LOS MEDIOS

FISICA

TRANSMISIN BINARIA

PROCESOS DE RED CORRESPONDIENTES A LAS APLICACIONES


PREPRESNTACION DE DATOS
COMUNICACIN ENTRE HOSTS
CONEXIONES DE EXTREMO A EXTREMO
DIRECCIN Y MEJOR RUTA

Figura 16. Capas del modelo OSI.

Capa 1: cubre la compatibilidad de velocidad. La transmisin elctrica puede ser regida por
dos parmetros, velocidad y distancia; la mayor velocidad de transmisin y la mayor
distancia posible. La capa 1 es el hardware de las comunicaciones, el cableado [20]. Esta
capa define los cables y conectores a usar para la conexin as como tambin la
transmisin a realizar incluyendo los niveles de voltaje y la velocidad de la misma.

Capa 2: la capa de enlace de datos maneja la compatibilidad del protocolo, como su


nombre lo indica, de enlace de datos donde se transfiere informacin del punto A al punto
B, sin errores [20].

Capa 3: la capa de red se encarga de la compatibilidad de rutas enviando datos desde la


fuente hasta el destino. La capa 3 es el software de las comunicaciones [20]. sta permite
la seleccin de la mejor ruta para la transmisin de paquetes de manera confiable.

Capa 4: la capa de transporte proporciona la compatibilidad de la integridad del mensaje


de un extremo al otro. Esto asegura que el mensaje completo se mueva a travs de la red
desde la fuente al destino [20]. Esta capa busca que el transporte sea confiable, establece
circuitos virtuales y mediante mecanismos de control permite la recuperacin de datos
perdidos en la transmisin.

- 19

Capa 5: la capa de sesin provee la conexin lgica uno a uno o extremo a extremo [20].
Establece, inicia y termina las sesiones de comunicacin entre los equipos.

Capa 6: la capa de presentacin provee la compatibilidad de caractersticas, es el software


que usan las PCs para su operacin, un ejemplo podra ser el programa de interfaz grfica
del usuario de Windows [20]. Garantiza que los datos sean legibles para el receptor.

Capa 7: la capa de aplicacin cubre la compatibilidad operacional. Hoy en da, muchos


programas aceptan archivos en distintos formatos operacionales [20].

Modelo TCP/IP

El modelo TCP/IP es el ms comn utilizado por todos los ordenadores conectados a Internet,
de manera que stos puedan comunicarse entre s, sin importar que hardware o que software
contengan [21]. Fue creado por el departamento de defensa de EE.UU. convirtindose luego en el
modelo de red mas usado y en el cual se basa la Internet. Est compuesto por cuatro capas:
Aplicacin, Transporte, Internet y Acceso a la Red; stas pueden apreciarse en la Figura 17.

Aplicacin

Transporte
Red
Enlace de Datos

Fsica
Figura 17. Capas del modelo TCP/IP

La Capa de Aplicacin engloba las funciones de las capas de Aplicacin, Presentacin y Sesin
del modelo OSI. Se incluyen protocolos destinados a proporcionar servicios tales como correo
electrnico (SMTP), transferencia de ficheros (FTP), conexin remota (TELNET) y otros como el
protocolo HTTP (Hypertext Transfer Protocol) [21].
La Capa de Transporte equivale a la capa de Transporte del modelo OSI. Los protocolos de
este nivel, tales como TCP y UDP, se encargan de manejar los datos y proporcionar la fiabilidad
necesaria en el transporte de los mismos [21].
La Capa de Internet equivale a la capa de Red del modelo OSI. Incluye al protocolo IP, que se
encarga de enviar los paquetes de informacin a sus destinos correspondientes. Es utilizado con esta
finalidad por los protocolos del nivel de transporte.

- 20 La capa de Enlace de Datos especifica el mtodo de transporte de los paquetes sobre la capa
fsica.
La capa Fsica describe las caractersticas fsicas de la comunicacin, como las convenciones
sobre la naturaleza del medio usado para la comunicacin ya sea por cable, fibra ptica o radio, y todo
lo relativo a los detalles como los conectores, cdigos de canales, modulacin, potencias de seal, etc,
3.7.3. El protocolo IP
El protocolo de IP, Internet Protocol, es la base fundamental de la Internet. Las principales
caractersticas de este protocolo son:

Protocolo orientado a no conexin.

Fragmenta paquetes si es necesario.

Direccionamiento mediante direcciones lgicas IP de 32 bits.

Si un paquete no es recibido, ste permanecer en la red durante un tiempo finito.

Realiza el "mejor esfuerzo" para la distribucin de paquetes.

Tamao mximo del paquete de 65635 bytes.

Slo se realiza verificacin por suma al encabezado del paquete, no a los datos que ste
contiene.

El Protocolo IP proporciona un servicio de distribucin de paquetes de informacin orientado a


no conexin de manera no fiable. Orientado a no conexin significa que los paquetes de informacin,
que sern emitidos a la red, son tratados independientemente, pudiendo viajar por diferentes
trayectorias para llegar a su destino. El trmino no fiable significa bsicamente que no se garantiza la
recepcin del paquete.
La unidad de informacin intercambiada por IP es denominada datagrama. Tomando como
analoga los marcos intercambiados por una red fsica los datagramas contienen un encabezado y un
rea de datos. IP no especifica el contenido del rea de datos, sta ser utilizada arbitrariamente por
el protocolo de transporte [22].
Cualquier equipo que se conecte a una red TCP/IP debe tener una direccin IP, de 32 bits, nica
para el equipo.
Para poder determinar cmo est definida una direccin IP se crearon las Clases de
Direcciones IP (ver Figura 18) donde una red con direccin clase A queda precisamente definida con
el primer octeto de la direccin, la clase B con los dos primeros y la C con los tres primeros octetos.
Los octetos restantes definen los nodos en la red especfica [22].

- 21 32 bits
DIRECCIONES IP

10

110

1110

11110

RED

1.0.0.0 a
127.255.255.255

HOST
RED

128.0.0.0 a
191.255.255.255

HOST
RED

HOST

Direccin multitransmisin
Reservado para uso futuro

192.0.0.0 a
223.255.255.255
224.0.0.0 a
239.255.255.255
240.0.0.0.0 a
247.255.255.255

Figura 18. Clases de Direcciones IP

3.7.4. El protocolo TCP


El propsito del TCP es proveer un flujo de bytes confiable de extremo a extremo sobre la
Internet no confiable. La entidad de transporte de TCP puede estar en un proceso de usuario o en el
kernel. Parte un flujo de bytes en trozos y los manda como datagramas de IP. Para poder usar las
ventajas del TCP, el emisor y el receptor tienen que crear puntos terminales de la conexin, llamados
sockets.
Las conexiones de TCP son punto a punto y full duplex. Cuando una aplicacin manda datos
a TCP, ste puede mandarlos inmediatamente o almacenarlos (para acumular ms) o usar el flag de
PUSH (empujar) que solicita que los datos se manden o enviarlos con el flag de URGENT (ver Figura
19) donde hace que se manden inmediatamente sin importar los datos que se estn enviando en el
momento [23].
32 bits

PUERTO ORIGEN

PUERTO DESTINO

NMERO DE SECUENCIA
CONFIRMACIN PIGGY BACK (ACK)
Long.
C

UAPRSF
CHECKSUM

TAMAO DE VENTANA
PUNTERO URGENTE

OPCIONES (O MAS PALABRAS DE 32 BITS)

DATOS

Figura 19. Campos del Protocolo TCP

- 22 3.7.5. El protocolo UDP


Es un protocolo de transporte basado en el intercambio de datagramas sin conexin alguna,
debido a que el mismo datagrama contiene toda la informacin necesaria para su envo. No controla el
flujo de los mismos, no existe confirmacin de llegada ni tampoco realiza chequeo de errores, por lo
que no otorga garantas para la entrega correcta de los paquetes. Cualquier chequeo o garanta que se
quiera ofrecer debe ser implementado en capas superiores [24].
El paquete consta de 4 campos (ver Figura 20), siendo dos de stos opcionales. Estn primero
los campos de fuente y destino (siendo este ltimo opcional ya que no se espera respuesta) con 16
bits cada uno, luego el campo de longitud, donde se coloca el tamao del mensaje (datos + el tamao
del campo longitud) tambin de 16 bits y por ltimo el checksum de 16 bits, que de la misma forma es
opcional.
32 bits

PUERTO ORIGEN

PUERTO DESTINO

LONGITUD UDP

CHECKSUM
DATOS

Figura 20. Campos del Protocolo UDP

Adems de no realizar chequeo de errores y no enviar respuesta de que lleg


satisfactoriamente, el protocolo no permite numeracin de los datagramas con lo que disminuye la
garanta de que el paquete llegue a su destino. Lo que origina a su vez la retransmisin de paquetes
conllevando a duplicacin de paquetes y/o desorden en el destino [25].
3.8. Elementos de redes
3.8.1. Hubs
Un hub o concentrador es un dispositivo que permite conectar una red de computadoras.
Repite, los paquetes que una de las computadoras enva, al resto de la red conectada a l adems
enva un mensaje si existe colisin de algn paquete para invitar a la retransmisin.
3.8.2. Switches
Un switch es un dispositivo electrnico de interconexin de redes de computadoras que
mantiene un conocimiento de las direcciones MAC de las computadoras de la red para as poder enviar
los paquetes de una forma eficiente sin tener que hacer broadcasting y enviar informacin que para el
resto de las computadoras no es til.

- 23 3.8.3. Routers
Los routers son equipos que reenvan los paquetes de datos entre las redes. Un router est
conectado, como mnimo, entre dos redes, comnmente entre dos LANs o dos WANs.
Los routers usan los encabezados y las tablas de enrutamiento para determinar el mejor
camino para reenviar los paquetes, y usan protocolos como el ICMP para comunicarse con cada uno y
configurar la mejor ruta entre dos hosts [26].
3.8.4. Gateways
El termino gateway se refiere a un dispositivo que permite la conversin de protocolos (en
especial los de la capa de aplicacin) entre distintos tipos de redes o aplicaciones. Puede adems
trabajar como enrutador de una red local hacia una red exterior.
Una puerta de enlace o gateway es normalmente un equipo informtico configurado para
dotar a las mquinas de una red local (LAN) conectadas a l de un acceso hacia una red exterior,
generalmente realizando para ello operaciones de traduccin de direcciones IP (NAT: Network
Address Translation). Esta capacidad de traduccin de direcciones permite aplicar una tcnica llamada
IP Masquerading (enmascaramiento de IP), usada muy a menudo para dar acceso a Internet a los
equipos de una red de rea local compartiendo una nica conexin a Internet, y por tanto, una nica
direccin IP externa. Se podra decir que un gateway, o puerta de enlace, es un router que conecta
dos redes [27].
3.8.5. Ordenadores y Servidores
Los ordenadores al igual que los servidores son equipos que permiten realizar algunas tareas
en beneficio de otras aplicaciones llamadas clientes. Algunos servicios habituales son los servicios de
archivos, que permiten a los usuarios almacenar y acceder a los archivos de un ordenador y los
servicios de aplicaciones, que realizan tareas en beneficio directo del usuario final. Es posible que un
ordenador cumpla simultneamente las funciones de cliente y de servidor [28]. Estos servidores se
encuentran ya en la capa 7, ya que manejan los paquetes hasta el nivel de aplicacin para mostrarlos
al usuario de una forma apropiada y con el programa adecuado.
3.8.6. VPN
Una VPN es una red privada virtual que usa la red pblica, usualmente el Internet, para
conectar lugares o usuarios remotos [29]. Se extiende, mediante un proceso de encapsulacin y
encriptacin, desde los paquetes de datos a distintos puntos remotos mediante el uso de unas
infraestructuras pblicas de transporte. Los paquetes de datos de la red privada viajan por medio de
un "tnel" definido en la red pblica.

- 24 Para poder implantar una VPN se debe tener:

Identificacin de usuario: se debe verificar la identidad de los usuarios y restringir el


acceso a la VPN a aquellos que no estn autorizados. Al igual que se debe mostrar
registros de quin y por cuanto tiempo estuvo conectado a la red.

Administracin de direcciones: debe establecer una direccin del cliente en la red en la red
privada y debe cerciorarse que las direcciones privadas se conserven as.

Codificacin de datos: los datos a transmitir deben ser previamente encriptados para que
no puedan ser ledos por clientes no autorizados de la red.

Administracin de claves: la VPN debe generar y renovar las claves de codificacin para el
cliente y el servidor.

Soporte a protocolos mltiples: debe manejar los protocolos comunes que se utilizan en la
red pblica [30].

Las VPN conservan la seguridad de la red privada de una forma econmica ya que no se
requiere de un medio fsico para asegurar la conexin.
3.9. Sistema operativo Linux. Fedora Core 4
Un sistema operativo es un conjunto de programas de computadoras que permiten la
comunicacin entre un computador y su usuario adems de administrar y utilizar los recursos del
mismo de la manera ms eficiente posible. El sistema operativo de un equipo puede ser visto como
una capa intermediaria entre el Hardware y el usuario, que facilita al mismo la realizacin de tareas sin
tener que llegar a un gran nivel de detalle para el manejo del hardware.
El sistema Fedora Core 4 es un software libre, patrocinado por Red Hat, de uso sencillo y
plataforma de propsito general basada en Linux.
Fedora Core 4 es una de las ltimas versiones (ya existe la versin 5 y la versin 6) de la
popular plataforma Fedora Core con una cantidad de nuevas caractersticas sobre las versiones
anteriores; mejoras en la presentacin del escritorio, nuevas herramientas, soporte para arquitectura
de PowerPC (PPC), mejoras en la seguridad y plataforma ms slida, entre otras [31].
3.10.

Sealizacin Telefnica en NGN y VoIP

Tradicionalmente, la transmisin de voz y de datos se ha realizado a travs de redes


diferenciadas. En la actualidad se estima que el trfico de datos crece a una velocidad diez veces
superior al trfico de voz, al tiempo que se observa un proceso de convergencia para que sea una
nica red la que soporte la transmisin de voz, datos y video. La conversin de la voz en paquetes de
datos es lo que se ha dado en llamar VoIP. Hasta el momento la transmisin de voz se ha venido
realizando mediante la conmutacin de circuitos; gracias al protocolo de Internet se puede transformar
la voz en paquetes de datos y transmitirla como si de datos se tratara a travs de una nica red,

- 25 dando lugar a lo que se denomina red multi-servicio. La convergencia de distintas redes en una sola
representa un gran ahorro tanto en mantenimiento como en su gestin y uso [32].
De acuerdo a lo mencionado anteriormente, las Redes de Nueva Generacin NGN (Next
Generation Networks) tienen como objetivo esencial lograr la convergencia de las redes telefnicas y
de datos enviando la informacin va paquetes IP. Estos paquetes enviados son diferenciados por
protocolos de acuerdo al tipo y gracias a ello pueden manejarse de distinta manera para poder
garantizar la Calidad de Servicio QoS (Quality of Service).
3.10.1. VoIP
Como se explic en la seccin anterior, se entiende por Voz sobre IP VoIP (Voice over
Internet Protocol) a la digitalizacin de la voz y su transmisin a travs de la red, usando para ello la
conmutacin de paquetes, en la cual la informacin se transfiere fragmentada. De esta forma, cada
paquete se transmite a la direccin de destino de forma independiente, y es all donde vuelve a
reagruparse y se recupera la informacin.
Debido a que en VoIP el tratamiento de voz es idntico al de datos, se permite la utilizacin de
una nica red lo cual representa un importante ahorro, eso junto con la capacidad de reducir el ancho
de banda para la transmisin de la voz, la movilidad ofrecida por la red IP, y la posibilidad de ofrecer
nuevos servicios son algunas de las razones que han impulsado el desarrollo de la transmisin de Voz
sobre IP.

Topologa de una red de VoIP


Como se muestra en la Figura 21, una red VoIP est compuesta por una serie de elementos
que se describen a continuacin.

Figura 21. Elementos y Protocolos de una Red VoIP

- 26 El softswitch contiene al Media Gateway Controller MGC es uno de los principales


elementos en una red VoIP. Es el elemento de red que se encarga del control del manejo de
sealizacin y sesiones durante una llamada o conferencia multimedia. El control de la llamada est
relacionado con el inicio y finalizacin de la misma, incluyendo la seleccin de los servicios que deben
aplicarse a la llamada, enrutamiento de la llamada. Adems el softswitch debe proporcionar
autentificacin y autorizacin de llamadas.
El Signaling Gateway (Puerta de acceso para la sealizacin) es la unidad del softswitch
que provee una red transparente de sealizacin entre las redes conmutadas por circuitos y las redes
IP, es decir, permite el paso de mensajes de una red SS7 a una red IP y viceversa. Este elemento
requiere conexin fsica con la red SS7 y debe tener conocimiento del grupo de protocolos requeridos.
El Media Gateway, es un dispositivo o elemento de la red que proporciona el transporte de
voz, datos y video entre la red IP y la PSTN. Su funcin ms importante es convertir las seales de voz
(o, cualquier otro tipo de fuente de informacin) sobre circuitos TDM a streams de datos RTP la
traslacin de la voz en paquetes para que sta pueda ser comprendida por la red IP.
El Media Server (Servidor de Media) es utilizado para mejorar las caractersticas funcionales
del softswitch. Ofrece funcionalidades bsicas de transferencia de llamadas, contestadota, as como
tambin funcionalidades de IVR (Interactive Voice Response).
El Feature Server (Servidor para Capacidades Especiales) se encarga de controlar los datos
para generar la facturacin, as como servicios relacionados con bases de datos como los nmeros
800, 900, servicios prepago, llamada en espera, transferencia e identificador de llamada.
3.10.2. Protocolos VoIP
Las redes VoIP estn formadas por un conjunto de elementos. En la Figura 22 se muestran los
componentes principales y los protocolos que usan para comunicarse entre ellos.
VoIP Signaling

Signaling Gateway Control

H.323
H.450
H.225.0

TCP

H.235
H.24

SIP

H.22
H.225
RAS
5

UDP

M
T
P
3
M2U

I
S S
U C
P C
P
M3U

Media Gtwy

TCAP

MGC

H.248
MEGACO

Media

DATA

AUDIO
Video
codec
codec
encoding protocol
Not

T.125
T.127

RTCP

RTP

SUA

SCTP

UDP

IP

Figura 22. Protocolos de una red VoIP

UDP

R
T
S
P

TT
.
1
2
0

T.124
T.122/
T.125
T.123
TCP

- 27 IP es un protocolo basado en paquetes y orientado a no conexin, por ello se presentan


problemas como prdidas de paquetes, entrega fuera de secuencia, fluctuaciones, y demoras, por lo
que no existe una calidad de servicio garantizada.

En este sentido el protocolo de Control de

Transmisin TCP (Transmission Control Protocol) complementa al protocolo IP ya que al ser


orientado a conexin se encarga del control de flujo, entrega completa, sin daos y en secuencia de
los paquetes. Este protocolo fue diseado para el transporte de datos ms no de voz. Por su parte, el
Protocolo de Datagrama de Usuario UDP (User Datagram Protocol) es un protocolo de la capa de
transporte orientado a no conexin que se encarga del envo de paquetes sin importar si llegan
desordenados, duplicados o con errores.
En la Figura 22 se puede observar que se usan los protocolos H.323 junto con su familia de
protocolos de capas menores y SIP para la sealizacin de VoIP.
Los protocolos MGCP (Media Gateway Control Protocol) y MEGACO (Media Gateway
Control) son similares. MEGACO es un protocolo esclavo-maestro en el cual las aplicaciones de
software tambin conocidas como Agentes de llamada controlan la operacin de los Media Gateway.
El Media Gateway se encarga de transportar Media (voz, data, video) entre la red IP y la red PSTN.
En el lado de la red IP los streams de media son paquetizados dentro del marco RTP. Del lado de la
Red PSTN, cada stream de audio corresponde al canal DS0. El Media Gateway Controller genera
comandos al Media Gateway para que ste sepa como asignar la sesin RTP correspondiente al
canal DS0 [33].
Los protocolos RTP (Real-Time Transport Protocol) y RTCP (Real-Time Control Protocol)
funcionan sobre el protocolo UDP y se usan para el transporte de la voz. RTP se encarga de
proporcionar informacin adecuada a la capa de aplicacin superior para tomar decisiones adecuadas
sobre cmo debe ser manejado el nivel de calidad de la data. Por su parte, los mensajes RTCP son
intercambiados entre las sesiones de usuarios para proporcionar una respuesta acerca de la calidad de
la sesin, siendo esto tratado en la seccin 3.9.4.
Los protocolos ISUP, SCCP, TCAP y MTP3 son protocolos utilizados para la sealizacin de
control y el manejo de los gateway de sealizacin sobre los protocolos M2UA, M3UA y SUA. M2UA
soporta el control de la congestin y se encarga del transporte de los mensajes MTP3 [33]. Por su
parte, el protocolo SCTP es responsable de un transporte confiable de sealizacin, y de evitar
congestin.

El Protocolo H.323

El estndar H.323 es una recomendacin de la Unin Internacional de Telecomunicaciones


(ITU) basada en los estndares de la familia H.320. La primera versin del protocolo fue diseada para
proveer sealizacin en conferencias de sistemas multimedia en ambientes LAN, sin provisiones de
calidad de servicio.

- 28 H.323 especifica los componentes, protocolos y procedimientos que proveen servicios de


comunicacin multimedia sobre redes de paquetes, tanto para sesiones multipunto como punto a
punto. La tecnologa de red ms comn en la que se est implementando H.323 es IP.
Un sistema H.323 define la sealizacin necesaria de comunicaciones multimedia sobre una
red basada esencialmente en paquetes la cual no garantiza una calidad de servicio.
En la Figura 23 se puede observar la estructura de una Red de Sealizacin H.323 y las
entidades que la conforman.

MCU

Red PSTN

Red IP
Gateway

Gatekeeper

Terminales
Figura 23. Estructura de una red de sealizacin H.323

Gatekeepers: actan como punto central de todas las llamadas dentro de una zona, y
suministran servicios a los terminales registrados y realizan control de llamadas.
Proporcionan dos funciones importantes de control de llamada.

Se encargan de realizar la traduccin de direcciones desde el alias de la red H.323 a


direcciones IP o IPX.

Gestin del ancho de banda, especificado en RAS.

Gateways: son los sistemas encargados de permitir que los equipos H.323 puedan operar con
redes que utilicen otros protocolos de sealizacin, como terminales PSTN, ISDN, SIP, entre otros.

Terminales: son los puntos finales en la comunicacin. Proporcionan una comunicacin de voz,
datos y video en tiempo real. H.323 especifica los modos de operacin requeridos para que los
terminales de audio, video y datos trabajen conjuntamente. Para permitir que los terminales puedan
interoperar entre s, es necesario que puedan soportar voz, por ejemplo con el codec G.711. de esta
forma, el soporte para videos y datos es opcional para un Terminal H.323.
Todos los terminales deben soportar el protocolo H.245, el cual es usado para negociar el uso
del canal y las capacidades. Otros tres componentes requeridos son: Q.931 para la sealizacin y

- 29 configuracin de la llamada, RAS (Registro/Admisin/Estado) que es un protocolo usado para


comunicarse con el Gatekeeper; y soporte para RTP/RTCP para secuenciar paquetes de audio y
video.

Controladores, Procesadores y Unidades de Control Multipunto MCU: proporcionan soporte


para conferencias multipunto.

Protocolo SIP

En este trabajo se us SIP como protocolo de sealizacin ya que el mismo es utilizado por la
aplicacin desarrollada. Este es el modelo de sealizacin propuesto por la IETF en el RFC 2543 para
las redes de VoIP, el cual establece al Protocolo de Inicio de Sesin SIP (Session Initiation Protocol)
como un protocolo de la capa de aplicacin cuya funcin es crear, modificar y terminar sesiones
multimedia y llamadas telefnicas va Internet, con uno o ms participantes [34]. SIP define dos
entidades de red bsicas: clientes y servidores. Estrictamente hablando, un cliente (tambin conocido
como agente usuario cliente) es un programa de aplicacin que enva peticiones SIP. Por su parte, un
servidor es una entidad que responde las peticiones. De esta forma, SIP es un protocolo clienteservidor. Las llamadas de VoIP que usan el protocolo SIP son originadas por el cliente y terminadas
por el servidor.
Un cliente podra ser encontrado dentro de un dispositivo de usuarios, el cual puede ser una
PC o un telfono SIP, pero tambin podran ser encontrados dentro de la misma plataforma como
servidor. Por ejemplo, SIP habilita el uso de Proxies, los cuales actan como clientes y servidores [2].
Un sistema SIP est basado en un modelo cliente/servidor y esencialmente se encuentra
formado por las entidades que se muestran en la Figura 24.

Red PSTN
Gateway

Proxy Server

Proxy Server

User Agents

Location

Redirect

Registrar Server

Figura 24. Estructura de una red de sealizacin SIP

Los Agentes de Usuario UA (User Agent) son las entidades lgicas terminales de VoIP
encargadas del intercambio de mensajes SIP. Un dispositivo SIP puede funcionar tanto como Agente
de Usuario Cliente UAC (User Agent Client) y Agente de Usuario Servidor UAS (User Agent Server).
Un Agente de Usuario Cliente inicia peticiones SIP y recibe respuestas, un Agente de Usuario Servidor,
recibe y procesa las peticiones SIP y luego reenva las respuestas correspondientes [35].

- 30 Tpicamente los Agentes de Usuario, residen en computadoras de usuarios en forma de


aplicacin (ste es actualmente el uso ms comn), pero los Agentes de Usuario tambin pueden ser
telfonos celulares, Gateways PSTN, PDAs, entre otros [36].
El Servidor de Registro (Registrar Server) es un servidor que acepta peticiones SIP de
registro de los usuarios, extrae la informacin acerca de su localizacin actual (direccin IP, puerto,
nombre de usuario) y almacena la informacin en una base de datos [36].
El Servidor de Redireccionamiento (Redirect Server) es un servidor que acepta peticiones
SIP, y proporciona el mapeo de las direcciones en otras nuevas. Es decir, le entrega la nueva direccin
al que origin la peticin. Luego de ello, el autor de la peticin puede enviar peticiones directamente a
la direccin (o direcciones) devueltas por el servidor de redireccionamiento. Este tipo de servidores no
pueden aceptar ni terminar llamadas.
El Servidor Proxy (Proxy Server) es una entidad SIP que acta como intermediario. Su
funcin principal es enrutar o redireccionar mtodos SIP, pudiendo interpretar, modificar o traducir
campos de los mtodos SIP antes de enviarlos a su destino. Dado a que un Proxy puede recibir y
enviar peticiones, incorpora funcionalidades de cliente y servidor [35].
El desarrollo de una llamada telefnica usando el protocolo SIP puede describirse en una serie
de etapas:

Registro, iniciacin y localizacin del usuario.

Determinacin del medio a usar, segn la descripcin de la sesin a la que se invit al usuario.

Solicitud de establecimiento de conexin y espera de respuesta.

Inicio de la llamada.

Modificacin de la llamada, por ejemplo: transferencia (opcional).

Finalizacin de la llamada.
Las peticiones SIP son caracterizadas por la lnea inicial del mensaje, llamada Request-Line,

que contiene el nombre del mtodo, el identificador del destinatario de la peticin (Request-URI) y la
versin del protocolo SIP.
La RFC 3261 define seis mtodos diferentes bsicos SIP que describen las peticiones de los
clientes:

INVITE: es usado para iniciar sesin. Para una simple llamada entre dos partes, el mensaje
INVITE es usado para iniciar la llamada, este mensaje incluye informacin referente a la parte
que llama, la parte llamada, as como el tipo de medios intercambiados.

ACK: este mtodo es usado como confirmacin de que la repuesta final ha sido recibida.

OPTIONS: Solicita informacin sobre las capacidades de un servidor.

BYE: Indica la terminacin de una sesin.

CANCEL: Cancela una peticin pendiente.

- 31

REGISTER: es utilizado por un cliente del Agente de Usuario para abrir una sesin y registrar
su direccin con un servidor SIP.
Los cdigos de estado definidos en SIP presentan valores entre 100 y 699, siendo el primer

dgito del cdigo el que indica la clase de respuesta. Entonces, todos los cdigos de estado entre 100 y
199 pertenecen a una misma clase. Las diferentes clases existentes se muestran a continuacin:
1XX: Mensaje provisional.
2XX: respuesta satisfactoria (solamente el cdigo 200 est definido, lo cual significa que se ha
entendido la peticin y se ha realizado. En el caso de un mensaje INVITE, la respuesta 200 es usada
para indicar que la parte llamada ha aceptado la llamada).
3XX: mensaje de redireccionamiento.
4XX: Respuesta fallida
5XX: Falla de servidor
6XX: Falla Global
3.10.3. Trfico Telefnico
El concepto de trfico telefnico est asociado al de ocupacin. Se dice que un circuito
telefnico est cursando trfico cuando est ocupado, no si est libre.
Cuando se produce una comunicacin telefnica entre 2 abonados, adems de ellos se ocupan
una serie de elementos intermedios como las centrales telefnicas y los dispositivos usados para
interconectarlas.
El trfico telefnico es medible en trminos de tiempo y depende del nmero de
comunicaciones y de la duracin de las mismas [37].
En una red de telecomunicaciones, trfico se refiere al volumen de informacin transportado o
procesado por la red. La informacin puede consistir en data relacionada con el intercambio de
informacin entre los usuarios como voz, imgenes, archivos, as como tambin el intercambio de
informacin entre los elementos de la red como la data de sealizacin en las redes de circuitos,
informacin de enrutamiento en las redes IP, data de operacin, entre otros [38].
El promedio de nmero de llamadas simultneas N en progreso se conoce como intensidad de
trfico y su unidad de medida es el Erlang, que representa la ocupacin de una llamada por el espacio
de una hora. Este concepto es fundamental y define la base para medir el tamao de una red.
Entonces si un recurso (circuito digital, virtual, entre otros) se asocia con sus correspondientes
llamadas N, una red con la capacidad de manejar al menos N recursos ser requerida para manejar
ese trfico.

- 32 3.10.4. Calidad de Servicio en las redes VoIP


En los ltimos aos, la importancia de la calidad de servicio QoS para redes de paquetes ha
incrementado rpidamente. Es por ello que la calidad de servicio es uno de los puntos ms
importantes en las tecnologas de redes paquetizadas.
Las primeras redes IP eran completamente diferentes a las redes telefnicas, ya que fueron
diseadas para transportar data. A diferencia de la voz, la data es un servicio que no es de tiempo
real. Por ello la data puede ser almacenada en la red y entregada luego. Si la data fue entregada con
error, puede ser retransmitida, pero esto no es posible con la voz.
La calidad de servicio puede definirse desde dos puntos de vista: La calidad de servicio
experimentada por el usuario final y la calidad de servicio desde el punto de vista de la red. Para la
perspectiva del usuario, la QoS es la percepcin del usuario de la calidad que recibe del proveedor de
la red para un servicio o aplicacin en particular como voz, video, data. Para la perspectiva de la red,
QoS se refiere a las capacidades de la red de proporcionar esa calidad de servicio que percibe el
usuario [39].
Para proporcionar QoS, una red paquetizada debe poder diferenciar entre las clases de trfico
de modo que los dispositivos finales puedan tratar una o ms clases del trfico de manera diferente a
las otras. En segundo lugar, luego de que la red distingue entre las clases de trfico, debe entonces
poder tratar de forma distinta esas clases de trfico, proporcionando aseguramiento y diferenciacin
del recurso dentro de la red. La percepcin del usuario final de la calidad es determinada por pruebas
subjetivas en funcin de las debilidades que la red presenta como por ejemplo los retardos en la
llegada de paquetes a su destino, el jitter o variacin en los retardos de paquetes, prdidas de
paquetes. En particular, la debilidad de una red paquetizada depende del mecanismo de calidad de
servicio implementado en la misma [39].
Existen varias mtricas para medir la calidad de servicio de una red, entre ellas se pueden
mencionar EModel, y MOS.
MOS (Mean Opinin Score): la percepcin del usuario final de la calidad de servicio es
determinada por anlisis subjetivos de las debilidades de la red. Los factores representativos para
analizar son presentados a los usuarios como simples preguntas. Para cada condicin de anlisis, los
usuarios encuestados clasifican los temas en una escala de cinco puntos: excelente, bien,
regular, pobre e insatisfactorio, siendo ste el mtodo usado por CANTV.
EModel: es definido por la recomendacin G.107 de la ITU-T. Consiste en un modelo
computacional diseado para producir el MOS sin conducir a una prueba subjetiva. Para usar esta
mtrica, los efectos de retardo, jitter, prdida de paquetes y otras debilidades importantes se
combinan en un simple parmetro llamado Factor R el cual tiene un rango de 0 a 100.

- 33 3.11.
Resumen entre sistema de telefona tradicional o bsico y paquetizado
(VoIP).
Para concluir se muestra a continuacin, en la Tabla 1, una serie de comparaciones entre
ambos sistemas de telefona.
Conmutacin de Circuitos

Voz Paquetizada

Centrales Telefnicas
Rutas y Troncales
Lneas de Subscriptores
Terminales

*
*
*
*
*
*

* Estrella
* Bus
* Anillo

* Bus
* Cualquiera usada en
redes IP.

Redes

* Dominio de la red
pblica sobre la red
privada

* Uso de la red privada


aunque a veces el
medio es el Internet

Uso del Ancho


de Banda

* 64kbps a tiempo
completo y slo para
canal de voz

* Depende de la
compresin usada y el
canal es compartido
con el trfico de datos.

Elementos
Bsicos

Topologa

Transmisin

*
*
*
*

* Combinacin del
mundo analgico con el
digital.
* Tcnicas FDM con
TDM para asignacin
de canales de voz.
* Modems de velocidad
limitada hasta 230kbps.

Gateways
Gatekeepers
MCU
Call Agent
Servidores
Terminales

* Seales digitalizadas.
* Informacin
transmitida por medio
de paquetes usando
protocolos de redes de
datos.
* Redes de alta
capacidad.

Sealizacin

* Se requieren diversos
tipos de sealizacin.
* En nuestro pas se
usa el MFCR2 y el SS7

* Se usa un slo
protocolo a lo largo del
proceso.
* Los protocolos ms
comunes son el SIP y el
H.323

Teleservicios
Bsicos

* Llamadas entre
terminales fijos dentro
de la red pblica.

* Llamadas entre
equipos fijos dentro de
la red privada y hacia
terminales fijos dentro
de la red pblica.

- 34 Conmutacin de Circuitos

Transmisin de
Fax

Otros Servicios

* Envo de imgenes
con poca resolucin y
con velocidad limitada.

Funciones que pueden


aplicarse a este sistema
telefnico:
* Recepcin de alarmas
* Desvo de llamadas
* Conferencias
* Llamada en Espera
* Identificador de
llamadas
* Mensajes de voz

Voz Paquetizada
* Envo de imgenes de
mayor calidad
almacenadas en el
computador o impresas
mediante el fax.

Funciones que pueden


aplicarse a este sistema
telefnico:
* Recepcin de alarmas
* Autentificacin de
usuarios
* Desvo de llamadas
* Transferencia de
llamadas
* Identificador de
llamadas
* Marcacin por
nombre
* Conferencia
* Envo de Mensajes de
texto.
* Mensajes de voz
* Grabacin de
llamadas

Tabla 1. Comparacin entre sistemas telefnicos.

3.12. Herramientas para VoIP


En el mercado actual se pueden apreciar distintas herramientas para el manejo de VoIP, cada
una con especificaciones y funciones distintas de las otras. Luego de una revisin se escogieron
algunas de ellas para un exhaustivo anlisis entre las cuales tenemos:

OpenSER (Open SIP Express Router)

En el ao 2005, Voice System anunci la creacin de OpenSER. La razn de dicha creacin, se


debi a la falta de progreso y contribucin al proyecto SER por parte de los miembros su comunidad.
Los desarrolladores de Voice System de SER, sentan que iptel.org fue quin tom las decisiones
finales en el lanzamiento de los cdigos, adems de que no haba podido agregar nuevas
contribuciones y haba sido demasiado lento en lanzar las nuevas versiones de SER.
La sensacin general era que las nuevas caractersticas ofrecidas eran buenas, pero la mayora
de la gente perciba que sera ms sencillo para la comunidad si tanto la estabilidad y garanta de
calidad encontrada en SER se podra combinar en el mismo proyecto con las metas de OpenSER.
Hablando propiamente de OpenSER, ste es un servidor SIP con arquitectura flexible y
modular. Puede ser usado en sistemas con recursos limitados as como tambin en servidores de
transporte, escalando hasta miles de llamadas por segundo. Est escrito en lenguaje C para sistemas
Unix/Linux, presentando adems un alto rendimiento. Dependiendo de la configuracin, OpenSER es

- 35 capaz de operar como un Servidor Proxy, Servidor de Registro, Servidor de Redireccionamiento,


Servidor de Localizacin, Gateway para SMS/XMPP1, o servidores VoIP de aplicaciones avanzadas [40].
Por el Proxy SIP pasan todas las peticiones de un usuario, siendo ste el que le permite
acceder a la red, localizar a otros usuarios y establecer la comunicacin VoIP SIP.
OpenSER es un proyecto de software libre que tiene como fin desarrollar un servidor SIP
seguro y extensible para proporcionar servicios modernos de VoIP.
Entre las caractersticas de OpenSER pueden mencionarse:

Es un Servidor SIP robusto que puede incluir: Servidor Proxy, Servidor de Localizacin,
Servidor de redireccionamiento, Servidor de Registro.

Presenta la habilidad de agregar nuevas extensiones sin necesidad de modificar el ncleo,


asegurando por lo tanto gran estabilidad a los componentes del ncleo.

Arquitectura modular lo cual permite extender la funcionalidad del servidor.

Autentificacin, Autorizacin a Aprovisionamiento (AAA) a travs de la base de datos (MySQL,


Postgress, archivos de texto). RADIUS y DIAMETER.

Uso de pseudovariables para acceder y manejar parte de los mensajes SIP y atributos
especficos de los usuarios y servidor.

SER (SIP Express Router)

Es un servidor SIP de libre distribucin, desarrollado por la compaa alemana Iptel.org. Es


capaz de actuar como un servidor Proxy, de Registro o Redireccionamiento. Funciona bajo el sistema
operativo Linux, y est escrito en lenguaje C. Al igual que OpenSER, se encuentra programado de
forma modular, por lo que el administrador puede cargar los mdulos requeridos, as como crear sus
propios mdulos en caso de ser necesario. Tiene la capacidad de manejar miles de llamadas por
segundo en una mquina con CPU dual, y cientos de llamadas por segundo en una Compaq IPAQ.
Adicionalmente, SER ofrece una interfaz de usuario-servidor (SERWeb), soporte de presencia, servicios
como: monitoreo de estado del servidor, seguridad FCP2, autorizacin de acceso, gestin de cuentas.
Adems, puede ser configurado va web usando bases de datos.

Asterisk

Es una aplicacin de cdigo abierto3 basada en una PBX tal como si fuera una central de tipo
hardware. Asterisk ofrece las funciones propias de las centrales tradicionales y adems caractersticas
avanzadas, pudiendo trabajar tanto con sistemas de telefona estndar tradicionales como con
sistemas de Voz sobre IP. Trabaja con VoIP con los protocolos SIP, H.323, MGCP e IAX, por lo que

1
2
3

Protocolo abierto y extensible basado en XML ideado para mensajera instantnea [41].
Protocolo usado para controlar filtros de paquetes usando controladores externos.
Software Libre

- 36 incluye las ventajas que ofrece el trabajar con redes de datos paquetizadas. La solucin de telefona
basada en Asterisk dispone de un extenso conjunto de funciones, entre las que se pueden mencionar:

Provee servicios de mensajes de voz, llamada en espera, identificacin de llamadas, IVR4,


conferencias, y msica en espera [42].

Conexin de los empleados trabajando desde su casa a las redes de la oficina usando para ello
las redes de banda ancha [43].
Asterisk fue originalmente desarrollado para el sistema operativo Linux, pero actualmente

tambin funciona en BSD, MacOSX, Solaris y Microsoft Windows [44]. Est escrito en lenguaje C.
Para una mejor visin, se presenta a continuacin, en la Tabla 2, una lista de criterios tomados
para una mejor comparacin junto con sus detalles dentro de cada una de las opciones.

Criterios

SER

Frecuencia de
Liberacin /
Nuevas
Caractersticas

Ciclos de liberacin
largos, se necesita usar
la versin experimental
o versiones HEAD
para nuevas
caractersticas

Comunidad de
Usuarios

Buena comunidad
establecida por la
cuenta de correo
serusers@iptel.org.
Varios contribuyentes
activos. Las preguntas o
comentarios deben ser
escritas correctamente
para poder obtener
respuesta alguna.

Calidad /
Estabilidad de
las liberaciones

El largo ciclo entre las


liberaciones y la amplia
comunidad existente
reduce el riesgo de
gusanos si se usa una
configuracin estable.

Documentacin

El manual de
Administrador en
iptel.org est

Aplicaciones Interactivas de Voz

OpenSER
Liberaciones menos
frecuentes (0.a.x) con
nuevas caractersticas.
Cambios mayores
disponibles en
liberaciones mayores
(0.a.x), pero no hay
historia de esto por
ahora.

El ncleo del sistema de


voz del OpenSER es
muy activo y la mayora
de las preguntas son
contestadas.

La alta concentracin en
nuevas caractersticas y
las liberaciones
frecuentes aumentan la
aparicin de gusanos
en configuraciones
estables. La poltica
para la estabilidad es
liberar las
configuraciones a
menudo.
Muy enfocados en la
documentacin. Los
archivos README de

Asterisk

Liberaciones frecuentes
con nuevas caractersticas

Digium, el creador, ha
construido un foro en su
sitio web. Es el mejor
para que los novatos y
dems usuarios
respondan sus dudas de
una forma amigable. La
informacin se presenta
en un formato
organizado.

Existe soporte para la


instalacin de las
actualizaciones.

Buena documentacin, en
la pgina principal se
encuentra el manual y

- 37 desactualizado, pero es
til. La fuente principal
de la documentacin de
los mdulos son los
README que se
encuentran en cada
uno. La documentacin
del OpenSER 0.9.x es
recomendada y es un
buen comienzo.

Soporte para
varias
arquitecturas

Participacin
del desarrollo

Soporte
comercial
Funcionalidad
Facilidad para
Customizar

La persona responsable
de compilar las
arquitecturas trabaja en
SER.

Cdigo disponible en:


http://developer.berlios.
de/projects/ser/.
Parches en:
http://bugs.siprouter.org/. Mdulos o
extensiones de cdigo
pueden ser
suministrados en
greger@teigre.com
Iptelorg.com vende
licencias comerciales del
SER. Las consultas son
presentadas en
serusers@iptel.org
Servidor SIP
nico cdigo fuente de
fcil configuracin con
manuales para la
sencilla incorporacin de
enrutamientos.

cada mdulo al igual


que algunos tutoriales
pueden ser encontrados
en la pagina principal de
OpenSER.

algunos ejemplos de
configuracin.

Difcil de decir,
probablemente los
desarrolladores de
OpenSER tratan de
fusionar en las
arquitecturas los
cambios del SER CVS
(Sistema de Versiones
Concurrentes)

Soporte de varios
protocolos y mltiples
hardwares y sistemas
operativos.

Cdigo disponible en:


http://sourceforge.net/p
rojects/openser/
Enviar mails al
devel@openser.org

Cdigo disponible en:


http://www.asterisk.org/d
ownload.
Enviar mails al:
Asteriskusers@lists.digium.com y
asteriskdev@lists.digium.com

El sistema de voz ofrece


software y consultas. La
disponibilidad de otros
consultores es
desconocida.
Servidor SIP
nico cdigo fuente de
fcil configuracin con
manuales para la
sencilla incorporacin de
enrutamientos.

Tabla 2. Comparacin entre SER, OpenSER y Asterisk

Tiene el soporte de la
empresa DigiumTM
Orientado a las PBXs
Varios cdigos fuente,
cada uno especializado en
un rea especfica del
sistema.

CAPTULO IV: METODOLOGA

En este captulo se explica la metodologa utilizada en el desarrollo de la pasanta. Se


presentan en forma detallada cada una de las fases que conforman el proyecto. Para facilitar la
presentacin, se exponen en orden cuatro fases que agrupan un conjunto de actividades.
4.1. Revisin Tcnica
Para un mejor entendimiento del enrutamiento de Voz sobre IP, fue necesario realizar una
exhaustiva documentacin usando como herramienta fundamental Internet. Entre los tpicos
estudiados destacan: el protocolo de sealizacin SIP, revisin de las soluciones de Proxy SIP
existentes en el mercado, caractersticas de configuracin de la aplicacin a desarrollar, as como
tambin, las herramientas de trabajo y programacin requeridas.
Con ayuda de Internet fueron investigados puntos relacionados con VoIP, sealizacin SIP,
redes de computadoras, muchos de los cuales son fundamentales para el entendimiento del proyecto y
por ello forman parte del Marco Terico.

Se descargaron de la Web, libros y publicaciones como parte del material bibliogrfico.

Se hicieron consultas por medio de Internet como apoyo al material bibliogrfico recopilado.

Se busc informacin referente a las soluciones para el enrutamiento de Voz Sobre IP


existentes en el mercado: SER, OpenSER y Asterisk.

Se hizo un estudio de las necesidades de CANTV referentes al enrutamiento del Voz sobre IP.

Se realiz una investigacin sobre las herramientas de trabajo y programacin requeridas, as


como los requerimientos de hardware y software de las mismas.

4.2. Investigacin y seleccin de las herramientas


Para el desarrollo del proyecto se requiere contar con un grupo de herramientas que permitan
el desarrollo de la aplicacin Web, acceso remoto al servidor, manejo de la base de datos, pruebas de
trfico, captura de los mensajes SIP en la red. Por ello, en esta etapa fue necesario hacer un estudio
de todas las herramientas requeridas para el proyecto con el fin de garantizar la compatibilidad de las
mismas con los recursos de los cuales se dispona.
4.2.1. Aplicaciones
En el contexto del proyecto, aplicacin se refiere a un programa o conjunto de programas
diseados para realizar tareas especficas definidas bajo el control del administrador.

Se identificaron las aplicaciones VoIP de software libre disponibles en el mercado.

Se investigaron los requerimientos a nivel de hardware de cada una de las aplicaciones.

Se seleccion la aplicacin OpenSER como solucin al Servidor Proxy SIP a ser desarrollado.

- 39

Se descargaron de la pgina oficial de Internet los paquetes necesarios para la instalacin de


OpenSER.

Se seleccion la aplicacin OpenVPN para la implementacin de una Red Virtual Privada, y se


procedi a descargar el software correspondiente.
4.2.2. Sistema Operativo
Consiste en un conjunto de programas destinados a permitir la comunicacin del usuario con

su ordenador, gestionar los recursos de la mquina ejecutando servicios para los procesos, as como
brindar una interfase al usuario para ejecutar instrucciones [45].

Se evaluaron las diferentes opciones de sistemas operativos existentes en el mercado y su


compatibilidad con la aplicacin a desarrollar.

Debido a las ventajas que ofrece, se seleccion Linux como Sistema Operativo.

Se seleccion Fedora Core 4 como distribucin a utilizar.

Se descarg de la Web el software correspondiente.


4.2.3. Servidor
En este caso se refiere al ordenador fsico en el cual reside una aplicacin que realiza ciertas

funciones en nombre de los usuarios.


Debido a que en la empresa haba disponibilidad de varios servidores, se escogi uno que
cumpliera los requerimientos tcnicos, funcionales y de compatibilidad con la aplicacin a desarrollar.
4.2.4. Herramientas complementarias
Fue necesario definir el conjunto de herramientas requeridas realizar la configuracin de la
aplicacin, para desarrollar la aplicacin Web, as como para realizar las pruebas.

Se escogi Mysql-Front para el manejo de la base de datos de OpenSER

Se eligi el programa Macromedia Dreamweaver para el diseo y la programacin Web.

Se investig sobre las herramientas disponibles generadoras de trfico para el protocolo SIP
eligiendo para ello SIPp.

Se estudiaron diversas opciones para el seguimiento de las trazas de los mensajes SIP.

Se escogieron dos programas para el monitoreo y anlisis de las trazas: Ngrep y Ethereal.

Se identificaron los diferentes softphone disponibles en el mercado

Se seleccion y descarg a travs de la web el softphone X-Lite.

Al momento de desarrollar el proyecto se dispona de antemano el servidor en el cual se iba a


desarrollar la aplicacin, por ello, en este caso se verific la compatibilidad de las aplicaciones
requeridas con el mismo

- 40 4.3. Evaluacin de la aplicacin


En esta etapa se procedi a hacer un extenso anlisis de los mdulos que integran OpenSER,
as como del archivo de configuracin original. Adems es necesario investigar los requerimientos a
nivel de software y de hardware de la aplicacin a desarrollar.

Se evaluaron los requerimientos de hardware y de software para la instalacin de OpenSER.

Se revis el archivo de configuracin original de OpenSER.

Se analizaron los mdulos que lo forman as como los parmetros de configuracin relevantes.

Se plante una configuracin inicial de OpenSER.


4.4. Instalacin de las herramientas y configuracin de la Aplicacin
4.4.1. Software

Sistema Operativo Fedora Core 4

Para instalar Fedora Core, se debe iniciar el equipo por medio del cdrom. Actualmente, la
mayora de los equipos presentan como primer equipo de arranque el cdrom, en caso de no ser as, se
debe entrar a la BIOS del computador y elegir cdrom como dispositivo de inicio.
La instalacin de Fedora incluye la desfragmentacin del disco duro para ordenar la
distribucin fsica de los datos, as como un particionamiento del mismo.
Luego se comienza con la seleccin de las opciones de instalacin, donde de eligen las
opciones de configuracin como IP, mscara de red, Gateway, DNS Primario, DNS Secundario, usuario
y contrasea, as como el grupo de paquetes que deben instalarse, todo esto en funcin de las
necesidades que se tengan. Para mayores detalles acerca de la instalacin del Sistema Operativo
Fedora Core 4 ver Anexo 1).
Fedora Core 4 tiene la ventaja de que trae incluidos los paquetes para a instalacin de MySQL,
Apache, FTP, entre otros. Es por ello que para la instalacin de los mismos simplemente deben
seleccionarse entre el grupo de paquetes a instalar.

OpenSER


Instalacin

El proceso de instalacin de OpenSER es como se muestra a continuacin:




Se deben descargar de la Web los paquetes:


openser-1.0.0-rhel3.0.i386.rpm
openser-cpl-1.0.0-rhel3.0.i386.rpm
openser-mysql-1.0.0-rhel3.0.i386.rpm
openser-1.0.1-tls_src.tar.gz

Instalar los paquetes:


openser-1.0.0-rhel3.0.i386.rpm

- 41 openser-cpl-1.0.0-rhel3.0.i386.rpm
openser-mysql-1.0.0-rhel3.0.i386.rpm


Crear las bases de datos y tablas de OpenSER.

Configuracin del usuario para el acceso a FTP.

Instalar el conector entre PHP y MySQL.

Reiniciar los servicios openser, httpd, vsftpd, mysqld, crond (para mayores
detalles ver Anexo1, seccin 6.1).

Configuracin

Para la configuracin de OpenSER se sigui una lgica estructurada con el fin de mantener
una cierta organizacin, debido a ello, OpenSER puede definirse bsicamente en siete secciones:
Seccin de Definiciones Globales, Seccin de Mdulos, Seccin de configuracin de los Mdulos,
Bloque de Ruta Principal, Bloque de Ruta Secundaria, Bloque de Ruta de Respuesta y Bloque de Ruta
de Falla. El proceso seguido para la configuracin de OpenSER se muestra a continuacin:


Definicin de los parmetros de configuracin global.

Especificacin de los mdulos a ser incluidos en la ejemplificacin.

Configuracin de los parmetros de los mdulos que forman parte de la


ejemplificacin.

Desarrollo de la lgica de Enrutamiento Principal y Bloque de Ruta


Secundaria.

Desarrollo del bloque de Ruta de Respuesta y Ruta de Falla.

A medida que se modifica el archivo de configuracin de OpenSER se debe


compilar el mismo, esto con la finalidad de ir depurando el cdigo de errores de
sintaxis.

VPN

Debido a que el servidor se encuentra dentro de la red privada de CANTV, es necesario poder
tener acceso al mismo desde la red pblica, para ello se usa la VPN ya que sta permite una extensin
de la red local sobre la red pblica o no controlada.
Para crear una Red Privada Virtual es necesario dirigirse al panel de control de la PC, abrir la
carpeta Conexiones de Red, y en el men Archivo se selecciona la opcin Nueva Conexin. (Los
detalles de configuracin se muestran en el Anexo1, seccin 10.6)

Acceso Remoto al Servidor

El acceso remoto permite acceder desde una ubicacin externa y de manera segura a la
informacin almacenada en el servidor, tal y como si se encontrara trabajando fsicamente en el

- 42 mismo. Para lograr la conexin desde Windows debe crearse un cliente SSH para acceso remoto,
pudiendo usar para ello el programa Putty.
Este programa es un ejecutable, por lo tanto luego de descargarlo slo es necesario realizar la
configuracin del mismo. (Los pasos para la instalacin del Programa Putty se muestran en el Anexo1,
seccin 10.4).


Descargar el software de la Web

Configurar la conexin al servidor, esto incluye la direccin IP, protocolo a usar y


nombre para guardar esa configuracin. (Los detalles se muestran en el Anexo1,
seccin 10.4)

Manejo de la Base de Datos

Para la administracin de la base de datos se us la herramienta MySQL Front ya que a travs


de su interfaz se pueden realizar tareas como la obtencin de informacin del contenido y estructura
de las tablas, as como acciones bsicas de aadir, modificar o borrar campos o tablas.


Se descarg el software de la Web.

Se instal el archivo ejecutable.

Se configur la conexin al servidor. (Para mayores detalles de la instalacin ver


Anexo1, seccin 10.7 ).

Ngrep

Esta herramienta permite hacer un monitoreo de la red, es decir se puede analizar el trfico de
la red de manera similar a como lo hacen otros sniffers de red. Usando capacidades avanzadas de
comparacin de strings, Ngrep puede capturar los paquetes que se encuentran dentro de la red.


Se descarg de la web y se instal el paquete ngrep-1.44-1.tar.bz2

Se instal el programa en el servidor. Para detalles acerca del proceso de instalacin


de Ngrep, ver Anexo1, seccin 10.5.

Ethereal

Otro programa empleado para hacer el monitoreo de la red es Ethereal. Consiste en un


potente analizador de protocolos de redes para mquinas Unix y Windows que permite realizar anlisis
y solucionar problemas en redes de comunicaciones. Puede capturar los datos directamente de la red
u obtener la informacin a partir de una captura realizada en disco [46]. Adems permite ver todo el
trfico que pasa a travs de una red mediante una interfaz grfica, incluyendo adems muchas
opciones para la organizacin y el filtrado de la informacin.

- 43

Softphone Xlite


Se descarg de la web el paquete X-Lite_Win32_1006e_340255.

Se instal el Programa.

Se configuraron las opciones necesarias para el correcto funcionamiento del


softphone. (Para mayores detalles ver Anexo1, seccin 10.8)

Generacin de Trfico para el Protocolo SIP

A fin de determinar el trfico del protocolo SIP soportado por la aplicacin desarrollada, fue
necesario hacer pruebas de trfico. Para ello se utiliz el programa SIPp, esta herramienta de prueba
permite crear mltiples llamadas usando los mtodos INVITE, y BYE. En el Anexo1, seccin 10.9 se
muestra la explicacin del uso del programa.
4.4.2. Aplicacin Web
Para el desarrollo de la Aplicacin Web fue necesario trabajar con la herramienta Macromedia
Dreamweaver como editor de HTML para el diseo visual y la administracin de sitios6 y pginas Web.
Para cargar el sitio en el Servidor Web, se puede usar Dreamweaver con FTP, de esta forma se
pueden controlar y mantener automticamente los vnculos, a medida que se realicen modificaciones
en las pginas.

Delimitacin de la funcionalidad de la pgina Web.

Diseo de cada una de las pginas que conforman la aplicacin Web del administrador
de OpenSER.

Codificacin en lenguaje PHP y HTML de la aplicacin Web.

4.4.3. Manuales Tcnico y Web


Para poder documentar todo el trabajo realizado, tanto del servidor como de la aplicacin
Web, se desarrollaron dos manuales, uno llamado Manual de OpenSER (ver Anexo 1) y el otro Manual
SerWeb del Administrador (ver Anexo 2).
En el primer manual se muestra, con detalle, todo lo referente a la configuracin del OpenSER
y uso del servidor, instalacin y uso de programas usados, instalacin de plataforma usada y
diversidad de herramientas para el manejo de la aplicacin desarrollada.
En el segundo manual se detalla acerca de la creacin de la aplicacin Web as como tambin
las herramientas usadas para la misma, adems de ahondar en el uso correcto de la aplicacin.
4.5. Verificacin y Pruebas.
Para comprobar el correcto funcionamiento de la aplicacin debieron hacerse diversas pruebas.
Las mismas se mencionan a continuacin:

5
6

Aplicacin que simula un telfono IP.


Conjunto de documentos vinculados con atributos compartidos.

- 44 4.5.1. Funcionamiento de la aplicacin

Se verific el correcto funcionamiento de cada regla de enrutamiento.

Se verific el correcto funcionamiento entre la base de datos y OpenSER.

Se comprob la correcta salida de llamadas hacia telfonos fijos y mviles.


4.5.2. Pgina Web
A medida que la pgina Web se fue construyendo, se verific el correcto funcionamiento a

nivel de redireccionamientos hechos por los links, y la restriccin de acceso a la pgina mediante la
peticin de usuario y clave.
Se comprob el correcto funcionamiento de la configuracin de OpenSER va Web. Esto abarca
la correcta inclusin del cdigo escrito va Web en el archivo de configuracin de OpenSER mediante
los puntos de insercin7.
4.5.3. Pruebas de trfico

Se utiliz el programa SIPp Para la evaluacin cuantitativa del nmero de llamadas


simultneas (mensajes SIP) que OpenSER est en capacidad de manejar.

Se fue aumentando el nmero de llamadas concurrentes hasta que el servidor dej de


responder exitosamente.

Se anotaron los resultados obtenidos.

Indica en qu parte del archivo se va a escribir el cdigo

CAPTULO V: RESULTADOS
5.1. Seleccin de las herramientas
Despus de haber realizado y analizado la tabla comparativa expuesta en el Captulo 3 en la
seccin 3.11, se puede observar que todos los softwares investigados tienen en comn un esquema de
desarrollo bajo el concepto de software libre, es decir son programas en los cuales el usuario puede
disponer del cdigo fuente sin restricciones y que puede a su vez modificar y redistribuir sin
limitaciones. Esto, asociado a una serie de ventajas entre las cuales se pueden mencionar:


Al disponer del cdigo fuente de los programas en su totalidad, stos pueden ser
analizados por terceras personas ajenas a sus autores en busca de fallas de diseo o de
implementacin.

La posibilidad de realizar modificaciones libremente al cdigo fuente y distribuirlas permite


que cualquiera pueda ofrecer mejoras sobre ste. Estas mejoras pueden ser nuevas
funcionalidades que se incorporen al mismo o parches que corrijan problemas detectados
anteriormente [47].

La posibilidad de modificar libremente el software permite que las organizaciones lo


adapten a sus propias necesidades, pudiendo eliminar funcionalidades que no le sean de
inters. En el mundo de la seguridad existe el postulado de lo ms sencillo es ms
seguro; por esta razn el poder eliminar funciones innecesarias de las herramientas las
puede convertir de forma inmediata en ms seguras (porque no podrn ser utilizadas
estas funcionalidades para subvertirlas) [47].

Las caractersticas del software libre hacen que no sea lgico cargar costes sobre el
software en s (dado que se distribuye sin cargo), lo que permite que este tipo de software
pueda ser utilizado por organizaciones y personas con menos recursos econmicos. Esto
se presenta como una ventaja cuando se compara con los precios de lo que cuesta el
software de seguridad propietario hoy en da (licencias de firewalls, vpns, sistemas de
deteccin de intrusos, entre otras). El software libre pone en manos de cualquiera el tipo
de tecnologa que, hoy por hoy, slo podran tener grandes corporaciones [47].

Luego de esto, se tuvo que decidir cul de los softwares investigados deba ser el utilizado
para el desarrollo del Servidor Proxy SIP. Despus de realizar un anlisis detallado para los softwares
en funcin de las caractersticas ofrecidas por cada uno as como las necesidades de CANTV y el
conocimiento que se tena en la empresa de cada uno de ellos, se decidi escoger OpenSER como
solucin a la aplicacin Proxy SIP.
OpenSER constituye uno de los proyectos lderes en lo que se refiere a un Servidor SIP de
cdigo abierto. Presenta un gran conjunto de caractersticas y funcionalidades, que se encuentran
sostenidas por un desarrollo constante. Adems est soportado por una amplia comunidad de usuarios

- 46 alrededor del mundo. Este programa puede ser ejecutado en diversos Sistemas Operativos como
Linux, FreeBSD, OpenBSD, NetBSD, y Solaris [40]. Al ser OpenSER una aplicacin de licencia libre, el
mismo se pudo descargar de la pgina web oficial sin mayores inconvenientes.
Luego de haber identificado el software a utilizar para la aplicacin a desarrollar fue necesario
delimitar cmo y qu iba a incluir la misma. Esto se refiere especficamente a los mdulos necesarios,
los parmetros a configurar y las rutinas a desarrollar con el fin de que OpenSER funcionara como
Servidor Proxy.
Para la facilitar la verificacin del funcionamiento de OpenSER result fundamental contar con
un NGREP como programa de captura del trfico que pasa por la red. Esta herramienta permite
detectar a travs de la traza de la llamada (en caso de que la misma no pueda completarse) en qu
punto se est produciendo la falla.
Para la gestin de la base de datos de OpenSER se utiliz MySQL Front debido a que permite
manejar y darle mantenimiento de una forma ms amigable a las tablas existentes en la misma.
Debido a que inicialmente el servidor estaba en una ubicacin fsica lejana, fue necesario
utilizar Putty como herramienta para el acceso remoto al servidor.
Paralelamente a la configuracin de OpenSER se fue diseando y desarrollando la aplicacin
Web del administrador usando como herramienta de diseo el programa Macromedia Dreamweaver
MX 2004. Mediante esta pgina Web se le permite al administrador manejar externamente OpenSER,
es decir la inclusin de nuevas rutinas y reglas de enrutamiento, as como mdulos y parmetros, sin
necesidad de tener que acceder va consola al archivo de configuracin. As mismo, se puede tener un
manejo de la base de datos, en lo que se refiere a la inclusin, modificacin o eliminacin de prefijos
numricos usados para el enrutamiento de las llamadas, en funcin de las reglas que se hayan
desarrollado.
Un aspecto muy importante es que adems de la ejemplificacin realizada resultaba
fundamental para CANTV la realizacin de un manual Tcnico que englobara todo lo referente al
proyecto desarrollado. De acuerdo con esto, se plante que el manual a realizar deba seguir a grosso
modo la estructura descrita a continuacin:

Pasos para la instalacin de las herramientas utilizadas.

Pasos para la instalacin de OpenSER.

Informacin bsica de OpenSER: ubicacin de los archivos, secciones de OpenSER, sintaxis


para las reglas de enrutamiento.

Servicios involucrados con el funcionamiento de OpenSER.

Pruebas para verificar el correcto funcionamiento de la aplicacin.

Realizacin de la pgina Web.

Manejo de la aplicacin Web.

Cdigo de la ejemplificacin con su respectiva explicacin.

- 47 La finalidad de este manual tcnico era que quedara asentado por completo el manejo de
OpenSER, desde el proceso de instalacin del Sistema Operativo en el servidor, hasta la puesta en
funcionamiento de la aplicacin. De esta forma CANTV se poda asegurar de contar con un Servidor
SIP del cual tuviesen un total dominio, con la garanta de poder minimizar el tiempo necesario para la
instalacin y puesta en funcionamiento del mismo. Dicho manual se encuentra en el Anexo 1.
Una vez culminado el desarrollo de la aplicacin, as como el correcto funcionamiento de la
misma, se pens que era necesario hacer un anlisis a manera de determinar el promedio de llamadas
concurrentes que OpenSER est en capacidad de manejar de forma exitosa. Para ello se descarg de
la web el software SIPp que como se mencion en la seccin 4.4.1, es una herramienta de prueba que
permite generar trfico del protocolo SIP. En la Figura 25 se muestra la lgica de envo de los
mensajes SIP.
Para la realizacin de esta prueba es necesario instalar SIPp en dos computadoras. Una de
ellas acta como Servidor, y la otra como Cliente.
En la PC que acta como servidor se configura el nmero de llamadas por segundo que se
quieren realizar as como el tiempo estimado de cada una de ellas, en funcin de esto, dicha mquina
enviar a OpenSER los mensajes SIP. Para el momento de la prueba es necesario que el archivo de
configuracin de OpenSER contenga una rutina que desve todas las peticiones de llamadas (para ello
reenva las peticiones SIP) hacia el dominio donde se encuentra instalado SIPp como cliente. Luego de
que las peticiones son enviadas por la PC que acta como servidor se puede observar a travs de la
consola el nmero de llamadas que OpenSER reenvi exitosamente.
En funcin de ello, mediante las pruebas realizadas se buscaba estimar el promedio de
llamadas que OpenSER es capaz de manejar.

Monitoreo

Enva peticiones SIP

PC SIPp
Cliente
UAC

Reenva peticiones SIP

Servidor
OpenSER
161.196.58.48

PC SIPp
Servidor
UAS

Figura 25. Lgica de envo de los mensajes SIP para las pruebas de trfico

5.1.1. OpenSER
Para esta aplicacin se investigaron cules eran los requerimientos de hardware y las
arquitecturas que soportaba a fin de garantizar el correcto funcionamiento de la misma. stas se
muestran a continuacin:

- 48 -

Arquitecturas:

Linux/i386, Linux/armv4l, FreeBSD/i386, OpenBSD/i386, Solaris/sparc64, NetBSD/sparc64


(Para otras arquitecturas los Makefiles pueden necesitar ser corregidos). Hay varias opciones
de configuracin definidas en el Makefile.

Requerimientos:

gcc o icc: gcc2.9x; 3.[12] recomendada (Trabajar con versiones anteriores pero requiere la
modificacin de algunas opciones para un mejor funcionamiento).

Bison8 Yacc9 (Berkley Yacc).

Flex10.

GNU11 make (en Linux corresponde al estndar make, en FreeBSD y Solaris gmake)
Versin 3.79.

Sed12 y Tr13 (usado en los makefiles).

GNU tar (atar en Solaris) y gzip si es necesario ejecutar make tar para trabajar.

Instalacin GNU BSD14 (en Solaris ginstall) si se quiere hacer make install, make bin,
make sunpkg.

Openssl si se quiere compilar con soporte TLS.

Libmysqlclient & libz (zlib) si se quiere el soporte de la base de datos MySQL (Mdulo MySQL).

Libpq / Postgresql si se quiere el soporte de la base de datos Postgres. (Mdulo Postgres).

Unixodbc si se quiere el soporte de la base de datos Unixodbc (Mdulo Unixodbc).

Libexpat si se quiere tener el soporte del gateway Jabber (Mdulo Jabber).

Libxml2 si se quieren usar los mdulos cpl-c (Lenguaje de Procesamiento de Llamada) y pa


(Agente de Presencia).
5.1.2. Dreamweaver
Sistema Operativo y detalles de los requerimientos:

Microsoft Windows 2000 / XP Pentium III 800 MHz RAM 256 MB HD 650 MB

Apple MacOS X 10.3 PowerPC G3 600MHz RAM 256 MB HD 300 MB

Apple MacOS X 10.4 PowerPC G3 600 MHz RAM 256 MB HD 300 MB

Perifricos: Monitor XGA

Generador de Analizadores Sintcticos.


Generador de analizador lxico y sintctico
10
Fast Lexical Analizer. herramienta para la generacin de programas que realizan concordancia de patrones en texto [47].
11
GNUs Not Unix. Sistema Operativo no libre, totalmente compatible con Unix.
12
Editor especial para modificar archivos de forma automtica.
13
Comando para traducir o borrar caracteres.
14
Berkeley Software Distribution. Sistema Operativo derivado del sistema Unix.
9

- 49 -

5.1.3. Ngrep
Ngrep est disponible en muchas plataformas Unix y Win32. En la Tabla 3 se muestran los
requerimientos del programa.
Sistema Operativo

Arquitectura

Linux 2.0 2.6

X86, SPARC, Alpha, MIPS

MacOS X +

PowerPC

Solaris 2.5.1 +

X86, SPARC

FreeBSD 2.2.5 +

X86

OpenBSD 2.4 +

X86, SPARC

NetBSD 1.5 +

X86

Digital Unix V4.0D (OSF/1),


Tru64 UNIX 5.0 & 5.1A

Alpha?

HPUX 11

PA-RISC

IRIX

MIPS

AIX 4.3.3.0

PowerPC

BeOS version 5

X86

Windows 95, 98, NT, 2000, XP,


2003

X86

Tabla 3. Plataformas soportadas por Ngrep [49]

5.1.4. MySQL Front y Putty:


Soporta las plataformas: Win95/98/NT/ME/2000/XP
5.1.5. SIPp
Soporta las plataformas: UNIX: HPUX, Tru64, Linux (Red Hat, Debian, FreeBSD),
Solares/SunOS.
5.2. Archivo de Configuracin
La verificacin del funcionamiento de OpenSER se realiz en varios pasos. Para que OpenSER
se ejecute en el servidor es necesario iniciar el servicio openser. Cada vez que el archivo de
configuracin es modificado es necesario detener y volver a iniciar el servicio. Por esto mismo, la
primera prueba a realizar es constatar que el archivo de configuracin est funcionando correctamente
y sin errores de compilacin. En caso de realizar alguna modificacin al archivo de configuracin es
necesario reiniciar el servicio. Si se obtiene un error al iniciarlo, como se muestra en la Figura 26,
quiere decir que ocurri algn problema a la hora de subirlo, el ms comn es el de error en la sintaxis

- 50 del archivo de configuracin por lo cual ser necesario revisarlo y hacer las correcciones
correspondientes.

Figura 26. Error de compilacin del archivo de configuracin

Luego de que el archivo es compilado exitosamente se habr superado la primera etapa de las
pruebas del archivo de configuracin de OpenSER.
Posteriormente se plantearon posibles escenarios, de acuerdo a ciertas reglas de enrutamiento
requeridas por la compaa, con el fin de verificar que efectivamente OpenSER est trabajando como
se desea.
Para verificar el correcto funcionamiento se analiza conjuntamente la traza de la llamada
realizada con los mensajes de dilogo. Los mensajes de dilogo se incluyen en las rutinas de openser,
los mismos sirven para la depuracin de errores ya que mediante ellos se puede ir haciendo el
seguimiento de la ejecucin del cdigo. Referente a la traza, a travs de la misma se observa en
detalle el envo secuencial de los mensajes SIP entre cada uno de los elementos involucrados.
Pudiendo entonces detectar, ante una falla, cul es el elemento que est generando problemas.
5.2.1. Diseo
Tomando en cuenta las necesidades de la empresa se organizaron una serie de reglas para
poder cumplir con las mismas, stas se muestran en un diagrama de flujo para as poder reorganizar
las ideas y desarrollar la codificacin del archivo de configuracin.
En la Figura 27 se expone un diagrama general donde se muestra el papel que juega el
servidor SIP Proxy implementado configurado en OpenSER.

Llega un
mensaje SIP

TOMA DE
DECISIN
(Archivo
Configuracin
OpenSER)

Se enva un
mensaje SIP
(respuesta)

Figura 27. Diagrama General del Archivo de configuracin

En la Figura 28 se muestra un diagrama de la estructura general del archivo de configuracin


de Openser.

- 51 Mensaje SIP

10
Reenvos?

SI

Mensaje SIP
483, Too Many Hops

SI

Mensaje SIP
513, Message too big

SI

Mensaje SIP
200, OK

NO
Mensaje mayor a
2048 bytes?
NO
Method =
NOTIFY?
NO
Method =
OPTIONS?

SI

Route 1

NO
SI

Method =
CANCEL?

Terminar la llamada

NO
SI

Method = BYE?
NO

SI

Method =
REGISTER?

Autorizado?
SI

NO

Method =
INVITE?
NO

NO
Mensaje SIP
200, OK
SI

Enrutamiento
(ver ms adelante)

Mensaje SIP
401, Unauthorized

Salir
Figura 28. Estructura general del Archivo de Configuracin de OpenSER

Cuando el mtodo del mensaje recibido es INVITE, el servidor empieza a realizar un chequeo
basndose en las reglas descritas en l para as poder tomar una decisin, este proceso se conoce
como enrutamiento por medio de reglas, el cual es mostrado en la Figura 29 mediante un diagrama de
flujo.

- 52 Method = INVITE

Por URI?

SI

ENRUTAMIE NTO POR


URI

SI

ENRUTAMIENTO POR
FROM

SI

ENRUTAMIENTO POR
TO

SI

ENRUTAMIENTO POR
HORA

SI

ENRUTAMIENTO POR
COMPARTICIN DE
CARGA

NO
Por FROM?
NO
Por TO?
NO
Por HORA?
NO
Comparticin de
Carga?
NO
Route 1
Figura 29. Proceso de revisin y enrutamiento por reglas.

Despus de revisar que proceso est activo se procede a ejecutar la regla como tal, se pueden
ejecutar varios procesos a la vez, comentando o no los mismos. En la Figura 30 se muestra el
Enrutamiento por URI, en la Figura 31 el Enrutamiento por FROM, en la Figura 32 el Enrutamiento por
TO, en la Figura 33 el Enrutamiento por HORA y por ltimo, en la Figura 34 se muestra el
Enrutamiento por Comparticin de Carga.

URI (ACTIVO)

URI = regla 1?

SI

INVITE dominio 1

NO
URI = regla 2?

SI

INVITE dominio 2

NO
URI = regla 3?

SI

INVITE dominio 3

NO
URI = regla X?
NO
Route 1

SI

INVITE dominio X

- 53 Figura 30. Enrutamiento por URI

FROM (ACTIVO)

FROM = regla 1?

SI

INVITE dominio 1

NO
FROM = regla 2?

SI

INVITE dominio 2

NO
FROM = regla 3?

SI

INVITE dominio 3

NO
FROM = regla X?

SI

INVITE dominio X

NO
Route 1
Figura 31. Enrutamiento por FROM

TO (ACTIVO)

TO = regla 1?

SI

INVITE dominio 1

NO
TO = regla 2?

SI

INVITE dominio 2

NO
TO = regla 3?

SI

INVITE dominio 3

NO
TO = regla X?

SI

INVITE dominio X

NO
Route 1
Figura 32. Enrutamiento por FROM

- 54 HORA (ACTIVO)

REGLA HORA =
regla 1?

SI

INVITE dominio 1

NO
REGLA HORA =
regla 2?

SI

INVITE dominio 2

NO
REGLA HORA =
regla 3?

SI

INVITE dominio 3

NO
REGLA HORA =
regla X?

SI

INVITE dominio X

NO
Route 1
Figura 33. Enrutamiento por FROM

COMPARTICIN DE
CARGA (ACTIVA)

REGLA
COMPARTICIN
= regla 1?

SI
INVITE dominio 1

NO

REGLA HORA =
regla 2?

SI

INVITE dominio 2

NO
REGLA HORA =
regla X?

SI

INVITE dominio X

NO

Route 1
Figura 34. Enrutamiento por FROM

- 55 5.2.2. Posibles Escenarios para la Ubicacin del OpenSER dentro de la Red de


CANTV.
A continuacin se exponen algunos posibles escenarios para la futura implementacin del
servicio del SIP Server OpenSER.
En la Figura 35. Se muestra a OpenSER entre el Servidor SIP y el Servidor de Aplicaciones.
Openser tendra como funcin modificar los parmetros del encabezado de los mensajes de
sealizacin que llegan desde el Servidor SIP para luego ser enviados al servidor de aplicaciones.
Servidor de Aplicacin de
Tarificacin
ABA Voz
OpenSER
Servidor
SIP Proxy

INTERNET
ITSP
SIP/H.323

softswitch

SoftX3000

Servidor
SIP

SBC

Backbone IP

SS7
UMG
SIP

PSTN

MGCP
H.323

Central

M2UA(SIGTRAN)
E1(TDM/SS7)
POTS

Figura 35. Posible escenario de Ubicacin del OpenSER dentro de la Red de CANTV

En la Figura 36 se muestra al OpenSER entre el softswitch SoftX3000 y el Servidor de


Aplicaciones. De igual forma que el escenario anterior, OpenSER tendra como funcin modificar
parmetros del encabezado de los mensajes de sealizacin que llegan desde el softswitch
SoftX3000 y que posteriormente enva al Servidor de Aplicaciones.

- 56 Servidor de Aplicacin de
Tarificacin
OpenSER
Servidor
SIP Proxy

ABA Voz
INTERNET
ITSP
SIP/H.323

softswitch

SoftX3000

Servidor
SIP

SBC

Backbone IP

SS7
UMG

SIP

PSTN

MGCP
H.323

Central

M2UA(SIGTRAN)
E1(TDM/SS7
POTS

Figura 36. Posible escenario de Ubicacin del OpenSER dentro de la Red de CANTV

En la Figura 37 se muestra al OpenSER entre el Servidor de Aplicaciones y el softswitch


SoftX3000, en este escenario, OpenSER funcionara como puente de conexin entre ambas
aplicaciones pudiendo as modificar parmetros del encabezado de los mensajes de sealizacin.

- 57 App Server
Rating

ABA Voz
INTERNET
OpenSER
Servidor SIP Proxy

ITSP
SIP/H.323

softswitch
SoftX3000
SBC

Servidor
SIP

Backbone IP

SS7
UMG

SIP

PSTN

MGCP
H.323

Central

M2UA(SIGTRAN)
E1(TDM/SS7)
POTS

Figura 37. Posible escenario de Ubicacin del OpenSER dentro de la Red de CANTV

Existen otras posibles ubicaciones aunque todava estn siendo evaluadas y chequeadas de
forma de que alguno de los servicios no vaya a fallar a la hora de introducir el OpenSER.
5.2.3. Pruebas de Configuracin
Despus de desarrollar todos los diagramas se comenz con la configuracin del archivo de
OpenSER, para luego probar cada una de las reglas y poder constatar que el arreglo elaborado era
eficiente y cumpla con los requisitos necesarios. Para elaborar las pruebas se dise un diagrama,
mostrado en la Figura 38, con el cual se trabaj para probar cada parte del programa.

- 58 -

REVISIN DEL
ARCHIVO DE
CONFIGURACIN

COMPILA?

NO

SI
PRUEBAS ESPECFICAS
PARA CADA RUTINA

NO

LA RUTINA SE
EJECUTA
CORRECTAMENTE?
SIGUIENTES PRUEBAS

SI
SE TERMINARON
LAS PRUEBAS?

NO

SI
FIN
Figura 38. Esquema general de Pruebas

La primera etapa de las pruebas consiste en revisar que el archivo de configuracin no


presente ningn error en la sintaxis, para ello, cada vez que se modifica cualquier parte del mismo, el
servicio OpenSER debe reiniciarse. Si se presenta algn error, como lo indica la Figura 26, debe
revisarse el log del OpenSER y depurar el error all mostrado. Para mayor informacin ir al Anexo1
seccin 6.2 del Manual de OpenSER.
La segunda etapa de las pruebas consiste en corroborar el correcto funcionamiento de
OpenSER, despus de haber conseguido un reinicio del sistema exitoso. Estas pruebas consisten en:

Probar cada seccin del archivo de configuracin.

Probar que las trazas de las llamadas sean las correctas.

Probar que las llamadas hechas son recibidas por telfonos en la red PSTN.

Probar la capacidad de trfico que soporta el servidor.

Para probar cada seccin del archivo de configuracin se procedi a colocar lneas de
mensajes en el mismo para que estas salgan impresas en el log del servicio. Esto se hace para realizar
un seguimiento desde el archivo de mensajes y poder ver cul seccin se est ejecutando y cul no.

- 59 Cuando no se ejecutaba una regla se proceda a cambiar el archivo de configuracin. Para mayores
detalles ver las secciones 6.2 y 6.3 del Anexo1.
Para verificar que las llamadas salieran a la PSTN se utiliz el programa Asterisk como gateway
para poder reenrutar las llamadas generadas por el OpenSER hacia la PSTN, (esto se logr gracias a
un nmero que se registr con el servicio ABA voz por medio del cual las llamadas realizadas salan al
exterior, ver Figura 39, con esto se usaba un numero registrado dentro del dominio de OpenSER y se
realizaban llamadas a nmeros fijos y telfonos celulares, presentando los resultados generales
mostrados en la Tabla 4, donde la calidad alcanzada tiene la ms alta ponderacin. Se est utilizando
la escala deficiente, suficiente y buena, y dentro del retardo se tiene la escala muy apreciable,
apreciable, poco apreciable y no apreciable. Con esto se puede decir que la calidad del servicio, en
conjunto, es bastante buena.

Telfono IP
Realiza una llamada IP
OpenSER
Enva una peticin
Asterisk
Se registra con un nmero asignado

Reenva la peticin recibida

ABA voz
Realiza una llamada a travs de la PSTN
Telfono PSTN
Figura 39. Diagrama de conexin para la prueba de llamadas salientes.

Nmero telefnico
Locales
Celulares
Nacionales

Calidad de Voz
Buena
Buena
Buena

Retardo
No apreciable
Poco apreciable
Poco apreciable

Tabla 4. Tabla de resultados obtenidos de llamadas realizadas

Para probar que las trazas de las llamadas fueran las correctas, se utiliz un programa llamado
Ngrep, instalado en el servidor SIP para poder as monitorear los mensajes SIP recibidos y enviados
por el servidor, con el cual se poda revisar con exactitud el desenvolvimiento de la herramienta. As se
poda establecer la ruta seguida por los mensajes y corregir el error en el enrutamiento del mismo.
Para mayor informacin ver la seccin 6.4 del Anexo1.

- 60 En las Figuras 40, 41, 42 y 43; se muestran los diagramas de flujo de llamada, construidos con
los mensajes y peticiones enviados por los servidores tomados stos de las trazas que se encuentran
en los Anexos 3, 4, 5 y 6 respectivamente.
Telfono IP

Telfono PSTN
OpenSER

INVITE

Asterisk

INVITE

TRYING

ABA Voz

INVITE

TRYING

TRYING
ACK

SESSION PROGRESS

SESSION PROGRESS

RINGING

RINGING

200 OK

200 OK

SESSION PROGRESS
RINGING

RINGING

200 OK

LLAMADA
BYE

BYE

BYE

200 OK

200 OK

200 OK

Figura 40. Flujo de Mensajes entre telfono IP y nmero en la PSTN (ste cuelga)
Telfono IP

Telfono PSTN
OpenSER

Asterisk

INVITE

INVITE

TRYING

TRYING

ABA Voz

INVITE
TRYING
ACK

SESSION PROGRESS

SESSION PROGRESS

RINGING

RINGING

200 OK

200 OK

SESSION PROGRESS
RINGING

RINGING

200 OK

LLAMADA
BYE
200 OK

BYE
200 OK

BYE
200 OK

Figura 41. Flujo de Mensajes entre telfono IP (ste cuelga) y nmero en la PSTN

- 61 Telfono IP

Telfono Celular
OpenSER

Asterisk

INVITE

INVITE

TRYING

TRYING

ABA Voz

INVITE
TRYING

SESSION PROGRESS

SESSION PROGRESS

200 OK

200 OK

SESSION PROGRESS
ACK
RINGING
200 OK

LLAMADA
BYE

BYE

BYE

200 OK

200 OK

200 OK

Figura 42. Flujo de Mensajes entre telfono IP y nmero celular (ste cuelga)
Telfono IP

Telfono Celular
OpenSER

INVITE

Asterisk

INVITE

TRYING

TRYING

SESSION PROGRESS

SESSION PROGRESS

ABA Voz

INVITE
TRYING
SESSION PROGRESS
ACK

200 OK

200 OK

RINGING

200 OK

LLAMADA
BYE
200 OK

BYE
200 OK

BYE
200 OK

Figura 43. Flujo de Mensajes entre telfono IP (ste cuelga) y celular.

Como ltima prueba se gener trafico sobre el servidor para ver la respuesta obtenida ante
una prueba de stress. Con esto se pudo conocer un estimado de cuntas llamadas soporta el servidor
en una hora pico.

- 62 Para realizar la prueba se us la herramienta SIPp la cual genera el trfico adecuado para ir
analizando la respuesta obtenida por el OpenSER. Para conocer la respuesta del servidor se trabaj
con los valores mostrados en la Tabla 5. Donde la columna llamadas por segundo representan, como
su nombre lo indica, la cantidad de llamadas que el servidor recibir por segundo; la columna
duracin promedio de la llamada indica el tiempo estimado de duracin de cada llamada; la columna
erlang es una medida de densidad de trfico la cual describe el volumen total de trfico que existe
en una hora; la columna cantidad de llamadas concurrentes, como su nombre lo indica, es la
cantidad de llamadas que se establecen o se mantienen en el mismo instante y por ltimo, la columna
soporte implica si el servidor funcion correctamente al trfico generado sobre l.

ERLANG

LLAMADAS
POR SEGUNDO
(calls/sec)

DURACIN
PROMEDIO DE LA
LLAMADA (seg)

(llamadas duracin)

3600

LLAMADAS
CONCURRENTES
(aproximado 6)

SOPORTE

20
30
32
34
35
38
30
32
33
34
35
50

120
120
120
120
120
120
180
180
180
180
180
180

2400
3600
3840
4080
4200
4560
5400
5760
5940
6120
6300
9000

2400
3600
3840
4080
4200
4560
5400
5760
5940
6120
6300
9000

SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
NO
NO

Tabla 5. Pruebas con SIPp

Al momento de iniciar la herramienta se muestra una pantalla como la mostrada en la Figura


44, donde:
1: Aparecen todas las especificaciones de la prueba, la cantidad de llamadas por segundo, la
cantidad de llamadas concurrentes, los puertos abiertos, la IP usada, la cantidad pico de llamadas y el
momento en el cual ocurri.
2: Se muestran los mensajes enviados y recibidos por la herramienta.
3: Se observan las estadsticas de tiempo resultantes de la prueba.
4: El resumen global del total de llamadas realizadas durante la prueba.

- 63 -

Figura 44. Partes de pantalla de pruebas.

A continuacin se muestran los resultados obtenidos en algunas de las pruebas:

Prueba 1: 20 calls/seg. con 120 seg. de duracin de la llamada, en la Figura 45 se puede


apreciar el escenario del servidor UAC.

- 64 -

Figura 45. Resultados UAC Prueba 1

Prueba 2: 30 calls/seg. con 120 seg. de duracin de la llamada, en la Figura 46 se puede


apreciar el escenario del servidor UAC y en la Figura 47 se observa el consumo del servidor
cuando se est manejando esa cantidad de llamadas (se usa el comando top en la consola).

- 65 -

Figura 46. Resultados UAC Prueba 2

- 66 -

Figura 47. Consumo de memoria del Servidor

Prueba 3: 32 calls/seg con 120 seg de duracin de la llamada, en la Figura 48 se puede


apreciar el escenario del servidor UAC y en la Figura 49 se muestra el consumo del servidor
cuando se est manejando esa cantidad de llamadas.

- 67 -

Figura 48. Resultados UAC Prueba 3

- 68 -

Figura 49. Consumo de memoria del Servidor

Prueba 4: 34 calls/seg con 120 seg de duracin de la llamada, en la Figura 50 se puede


observa el escenario del servidor UAC y en la Figura 51 se puede apreciar el consumo del
servidor cuando se est manejando esa cantidad de llamadas.

- 69 -

Figura 50. Resultados UAC Prueba 4

- 70 -

Figura 51. Consumo de memoria del Servidor

Prueba 5: 35 calls/seg con 120 seg de duracin de la llamada, en la Figura 52 muestra el


escenario del servidor UAC y en la Figura 53 se observa el consumo del servidor cuando se
est manejando esa cantidad de llamadas.

- 71 -

Figura 52. Resultados UAC Prueba 5

- 72 -

Figura 53. Consumo de memoria del Servidor

Prueba 6: 38 calls/seg con 120 seg de duracin de la llamada, en la Figura 54 se puede


apreciar el escenario del servidor UAC y en la Figura 55 se observa el consumo del servidor
cuando se est manejando esa cantidad de llamadas.

- 73 -

Figura 54. Resultados UAC Prueba 6

- 74 -

Figura 55. Consumo de memoria del Servidor

Prueba 7: 30 calls/seg con 180 seg de duracin de la llamada, en la Figura 56 se puede


apreciar el escenario del servidor UAC.

- 75 -

Figura 56. Resultados UAC Prueba 7

Prueba 8: 32 calls/seg con 180 seg de duracin de la llamada, en la Figura 57 se puede


observar el escenario del servidor UAC.

- 76 -

Figura 57. Resultados UAC Prueba 8

Prueba 9: 33 calls/seg con 180 seg de duracin de la llamada, en la Figura 58 se muestra el


escenario del servidor UAC y en la Figura 59 se puede apreciar el consumo del servidor cuando
se estan manejando esa cantidad de llamadas.

- 77 -

Figura 58. Resultados UAC Prueba 9

- 78 -

Figura 59. Consumo de Memoria del Servidor.

Prueba 10: 34 calls/seg con 180 seg de duracin de la llamada, en la Figura 60 se puede
apreciar el escenario del servidor UAC y en la Figura 61 se puede ver el consumo del servidor
cuando se est manejando esa cantidad de llamadas.

- 79 -

Figura 60. Resultados UAC Prueba 10

- 80 -

Figura 61. Consumo de Memoria del Servidor.

5.3. Pgina Web


5.3.1. Diseo
Luego de evaluar las funcionalidades requeridas por el administrador para la aplicacin web,
se determin que la misma deba incluir bsicamente dos opciones, como se muestran en la Figura 62
y en la Figura 63.

- 81 Pgina de Inicio de Sesin


Se puede seleccionar
Modificar Archivo de
Configuracin

Cambiar Prefijos de
Enrutamiento

Est formado por

Seleccionar

Insertar:
* Mdulo
* Parmetro
* Regla de Enrutamiento
* Regla de Enrutamiento
* Regla de Enrutamiento
* Regla de Enrutamiento
* Regla de Enrutamiento
Reparticin de carga

por
por
por
por
por

URI
FROM
TO
HORA

* Enrutamiento por URI


* Enrutamiento por FROM
* Enrutamiento por TO
* Enrutamiento por HORA
* Enrutamiento por
Reparticin de Carga
Dentro de cada
pgina a seleccionar
tenemos:

Links Asociados:
* Ver ms informacin
* Ver cdigo
* Ver dependencias entre
mdulos

* Tabla con Prefijos


Existentes
* Opciones para los prefijos:
* Agregar
* Editar
* Link para Archivo de
configuracin

Figura 62. Diagrama de las funciones de la pgina Web.

Cambiar los prefijos de Enrutamiento.

Modificar el archivo de configuracin de OpenSER.

- 82 -

Figura 63. Opciones para el administrador en la pgina web

5.3.2. Modificacin del archivo de configuracin de OpenSER


La primera opcin le permite al administrador de OpenSER modificar el archivo de
configuracin, bien sea agregar eliminar cdigo, con la ventaja de que puede hacerlo directamente
desde dicha pgina.
En la pgina de modificacin del archivo de configuracin de OpenSER, ver Figura 64, se
decidi adems, agregar tres links que contienen informacin relacionada con el desarrollo del archivo
de configuracin.
Ver ms informacin: contiene un resumen de la sintaxis bsica a seguir para agregar un
mdulo, modificar un parmetro, desarrollar una regla de enrutamiento, entre otras. Si se desean
mayores detalles ser necesario dirigirse al Manual de OpenSER.
Ver Cdigo: le ofrece la ventaja al administrador de visualizar en un archivo de texto la
configuracin actual de OpenSER.
Dependencias entre mdulos: en este archivo de Word se encuentra un resumen de los
mdulos que conforman OpenSER y las dependencias existentes entre ellos, con el fin de facilitarle al
administrador el proceso de inclusin de mdulos en el archivo de configuracin.

- 83 -

Figura 64. Pgina para la modificacin del archivo de configuracin

Para la modificacin del archivo de configuracin, el administrador deber elegir alguna de las
opciones, y posteriormente escribir el cdigo en el cuadro de texto. De esta forma, el cdigo escrito se
incluir en el lugar adecuado en el archivo de configuracin.
La Pgina Principal de Enrutamiento, ver Figura 65, permite al administrador tener un
completo manejo de la base de datos donde se encuentran almacenados los dominios
correspondientes a

cada prefijo y tipo de enrutamiento. De esta forma, el administrador podr

escoger mediante una lista desplegable el tipo de enrutamiento con el que desea trabajar. De acuerdo
con el diseo desarrollado, luego de elegir el tipo de enrutamiento se hace un redireccionamiento a la
pgina (Ver Figura 66) donde se mostrarn los prefijos existentes para ese tipo de enrutamiento, y
donde adems se podr agregar un nuevo prefijo, y editar o eliminar un prefijo existente.

- 84 -

Figura 65. Pgina Principal de Enrutamiento

- 85 -

Figura 66. Opciones para un enrutamiento en especfico

Luego de que un prefijo es modificado o agregado, se hace un redireccionamiento a la pgina


del enrutamiento correspondiente, en la que se podr ver la tabla actualizada de los prefijos.

CAPTULO VI: CONCLUSIONES Y RECOMENDACIONES


Luego de que se culminaron y alcanzaron todos los objetivos que fueron propuestos para el
proyecto de pasanta, resulta importante resumir los puntos ms relevantes que se desprendieron del
mismo. En este captulo se presentan algunas de las conclusiones a las cuales se lleg, as como
algunas recomendaciones relacionadas con los puntos ms significativos que se abarcaron durante la
pasanta.
Primero, podemos sealar que se cumplieron todos los objetivos planteados al inicio de la
pasanta, con lo cual se concreta la posibilidad de implementar un servidor Proxy SIP para el
enrutamiento de llamadas VoIP propio de CANTV y del cual se tenga un completo dominio.
La herramienta desarrollada es de gran utilidad y potencialidad para la comunicacin entre
servidores dentro de la misma compaa sin tener que involucrar a un proveedor o depender del
mismo. Adems con ella, se pueden desarrollar servicios que actualmente dependen de algunos
proveedores para as tener control absoluto de ellos.
La investigacin terica realizada en las primeras semanas de pasanta permiti ampliar los
conocimientos en aspectos relacionados a los sistemas VoIP y al protocolo de sealizacin SIP.
Adems, constituy la base mediante la cual se pudo definir cul sera la solucin existente en el
mercado usada para el desarrollo del proyecto.
Al estudiar ms en detalle las distintas soluciones comerciales para el desarrollo del servidor
Proxy SIP, se determin que OpenSER era la solucin que mejor se perfilaba. Esto debido a que
presentaba una buena documentacin adems de una amplia comunidad de usuarios. Sin embargo,
otro aspecto determinante en la eleccin fue el hecho de que en la empresa, OpenSER era la
herramienta de la que se tena conocimiento y bsicamente de la que se interesaba tener el control.
Adicional al proceso de configuracin del servidor Proxy, diseo y desarrollo de la aplicacin
web, fue necesario realizar un par de manuales que contienen el proceso de configuracin e
instalacin de cada una de las herramientas requeridas durante el desarrollo del proyecto, as como
una explicacin detallada del proceso de instalacin y configuracin de OpenSER. Este material
resultar fundamental para el momento en que se necesite hacer una reinstalacin del Servidor Proxy
o bien realizar alguna modificacin en la configuracin del mismo.
Al ahondar un poco en el aspecto referente a la escalabilidad presentada por OpenSER se
decidi corroborar que efectivamente el mismo est en capacidad de manejar alrededor de 5000
llamadas por segundo. Para estas pruebas se emple el programa SIPP con el fin de generar el trfico
requerido. Se pudo comprobar que efectivamente OpenSER, trabajando bajo las caractersticas de
hardware del servidor utilizado, est en la capacidad de manejar alrededor de 6000 llamadas por
segundo.

87
En lo que respecta a la realizacin del proyecto, podemos sealar que los objetivos planteados
fueron satisfechos, pero adems se fueron incorporando nuevas metas que enriquecieron la solucin
final, logrando de esta manera aportar mayores conocimientos en lo que se refiere a OpenSER.
Entre los aspectos adicionales incluidos en la pasanta, se pueden mencionar: la configuracin
de OpenSER no slo como Proxy, sino tambin como Register, la realizacin de las pruebas de trfico
mediante las cuales se pudo estimar para el servidor empleado la cantidad de llamadas concurrentes
que puede manejar OpenSER. Igualmente, se desarroll la aplicacin Web para la configuracin de
OpenSER y la base de datos donde se encuentran los prefijos para el enrutamiento.
Referente a las recomendaciones y sugerencias que se presentaron a lo largo del desarrollo de
la pasanta, se recomienda no descargar la ltima versin de OpenSER del sitio oficial debido a que
actualmente la documentacin solamente se encuentra disponible hasta la penltima versin (1.0). Por
ello, las funciones incluidas en la nueva versin, as como los cambios de sintaxis para una
determinada funcin pueden no ser las mismas al igual que al instalar la ltima versin no se garantiza
estabilidad en la misma limitando as la ejecucin de algn desarrollo.
Tambin resulta fundamental contar con respaldos del archivo de configuracin de OpenSER,
por ello se recomienda que cada vez que se hayan incorporado cambios importantes y funcionales, se
guarde dicho archivo de configuracin en una carpeta destinada exclusivamente para ello. De esta
forma, en caso de corromper el archivo de configuracin de OpenSER, est podr ser recuperado
rpidamente.
Con respecto a la Aplicacin Web, se recomienda estudiar la factibilidad de incorporar una
funcionalidad que permita eliminar cdigo del archivo de configuracin de OpenSER via web, sin
necesidad de tener que hacerlo directamente en la consola.

88
REFERENCIAS

[1] H.323. Consultado en URL: http://es.wikipedia.org/wiki/H.323. 20 de Noviembre de 2006.


[2] Jitter. Consultado en URL:
http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci213534,00.html. 20 de Noviembre de
2006.
[3] Login Name. Consultado en URL:
http://www.learnthenet.com/Spanish/glossary/login.htm 21 de Noviembre de 2006.
[4] PBX. Consultado en URL: http://es.wikipedia.org/wiki/PBX. 21 de Noviembre de 2006.
[5] Resea Histrica de CANTV. Consultado en URL:
http://www.cantv.com.ve/seccion.asp?pid=1&sid=1243. 8 de Noviembre de 2006.
[6] Trabajos presentados asignatura Redes de Ordenadores. Consultado en URL:
http://www.uv.es/~montanan/redes/trabajos. 8 de Noviembre de 2006.
[7] Superintendencia delegada para acueducto, alcantarillado y aseo. Algunas definiciones
importantes. Consultado en URL:
http://www.superservicios.gov.co/telecomunicaciones_definiciones.htm. 8 de Noviembre de 2006.
[8] Telefona IP. Consultado en URL: http://www.monografias.com/trabajos16/telefonasealizacin/telefona-sealizacin.shtml. 9 de Noviembre de 2006.
[9] MARTIN, J. Telecommunications and the computer. Englewood Clifss, NJ Prentice Hall. 1990.
[10] VILLAVICENCIO, M. Red de Sealizacin por Canal Comn N 7. Consultado en URL:
http://neutron.ing.ucv.ve/revista-e/No6/Villavicencio/trabSisT1.htm. 9 de Noviembre de 2006.
[11] GUEVARA, M. La Nueva Red Pblica de Telecomunicaciones. Consultado en URL:
http://www.pe.ipv6tf.org/editorial/20051012. 10 de Noviembre de 2006.
[12] RTB/C (Red Telefnica Bsica). Consultado en URL:
http://www.salazarweb.com/antbuspre.asp?Cod=648&nombre=648&orden=True. 10 de Noviembre de
2006.
[13] Softswitch. Consultado en URL: http://www.recursosvoip.com/colabora/softswitch1.php. 13 de
Noviembre de 2006.
[14] VAN DEER VEER, H. The voice of the future: Next Generation Networks. Abril 2002. White
Paper.
[15] SIERNA, L. Sealizacin en telefona. Sistema de sealizacin N 7 (primera parte). Diciembre
2001. Consultado en URL: http://www.cinit.org.mx/articulo.php?idArticulo=7. 9 de Noviembre de
2006.
[16] FERNANDEZ, C. Diseo de una herramienta de monitoreo de sealizacin y control en la

plataforma VoIP de CANTV que permite mejorar los procesos de evaluacin, monitoreo y soporte
tcnicos de los servicios NGN. Diciembre 2006.

89
[17] Glosario Recursos VoIP M-R. Consultado en URL: http://www.recursosvoip.com/glosario/M-R.php.
13 de Noviembre de 2006.
[18] WAN. Consultado en URL: http://es.wikipedia.org/wiki/wan. 9 de Noviembre de 2006.
[19] Fundamentos de una red de rea local. Consultado en URL:
http://www.geocities.com/siliconvalley/8195/redes.html. 9 de Noviembre de 2006.
[20] MOULTON, P. Telecommunications Survival Guide, The: Understanding and Applying
Telecommunications Technologies to Save Money and Develop New Business. Prentice Hall. 2001.
[21] SOTO, M. Protocolos TCP/IP. Consultado en URL: http://usuarios.lycos.es/janjo/janjo1.html.
9 de Noviembre de 2006.
[22] El Protocolo IP. Consultado en URL: http://neo.lcc.uma.es/evirtual/cdd/red/ip.html. 10 de
Noviembre de 2006].
[23] El Protocolo TCP. Consultado en URL:
http://neo.1cc.uma.es/evirtual/cdd/tutorial/transporte/tcp.html. 10 de Noviembre de 2006.
[24] User Datagram Protocol. Consultado en URL: http://es.wikipedia.org/wiki/udp 13 de Noviembre
de 2006.
[25] El protocolo UDP. Consultado en URL:
http://neo.lcc.uma.es/evirtual/cdd/tutorial/transporte/udp.html 13 de Noviembre de 2006.
[26] Router. Consultado en URL: http://www.webopedia.com/term/r/router.html 13 de Noviembre de
2006.
[27] Puerta de enlace. Consultado en URL: http://es.wikipedia.org/Puerta_de_Enlace. 15 de
Noviembre de 2006.
[28] Servidor. Consultado en URL: http://es.wikipedia.org/wiki/Servidor. 14 de Noviembre de 2006.
[29] How Virtual Private Network Work. Consultado en URL:
http://www.howstuffworks.com/vpn.htm. 14 de Noviembre de 2006.
[30] NADER, R. VPN Redes Virtuales Privadas. Consultado en URL:
http://www.monografas.com/trabajos11/repri/repri.shtml. 14 de Noviembre de 2006.
[31] Red Hat. Consultado en URL: http://fedora.redhat.com/docs/release_notes/fc4/errata/. 16 de
Noviembre de 2006.
[32] La voz sobre IP: hacia la convergencia. Consultado en URL:
http://www.fundacionauna.org/areas/25_publicaciones/09_VOIP%20.pdf 14 de Noviembre de 2006.
[33] SUN MYCROSYSTEMS NC. The Softswitch with Sun Microsystems. Mayo 2002.
[34] HANDLEY, M. et all. SIP Session Initiation Protocol (RFC 2543). Marzo 1999. Consultado en URL:
http://www.ietf.org/rfc/rfc2543.txt 7 de Noviembre de 2006.
[35] COLLINS, D. Carrier Grade Voice Over IP. McGraw-Hill. 2003.
[36] Iptel.org. Sip Network Elements. Consultado en URL: http://www.iptel.org/sip/intro/elements. 7
de Noviembre de 2006.

90
[37] Tema 2: Trfico Telefnico. Consultado en URL:
http://www.terra.es/personal/ignaciorb/telefonia/conmutacin/conmutacin_2.htm. 04 de Diciembre
de 2006.
[38] FICHE, G. HBUTERNE, G. Communicating Systems & Networks: Traffic & Performance. Kogan
Page Science. London and Sterling, VA. 2004.
[39] PARK, K. QoS in Packet Networks. Springer. United States of America. 2005.
[40] OpenSER-GPL Sip Server. Consultado en URL:
http://www.openser.org/index?phpoption=com_frontpage&Itemid=1. 24 de Noviembre de 2006.
[41] XMPP. Consultado en URL: http://es.wikipedia.org/wiki/Xmpp. 24 de Noviembre de 2006.
[42] Telefona IP Asterisk Open Source PBX. Consultado en URL: http://consultorianet.com/voip.htm.
24 de Noviembre de 2006.
[43] Asterisk. Consultado en URL: http://www.voip-info.org/wiki/view/Asterisk+introduction. 24 de
Noviembre de 2006.
[44] Asterisk. Consultado en URL: http://es.wikipedia.org/wiki/Asterisk. 24 de Noviembre de 2006.
[45] Sistema Operativo. Consultado en URL: http://es.wikipedia.org/wiki/Sistema_operativo. 17 de
Noviembre de 2006.
[46] Anlisis de trfico y calidad de servicio. Consultado en URL: http://eslared.org.ve/walc2004/apcaa/archivos-aa/1e60354f4717edb9fb793dbc5219499d/Practica_QoS.doc. 13 de Diciembre de 2006.
[47] Seguridad Informtica y Software Libre. Consultado en URL: http://es.tldp.org/Informes/informeseguridad-SL/informe-seguridad-SL.pdf. 27 de Noviembre de 2006.
[48] Flex, versin 2.5. Consultado en URL: http://ditec.um.es/~aflores/dile/flex/flex-es.html#SEC1. 21
de Noviembre de 2006.
[49] NGREP Network NGREP. Consultado en URL:
http://ngrep.sourceforge.net/download.html. 22 de Noviembre de 2006.

- 91 -

ANEXO 1: Manual de OpenSER


1. Informacin bsica de SIP

1.1.

Arquitectura SIP
SIP es un protocolo de sealizacin que maneja el inicio, la modificacin y la finalizacin de

sesiones multimedia. En combinacin con otros protocolos, es usado para describir las caractersticas
de sesin de los potenciales participantes de la misma. Estrictamente hablando, SIP est escrito de
forma tal que los medios que se utilizarn en una sesin dada pueden usar cualquier protocolo de
transporte, usando comnmente el protocolo RTP.
La sealizacin SIP puede ser considerada por separado de los medios. sto es importante ya
que esta sealizacin puede ser pasada por uno o ms proxies o servidores de redireccionamiento
mientras que el flujo de datos de media toma un camino ms directo.

1.2.

Historia de SER
SER (SIP Express Router) fue creado por un grupo de desarrolladores, empleados por

Fraunhofer Fokus, un grupo de investigacin alemn. El proyecto de iptel.org era construir un sitio
Web que tuviese informacin de VoIP y ofrecer servicios gratis del mismo. SER fue desarrollado como
parte del esfuerzo de Jiri Kuthan. Es un proyecto de cdigo abierto, siendo iptel.org el punto de
entrada de informacin referente a SER, as como tambin de tutoriales sobre SIP.
Fraunhofer Fokus hizo girar iptel.org como una empresa para el desarrollo de SER (para
propsitos tanto comerciales como de cdigo abierto) y para ofrecer servicios y paquetes de software
basados en los proyectos desarrollados por dicha empresa. Iptel.org tiene principalmente el control y
responsabilidad en el desarrollo de SER, el servidor SIP de cdigo abierto.

2. OpenSER

2.1.

Historia
En el ao 2005, Voice System anunci la creacin de OpenSER. La razn de dicha creacin, se

debi a la falta de progreso y contribucin al proyecto SER por parte de los miembros su comunidad.
Los desarrolladores de Voice System de SER, sentan que iptel.org fue quin tom las decisiones
finales en el lanzamiento de los cdigos, adems de que no haba podido agregar nuevas
contribuciones y haba sido demasiado lento en lanzar las nuevas versiones de SER.
La sensacin general era que las nuevas caractersticas ofrecidas eran buenas, pero la mayora
de la gente perciba que sera ms sencillo para la comunidad si tanto la estabilidad y garanta de
calidad encontrada en SER se podra combinar en el mismo proyecto con las metas de OpenSER.

- 92 -

2.2.

Descripcin
OpenSER es un servidor SIP, tiene una arquitectura flexible y presenta una amplia coleccin de

extensiones. El servidor implementa un Proxy, herramientas para el registro, la redireccin y


localizacin de servicios SIP/VoIP.
Un servidor SIP es un elemento primordial en la constitucin de una red VoIP basada en el
estndar SIP, un elemento de control de sesin entre usuarios y servicios. Por el Proxy SIP pasan
todas las peticiones de un usuario, le permite acceder a la red, localizar a otros usuarios y establecer la
comunicacin VoIP SIP.

3. Ubicacin de OpenSER en el servidor

3.1.

Originales y Documentacin
Los archivos originales del OpenSER junto con los manuales, las libreras, los archivos

ejecutables de los mdulos, informacin referente al OpenSER, ejemplos se encuentran en la carpeta:


/home/openser/openser-1.0.1-tls en el servidor con IP:161.196.58.48.

3.2.

Backups
En la carpeta /etc/openser/backup se encuentra un archivo openser.cfg de respaldo y uno

original (tal cual como cuando se instal el servicio), para que cuando ocurra algn error y no se
pueda solventar, se pueda sustituir el archivo y seguir con la programacin actual sin problema
alguno.
Adems se recomienda ir guardando los archivos con nuevas modificaciones en la misma
carpeta para tener respaldo de los avances y, al momento de tener que deshacer modificaciones, sea
ms fcil el cambio.

- 93 -

3.3.

Archivo openser.cfg
El archivo openser.cfg es el ncleo de OpenSER, por lo tanto ste es el que se debe modificar

si se desea agregar una nueva funcionalidad a OpenSER.


Este archivo se encuentra ubicado en: /etc/openser
Carpeta donde
est el archivo

Archivo de configuracin

4. Archivo de configuracin

4.1.

Descripcin
Este archivo contiene todos los parmetros de configuracin del OpenSER como tal, es el

ncleo del servicio.

4.2.

Estructura
Este archivo presenta siete secciones lgicas principales:
4.2.1.

Seccin de definiciones globales: esta porcin de openser.cfg usualmente

contiene la direccin IP, el puerto que est siendo escuchado, el nivel de detalles en los
mensajes de deteccin de errores. Los cambios en esta seccin afectan al demonio de
OpenSER en si mismo.

4.2.2.

Seccin de mdulos: contiene una lista de libreras externas que son necesarias

para exponer la funcionalidad no proporcionada por el ncleo. Estos mdulos son

- 94 -

archivos compartidos (presentan extensin .so) y son cargados con el comando

loadmodule.

4.2.3.

Seccin de configuracin de los mdulos: la mayora de las libreras externas

especificadas en la seccin de los mdulos son necesarias para habilitar los parmetros
del mismo, para que ste funcione correctamente. Estos parmetros del mdulo se fijan
por medio del comando modparam, el cual toma la forma: modparam (nombre del

mdulo, parmetro del mdulo, valor del parmetro).

- 95 -

4.2.4.

Bloque de ruta principal (enrutamiento): es anlogo a la funcin principal de los

programas escritos en lenguaje C. Este es el punto de acceso para controlar mensajes


SIP y controlar cmo cada mensaje recibido ser manejado.

4.2.5.

Bloque de ruta secundaria (rutas): adicionalmente al bloque de ruta principal,

openser.cfg puede contener bloques de rutas adicionales que pueden ser llamadas por
el bloque de ruta principal , por otros bloques de rutas secundarios. Un bloque de ruta
secundario es anlogo a una subrutina.

- 96 -

4.2.6.

Bloque de ruta de respuesta: de forma opcional, los bloques de rutina de

respuesta pueden ser utilizados para manejar respuestas a mensajes SIP. La mayora de
estos mensajes de respuesta son OK.

4.2.7.

Bloque de ruta de falla: opcionalmente pueden agregarse bloques de rutas de

fallas que pueden ser usados cuando se necesitan procesos especiales para manejar
condiciones de falla, como fin de tiempo de espera, o congestin, entre otras.

Ruta de
falla

4.3.

Insertar o modificar cdigo


Si se desea editar el archivo, esto debe hacerse directo desde consola, pero para insertar algo

nuevo dentro del mismo se tienen dos opciones, modificar directamente en la consola el archivo de
configuracin openser.cfg o modificar el archivo de configuracin va Web (solo podr agregar cdigo
al archivo de configuracin, en caso de que se necesite eliminar cdigo o realizar alguna modificacin
en el mismo, esto deber de hacerse directamente desde consola).

- 97 -

Al acceder a la pgina Web (despus de registrarte como administrador), se observar por


pantalla lo siguiente:

Se elige en la lista desplegable la opcin deseada, y en el cuadro de texto se escribe el cdigo,


luego se pulsa el botn enviar. En este momento, los cambios se habrn realizado en su archivo de
configuracin.
Para modificar el archivo desde consola, debe ubicarse en la carpeta donde se encuentra el
mismo y ejecutar el comando: vi openser.cfg para luego acceder al modo insert (presionando la tecla
I) y luego se procede a editarlo.

- 98 -

Advertencia: siempre que se realicen modificaciones en el archivo de configuracin, OpenSER


debe detenerse e iniciarse ya que sta es la nica manera de que los cambios efectuados sean
tomados en cuenta.

Para reiniciar openser, debe ejecutar desde la consola el siguiente comando:

service ./openser restart


De esta forma, los cambios realizados en el archivo de configuracin de OpenSER sern
tomados en cuenta.

4.4.

Guardar o no los cambios del archivo openser.cfg


Para guardar las modificaciones hechas en el archivo de configuracin de OpenSER desde la

consola, se presiona la tecla Esc para salir del modo insert y se escribe:
:q! si no se quieren guardar los cambios hechos y se desea salir del editor.
:wq si se quieren guardar los cambios y salir del editor.
:w si solo se quieren guardar los cambios sin salir del editor.
:q si se quiere salir del editor sin haber hecho ningn cambio.
Nota: las comillas no deben colocarse.

4.5.

Ejecutar o no un trozo de cdigo


Para hacer esto existen dos opciones, si se desea que una lnea no se ejecute, es decir, tenerla

comentada (para pruebas u otra accin) se debe colocar un signo de numeral # al inicio de la lnea
y automticamente sta no ser ejecutada al reiniciar el servicio. Si por otro lado, lo que se quiere es
que no se ejecute un trozo de cdigo, se debe colocar al inicio del bloque un slash con un asterisco
/* y al final del bloque se invierte y se coloca primero el asterisco y luego es slash */ para cerrar el
comentario y as no permitir la ejecucin de ese trozo o bloque de cdigo al reiniciar el servicio.
De igual forma si se quiere comentar lnea por lnea en un trozo o bloque de cdigo puede
hacerse, as se puede comentar o no cualquier lnea por separado de las otras.

Lnea que no se ejecuta

Trozo de cdigo que


no se ejecuta

- 99 -

5. Uso del archivo openser.cfg

5.1.

Mdulos
OpenSER est formado por un conjunto de mdulos, cada uno de ellos contiene parmetros y

funciones exportadas. Para poder hacer uso de las mismas, los mdulos deben cargarse previamente
de la forma: loadmodule nombre_del_mdulo

Mdulos
cargados

Estos pueden listarse, segn la versin del OpenSER instalado (en este caso v.1.0), en la
pgina: http://www.openser.org/docs/modules/1.0.x/.
Es importante saber que hay mdulos que presentan dependencia de otros, por lo tanto antes
de cargar un mdulo es necesario chequear si presenta dependencia con alguno, y en caso de ser as,
ste debe cargarse primero.

- 100 -

Los mdulos tm y rr
deben cargarse en
lneas anteriores

El mdulo uac
presenta dependencia
de tm y rr

5.1.1.

Ubicacin

Los mdulos vienen ya incluidos en los archivos de instalacin del OpenSER. Cuando se instala
OpenSER, automticamente los archivos de configuracin de cada mdulo son instalados, mas no
cargados (slo se cargan aquellos que se encuentren especificados en el archivo de configuracin,
openser.cfg).
Adems, cada versin de OpenSER viene con sus mdulos adaptados para la misma, por ende
no se pueden agregar mdulos de versiones distintas a la del OpenSER instalado.

5.1.2.

Dependencia de los mdulos:

A continuacin se listan los mdulos de OpenSER con sus respectivas dependencias.

Acc: Tm, Rr

Msilo: Tm y Db

Alias_Db: MySQL, Dbtext

Mysql: ninguna dependencia

Auth: Sl

Nathelper: Usrloc

Auth_Db: Auth, Db

Options: Sl

Auth_Diameter: Sl

Pa: ninguna dependencia

Auth_Radius: Auth

Pdt: Db

Avpops: Db

Permissions: ninguna dependencia

Cpl-C: Tm, Sl, Usrloc.

Pike: ninguna dependencia

Dbtext: ninguna dependencia

Registrar: Usrloc, Sl

- 101

Dispatcher: ninguna dependencia

Rr: ninguna dependencia

Diversion: ninguna dependencia

Sl: ninguna dependencia

Domain: Db

Sms: Tm

Enum: ninguna dependencia

Speeddial: Db, Sl

Exec: ninguna dependencia

Textops: ninguna dependencia

Flatstore: ninguna dependencia

Tm: ninguna dependencia

Gflags: ninguna dependencia

Uac: Tm, Rr

Group: Db

Uac_Redirect: Tm, Acc

Group_Radius: ninguna dependencia

Uri: ninguna dependencia

Jabber: Db, Pa

Uri_db: Db

Lcr: Tm, Db

Uri_radius: ninguna dependencia

Maxfwd: ninguna dependencia

Usrloc: ninguna dependencia

Mediaproxy: ninguna dependencia

Xlog: ninguna dependencia

5.1.3.

Cargar los mdulos

En el archivo de configuracin de OpenSER, openser.cfg, existe un trozo de cdigo destinado


para cargar los mdulos deseados, para ello se escribe loadmodule modulo.so. Se debe tomar en
cuenta el orden en que se cargan los mismos para que no ocurran errores de dependencias.

5.2.

Parmetros
5.2.1.

Existentes

Cada mdulo tiene un conjunto de parmetros nicos, stos se encuentran explicados dentro
de la descripcin de cada uno en http://www.openser.org/docs/modules/1.0.x/. Adems se puede
obtener

una

lista

completa

de

todos

los

parmetros

de

http://www.openser.org/dokuwiki/doku.php/modules:1.0.x:index-parameters,

cada
donde

mdulo

en

hace

una

redireccin al lugar especifico dentro de la descripcin del mdulo donde se encuentra todo lo
referente al parmetro.

- 102 -

5.2.2.

Configuracin

Cada uno de los mdulos, que forman parte de OpenSER, estn constituidos por un conjunto
de parmetros. Al cargar un mdulo en el archivo de configuracin, los parmetros del mismo ya se
encontrarn disponibles y traen un valor por defecto.
Para ver los parmetros de cada mdulo y los valores que pueden tomar, dirigirse al link
indicado en la seccin anterior.
Para configurar un parmetro (cambiar el valor que trae por defecto) se escribe dentro del
archivo de configuracin de openser la siguiente lnea de cdigo:

modparam (modulo, parmetro, modo), donde:

mdulo: nombre del mdulo al cual pertenece el parmetro.

parmetro: nombre del parmetro a modificar.

modo: valor que tomar el parmetro en s.

De forma equivalente, se puede agregar un parmetro mediante la pgina de configuracin va


Web. Al acceder a la pgina Web, se observar por pantalla lo siguiente:

- 103 -

Se elige en la lista desplegable la opcin Insertar parmetro y en el cuadro de texto se


escribe el siguiente cdigo:

modparam (modulo, parmetro, modo),


luego se pulsa el botn enviar y con eso los cambios se realizarn en el archivo de configuracin.
Para modificar el archivo desde la consola, debe ubicarse en la carpeta donde se encuentra el
mismo: (/etc/openser), posteriormente se ejecuta el comando: vi openser.cfg para luego acceder al
modo insert (presionando cualquier tecla I) y editar el archivo.

Advertencia: siempre que se realicen modificaciones en el archivo de configuracin, debe


detenerse e iniciarse el servicio openser ya que sta es la nica manera de que los cambios
efectuados sean tomados en cuenta.

5.3.

Enrutamiento
5.3.1.

Partes

Dentro de esta seccin se encuentra como tal el manejo de las llamadas, donde se puede
diferenciar qu hace el script cada vez que se encuentra con un mensaje SIP proveniente de algn
telfono IP o de alguna llamada pasando a travs del servicio.

5.3.2.

Enrutamiento por URI

5.3.2.1.

Descripcin

Este enrutamiento consiste en cambiar la ruta o dominio destino de una llamada segn reglas
preestablecidas donde se revisa el nmero SIP del URI de la llamada. Para ello, cuando llega el INVITE
se chequea el numero SIP al cual va dirigida la llamada y segn el nmero que sea se cambia el
dominio al cual va dirigido.

5.3.2.2.

Insertar o modificar

Para modificar una regla de enrutamiento, es necesario hacerlo directamente en el archivo de


configuracin de OpenSER. Por otro lado, para agregar una regla se tienen dos opciones: agregar la
regla directamente en el archivo de configuracin de openser: openser.cfg agregar, solamente, una
regla mediante la pgina de configuracin va Web.
Al acceder a la pgina Web, se observar por pantalla lo siguiente:

- 104 -

Se elige en la lista desplegable la opcin Insertar regla de enrutamiento (URI) y en el cuadro


de texto se escribe el siguiente cdigo:
if(uri=~"^sip:nmeroSIP")

{ prefix("XX");
prefix2domain("X");
};

donde nmeroSIP es el nmero que se quiere buscar (por ejemplo, si se coloca 2, todos los nmeros
de telfono que comienzan por 2 sern redireccionados al dominio especificado al igual que si se
coloca el nmero 0416 o cualquier otro nmero), la funcin prefix(prefijo) le agrega un prefijo al
nmero para poder ubicarlo en la tabla de prefix_domain y poder hacer la bsqueda del dominio
referente a ese prefijo, por ltimo la funcin prefix2domain(mode), dependiendo del modo que se elija
reenva el INVITE con o sin el prefijo agregado.
Luego se pulsa el botn enviar y con eso los cambios se realizarn en el archivo de
configuracin.

- 105 -

Para modificar el archivo desde la consola, nos ubicamos en la carpeta donde se encuentra el
mismo y hacemos vi openser.cfg para luego acceder al modo insert (presionando la tecla I) y
proceder a editarlo.

Nota: siempre que se realicen modificaciones en el archivo de configuracin, debe detenerse e


iniciarse el servicio OpenSER ya que sta es la nica manera de que los cambios efectuados
sean tomados en cuenta.

5.3.3.
5.3.3.1.

Enrutamiento por FROM


Descripcin

Este enrutamiento consiste en cambiar la ruta o dominio destino de una llamada segn reglas
preestablecidas donde se revisa una coincidencia con el campo FROM del mensaje INVITE. Para ello,
cuando llega el INVITE se chequea el campo FROM de donde proviene la llamada y segn sea su
coincidencia se cambia el dominio al cual va dirigido.

5.3.3.2.
Funcin search()
La funcin search (re) sirve para revisar o buscar, como su nombre lo indica, dentro de un
mensaje SIP, la coincidencia de alguna expresin regular dentro del mismo mensaje.

5.3.3.3.

Cmo se modifica o agrega otra regla?

Para editar o eliminar una regla de enrutamiento, debe modificarse directamente el archivo de
configuracin de OpenSER directamente desde la consola usando para ello un editor, sin embargo,
para agregar una regla se puede trabajar directamente en el archivo de configuracin y escribir el
cdigo correspondiente en la seccin: Enrutamiento por campo: from.

agregar la regla mediante la pgina de configuracin va Web.

- 106 -

Nota: al agregar una nueva regla de enrutamiento FROM, debe asegurarse de no modificar el
comentario: #INSERTE REGLA DE ENRUTAMIENTO POR FROM AQU, debido a que el mismo adems
de ser un comentario para facilitarle al administrador la codificacin directamente en el archivo de
configuracin, es un punto de insercin del servidor web, si el mismo se modifica, o se elimina, el
servidor web fallar.
Si se desea agregar una regla de enrutamiento usando el servidor web, se observar por
pantalla:

Se elige en la lista desplegable la opcin Insertar regla de enrutamiento (FROM) y en el


cuadro de texto se escribe el siguiente cdigo:
If (search([Ff][Rr][Oo][Mm]: nmeroSIP))

{ prefix("XX");
prefix2domain("X");
};

donde el nmeroSIP es el nmero que se quiere buscar (por ejemplo, si se coloca 2, todos los
nmeros de telfono que en su campo FROM comienzan por 2 sern redireccionados al dominio

- 107 -

especificado, al igual que si se coloca el nmero 0416 o cualquier otro nmero), la funcin

prefix(prefijo) le agrega un prefijo al numero para poder ubicarlo en la tabla de prefix_domain y poder
hacer la bsqueda del dominio referente a ese prefijo, por ltimo la funcin prefix2domain(mode),
dependiendo del modo que se elija reenva el INVITE con o sin el prefijo agregado.
Luego se pulsa el botn enviar y con eso los cambios se realizarn en el archivo de
configuracin.
Para modificar el archivo desde la consola, nos ubicamos en la carpeta donde se encuentra el
mismo y escribimos el comando vi openser.cfg (sin comillas) para luego acceder al modo insert
(presionando la tecla I) y despus editarlo.

Nota: siempre que se realicen modificaciones en el archivo de configuracin, debe detenerse


e iniciarse el servicio openser ya que sta es la nica manera de que los cambios efectuados
sean tomados en cuenta.

5.3.4.
5.3.4.1.

Enrutamiento por TO
Descripcin

Este enrutamiento consiste en cambiar la ruta o dominio destino de una llamada segn reglas
preestablecidas donde se revisa una coincidencia con el campo TO del mensaje INVITE. Para ello,
cuando llega el INVITE se chequea el campo TO a dnde va la llamada y segn sea su coincidencia
se cambia el dominio al cual va dirigido.

5.3.4.2.
Funcin search()
La funcin search (re) sirve para revisar o buscar, como su nombre lo indica, dentro de un
mensaje SIP, la coincidencia de alguna expresin regular dentro del mismo mensaje.

5.3.4.3.

Insertar o modificar una regla?

Para editar o eliminar una regla de enrutamiento, debe modificarse directamente el archivo de
configuracin desde la consola, sin embargo para agregar una regla se tienen dos opciones: modificar
directamente en la consola el archivo de configuracin de openser: openser.cfg agregar, la regla
mediante la pagina de configuracin va Web.

- 108 -

Al acceder a la pgina Web, se observar por pantalla lo siguiente:

Se elige en la lista desplegable la opcin Insertar regla de enrutamiento (TO) y en el cuadro


de texto se escribe el siguiente cdigo:
If (search([Tt][Oo]: nmeroSIP))

{ prefix("XX");
prefix2domain("X");
};

- 109 donde el nmeroSIP es el nmero que se busca (por ejemplo, si se coloca 2, todos los nmeros de
telfono que en su campo TO comienzan por 2 sern redireccionados al dominio especificado, al igual
que si se coloca el nmero 0416 o cualquier otro nmero), la funcin prefix(prefijo) le agrega un
prefijo al numero para poder ubicarlo en la tabla de prefix_domain y poder hacer la bsqueda del
dominio referente a ese prefijo, por ltimo la funcin prefix2domain(mode), dependiendo del modo
que se elija, se encargar de reenviar el INVITE con o sin el prefijo agregado.
Luego se pulsa el botn enviar y con eso los cambios se realizarn en el archivo de
configuracin.
Para modificar el archivo desde la consola, debe ubicarse en la carpeta donde se encuentra el
mismo y ejecutar el comando: vi openser.cfg para luego acceder al modo insert (presionando la
tecla I) y poder editarlo.

Nota: siempre que se realicen modificaciones en el archivo de configuracin, es necesario


detener e iniciar el servicio openser ya que sta es la nica manera de que los cambios
efectuados sean tomados en cuenta.
Adems, al agregar una nueva regla de enrutamiento TO, debe asegurarse de no modificar el
comentario: #INSERTE REGLA DE ENRUTAMIENTO POR TO AQU, debido a que el mismo adems de
ser un comentario para facilitarle al administrador la codificacin directamente en el archivo de
configuracin, es un punto de insercin del servidor Web, si el mismo se modifica, o se elimina, el
servidor Web fallar.

5.3.5.
5.3.5.1.

Enrutamiento por HORA


Descripcin

Este enrutamiento consiste en cambiar la ruta o dominio destino de una llamada segn las
reglas y el rango de horas preestablecidas desde la pgina Web. Segn el rango de horas establecido
se chequea en la base de datos el dominio asignado y se reenva la llamada al dominio
correspondiente.

5.3.5.2.

Insertar o modificar una regla

Para agregar una regla se tienen dos opciones: agregar la regla directamente en el archivo de
configuracin de OpenSER: openser.cfg (accediendo desde la consola) agregar la regla usando la
pgina de configuracin va Web. Si se desea editar o eliminar alguna regla de enrutamiento, esto se
deber hacer directamente en el archivo de configuracin de OpenSER, accediendo al mismo desde la
consola.

- 110 -

Al acceder a la pgina Web, se observar por pantalla lo siguiente:

Se elige en la lista desplegable la opcin Insertar regla de enrutamiento (HORA) y en el


cuadro de texto se escribe el siguiente cdigo:
if(uri=~"^sip:nmeroSIP")

{ prefix("XX");
prefix2domain("X");
};

donde el nmeroSIP es el nmero que se quiere buscar (por ejemplo, si se coloca 2, todos los
nmeros de telfono que comienzan por 2 sern redireccionados al dominio especificado, al igual que
si se coloca el nmero 0412 o cualquier otro nmero), la funcin prefix(prefijo) le agrega un prefijo al
nmero para poder ubicarlo en la tabla de prefix_domain y poder hacer la bsqueda del dominio
referente a ese prefijo, por ltimo la funcin prefix2domain(mode), dependiendo del modo que se elija
reenva el INVITE con o sin el prefijo agregado.
Luego se pulsa el botn enviar y con ello los cambios se realizarn en el archivo de
configuracin.

- 111 -

Para modificar el archivo desde la consola, nos ubicamos en la carpeta donde se encuentra el
mismo (/etc/openser) y se ejecuta el comando vi openser.cfg para luego acceder al modo insert
(presionando la tecla I) y despus editarlo.

Nota: siempre que se realicen modificaciones en el archivo de configuracin, el servicio


openser debe detenerse e iniciarse ya que sta es la nica manera de que los cambios
efectuados sean tomados en cuenta.
As como se ha explicado en los otros tipos de enrutamiento, al agregar una nueva regla de
enrutamiento por hora, debe asegurarse de no modificar el comentario: #INSERTE REGLA DE
ENRUTAMIENTO POR HORA AQU, debido a que el mismo adems de ser un comentario para
facilitarle al administrador la codificacin directamente en el archivo de configuracin, es un punto de
insercin del servidor web, si el mismo se modifica, o se elimina, el servidor web fallar.

5.4.

Rutas
Descripcin

5.4.1.

Son bloques de rutas adicionales que pueden ser llamadas por el bloque de ruta principal
(enrutamiento) , por otros bloques de rutas secundarios. Un bloque de ruta secundario es anlogo a
una subrutina.

5.4.2.

Funcin

Sirven para cambiar el destino final de la llamada o simplemente para notificar sobre algn
evento ocurrido.

5.4.3.

Uso

Para crear una ruta slo basta con escribir al final de la parte de enrutamiento el siguiente
cdigo:
route[X] {
};
donde X indica el nmero de ruta y los puntos suspensivos indican el cdigo para enrutamiento o
envo de algn mensaje SIP en respuesta a algn evento que suceda.
Para llamar la subrutina desde cualquier parte del cdigo basta se escribe route(X); para as
poder ejecutar la ruta luego del salto.

5.5.

Funciones Usadas
5.5.1.

Funcin

"acc_db_request(comment, table)"

"acc_diam_request(comment)"

- 112 -

"acc_log_request(comment)"
"acc_rad_request(comment)"
"add_diversion(reason)"
"add_rcv_param()"
"add_rr_param(param)"
"add_sock_hdr(hdr_name)"
"add_uri_param(param)"
"alias_db_lookup(table_name)"
"allow_refer_to(allow_file, deny_file)"
"allow_refer_to(basename)"
"allow_register(allow_file, deny_file)"
"allow_register(basename)"
"allow_routing()"
"allow_routing(allow_file,deny_file)"
"allow_routing(basename)"
"allow_trusted()"
"append_hf(hf)"
"append_rpid_hf()"
"append_rpid_hf(prefix, suffix)"
"append_time()"
"append_to_reply(txt)"
"append_urihf(prefix, suffix)"
"avp_check(name,op_value) "
"avp_copy(old_name,new_name) "
"avp_db_delete(source,name)"
"avp_db_load(source,name) "
"avp_db_store(source,name)"
"avp_delete(name) "
"avp_load_radius(user)"
"avp_op(name,op_value) "
"avp_print()"
"avp_printf(dest, format) "
"avp_pushto(destination,name) "
"avp_subst(avps, subst)"
"avp_write(value,name)"
"check_from()"
"check_route_param(re)"
"check_to()"
"client_nat_test("type)
"consume_credentials()"
"cpl_process_register()"
"cpl_process_register_norpl()"
"cpl_run_script(type,mode)"
"decode_contact()"
"decode_contact_header()"
"diameter_is_user_in(who, group)"
"diameter_proxy_authorize(realm)"
"diameter_www_authorize(realm)"
"does_uri_exist()"
"ds_select_domain(set, alg)"
"ds_select_dst(set, alg)"
"encode_contact(encoding_prefix)"
"end_media_session(")

"enum_query(),enum_query("suffix"),
enum_query("suffix", "service")"
"exec_dset(command)"
"exec_msg(command)"
"fix_contact(")
"fix_nated_contact()"
"fix_nated_register()"
"fix_nated_sdp(mode)"
"flush" (integer)
"force_rtp_proxy()"
"force_rtp_proxy(flags)"
"force_rtp_proxy(flags, ip_address)"
"from_gw()"
"get_redirects(max)"
"get_redirects(max,reason)"
"handle_subscription(domain)"
"has_totag()"
"is_avp_set(name) "
"is_direction(dir)"
"is_from_local()"
"is_from_user_e164()"
"is_gflag(flag)"
"is_method(name)"
"is_present_hf(hf_name)"
"is_rpid_user_e164()"
"is_uri_host_local()"
"is_user(username)"
"is_user_in(URI, group)"
"jab_exit_jconf()"
"jab_go_offline()"
"jab_go_online()"
"jab_join_jconf()"
"jab_send_message()"
"load_contacts()"
"load_gws()"
"lookup("domain)"
"loose_route()"
"m_dump()"
"m_store(mode)"
"mf_process_maxfwd_header(max_value)"
"nat_uac_test(flags)"
"next_contacts()"
"next_gw()"
"options_reply()"
"pike_check_req()"
"prefix2domain("mode)"
"proxy_authorize(realm, table)"
"proxy_challenge(realm, qop)"
"radius_is_user_in(URI, group)"
"radius_proxy_authorize(realm)"
"radius_www_authorize(realm)"
"record_route()"
"record_route_preset(string)"

- 113 -

"registered("domain)"
"remove_hf(hname)"
"replace("re, txt)"
"replace_all(re, txt)"
"reset_gflag(flag)"
"save("domain)"
"save_memory(domain)"
"save_noreply(domain)"
"sd_lookup(table)"
"sdp_mangle_ip(pattern, newip)"
"sdp_mangle_port(offset)"
"search("re)"
"search_append(re, txt)"
"set_accept_filter(filter,flags) "
"set_deny_filter(filter,flags) "
"set_gflag(flag)"
"sl_reply_error()"
"sl_send_reply(code, reason)"
"sms_send_msg()"
"sms_send_msg_to_net(network_name)"
"strict_route()" -- deprecated
"subst("'/re/repl/flags')"
"subst_uri('/re/repl/flags')"
"subst_user('/re/repl/flags')"
"t_check_status(re)"
"t_check_trans()"
"t_flush_flags()"
"t_forward_nonack(ip, port)"
"t_forward_nonack_udp(ip, port)"
"t_forward_nonack_tcp(ip, port)"
"t_forward_nonack_tls(ip, port)"
"t_forward_nonack_uri()"
"t_local_replied(reply)"
"t_lookup_request()"
"t_newtran()"
"t_on_branch(branch_route)"
"t_on_failure(failure_route)"
"t_on_reply(reply_route) "
"t_relay()"
"t_relay_to_udp(ip, port), t_relay_to_tcp(ip,
port), t_relay_to_tls(ip, port)"
"t_release()"
"t_replicate(ip, port) t_replicate_udp(ip, port)
t_replicate_tcp(ip, port)"
"t_reply(code, reason_phrase)"
"t_retransmit_reply()"
"t_was_cancelled()"
"t_write_fifo(info,fifo)
t_write_unix(info,sock)"
"tel2sip(")"
"to_gw()"
"uac_auth()"
"uac_replace_from(display,uri)"

"uac_replace_from(uri)"
"uac_restore_from()"
"unforce_rtp_proxy()"
"uri_param(param)"
"uri_param(param,value)"
"use_media_proxy"()
"www_authorize(realm, table)"
"www_challenge(realm, qop)"
"xdbg(format)"
"xlog( [level,] format)"
Parmetros de openSER:
"acc_db_table" (string)
"acc_domain_column" (string)
"acc_dst_leg_column" (string)
"acc_from_uri_column" (string)
"acc_fromtag_column" (string)
"acc_function" (string)
"acc_i_uri_column" (string)
"acc_o_uri_column" (string)
"acc_sip_callid_column" (string)
"acc_sip_from_column" (string)
"acc_sip_method_column" (string)
"acc_sip_status_column" (string)
"acc_sip_to_column" (string)
"acc_src_leg_column" (string)
"acc_time_column" (string)
"acc_to_uri_column" (string)
"acc_totag_column" (string)
"acc_user_column" (string)
"accept" (string)
"accept_encoding" (string)
"accept_filter" (string)
"accept_language" (string)
"add_username" (integer)
"alias_domain_column" (str)
"alias_user_column" (str)
"aliases" (string)
"allow_suffix" (string)
"append_branches" (integer)
"append_fromtag" (integer)
"append_hf(hf)" append_hf(hf)"
"append_time()" append_time()"
"append_to_reply(txt)" append_to_reply(txt)"
"append_urihf(prefix, suffix)"
"attribute_column" (string)
"avp_aliases" (string)
"avp_table" (string)
"avp_url" (string)
"branch_flag_mask" (string)
"buf_size" (integer)
"cache_time" (integer)
"calculate_ha1" (integer)

- 114 -

"callee_service_type" (integer)
"caller_service_type" (integer)
"callid_column" (string)
"case_sensitive" (int)
"case_sensitive" (integer)
"check_all_branches" (integer)
"check_time" (int)
"check_time" (integer)
"clean_period" (int)
"clean_time" (integer)
"contact_avp" (string)
"contact_column" (string)
"contact_flds_separator" (string)
"cpl_db" (string)
"cpl_dtd_file" (string)
"cpl_table" (string)
"credential" (string)
"cseq_column" (string)
"db_extra" (string)
"db_flag" (integer)
"db_localtime" (int)
"db_missed_flag" (integer)
"db_mode" (integer)
"db_mode" (integer)
"db_mode" (integer)
"db_scheme" (string)
"db_table" (string)
"db_table" (string)
"db_table_acc" (string)
"db_table_missed_calls" (string)
"db_url" (str)
"db_url" (string)
"default_allow_file" (string)
"default_deny_file" (string)
"default_expires" (integer)
"default_expires" (integer)
"default_filter" (string)
"default_net" (string)
"default_q" (integer)
"delay_time" (integer)
"delete_timer" (integer)
"deny_filter" (string)
"deny_suffix" (string)
"desc_time_order" (integer)
"desc_time_order" (integer)
"diameter_client_host" (string)
"diameter_client_host" (string)
"diameter_client_port" (int)
"diameter_client_port" (int)
"diameter_flag" (integer)
"diameter_missed_flag" (integer)
"diamter_extra" (string)
"domain_col" (string)

"domain_column" (str)
"domain_column" (string)
"domain_column" (string)
"domain_column" (string)
"domain_column" (string)
"domain_column" (string)
"domain_column" (string)
"domain_prefix" (str)
"domain_prefix" (string)
"domain_str" (string)
"domain_suffix" (string)
"domain_table" (string)
"dst_leg_avp_id" (integer)
"early_media" (integer)
"enable_double_rr" (integer)
"enable_full_lr" (integer)
"exec_timer" (UNUSED, placeholder only)
(integer)
"expire_time" (int)
"expires_column" (string)
"failed_transaction_flag" (integer)
"flags" (int)
ts "flags_column" (string)
"flush" (integer)
"force_color" (integer)
"force_dst" (int)
"force_socket" (string)
"fr_inv_timer" (integer)
"fr_inv_timer" (integer)
"fr_inv_timer_avp" (string)
"fr_inv_timer_avp" (string)
"fr_inv_timer_next" (integer)
"fr_timer" (integer)
"fr_timer_avp" (string)
"from_col" (string)
"from_restore_mode" (string)
"from_uri_column" (string)
"group_column" (string)
"grp_id_column" (string)
"gw_name_column" (string)
"gw_table" (string)
"gw_uri_avp" (string)
"hsize_2pow" (integer)
"initial" (string)
"ip_addr_column" (string)
"is_method(name)" is_method(name)"
"is_present_hf(hf_name)"
"jaddress" (string)
"jdomain" (string)
"jport" (integer)
"lcr_table" (string)
"links" (string)
"list_file" (string)

- 115 -

"load_credentials" (string)
"log_dir" (string)
"log_extra" (string)
"log_flag" (integer)
"log_fmt" (string)
"log_level" (integer)
"log_missed_flag" (integer)
"lookup_append_branches" (int)
"lookup_domain" (string)
"max_contacts" (integer)
"max_expires" (integer)
"max_jobs" (integer)
"max_limit" (integer)
"max_sms_parts" (integer)
"mediaproxy_socket" (string)
"method_column" (string)
"min_expires" (integer)
"modems" (string)
"multi_leg_enabled" (integer)
"nat_flag" (int)
"nat_flag" (integer)
"natping_interval" (integer)
"natping_interval" (integer)
"networks" (string)
"new_uri_column" (string)
"noisy_ctimer" (integer)
"nonce_expire" (integer)
"password_column" (string)
"password_column_2" (string)
"ping_nated_only" (integer)
"port_column" (string)
"prefix" (string)
"prefix_column" (string)
"prefix_column" (string)
"priority_column" (string)
"proto_col" (string)
"proxy" (string)
"proxy_recurse" (int)
"proxy_route" (int)
"q_column" (string)
"radius_config" (string)
"radius_config" (string)
"radius_config" (string)
"radius_extra" (string)
"radius_flag" (integer)
"radius_missed_flag" (integer)
"realm_prefix" (string)
"realm_prefix" (string)
"realm_prefix" (string)
"received_avp" (integer)
"received_avp" (integer)
"received_column" (string)
"received_param" (integer)

"registrar" (string)
"registrar" (string)
"remove_hf(hname)" remove_hf(hname)"
"remove_latency" (integer)
"replace(""re, txt)"
"replace_all(re, txt)"
"report_ack" (integer)
"report_cancels" (integer)
"reqs_density_per_unit" (integer)
"restart_fr_on_each_reply" (integer)
"retr_timer1p1" (integer)
"retr_timer1p2" (integer)
"retr_timer1p3" (integer)
"retr_timer2" (integer)
"retry_after" (integer)
"rpid_avp" (string)
"rpid_avp" (string)
"rpid_prefix" (string)
"rpid_suffix" (string)
"rr_store_param" (string)
"rtp_asymmetrics" (string)
"rtpproxy_disable" (integer)
"rtpproxy_disable_tout" (integer)
"rtpproxy_retr" (integer)
"rtpproxy_sock" (string)
"rtpproxy_tout" (integer)
"ruri_matching" (integer)
"ruri_user_avp" (string)
"sampling_time_unit" (integer)
"sd_domain_column" (string)
"sd_user_column" (string)
"search(""re)" search(""re)"
"search_append(re, txt)"
"secret" (string)
"service_type" (integer)
"service_type" (integer)
"setvars" (integer)
"sip_asymmetrics" (string)
"sip_natping_flag" (integer)
"sipping_from" (string)
"sipping_method" (string)
"sleep_time" (integer)
"sms_report_type" (integer)
"sock_flag" (integer)
"sock_hdr_name" (string)
"socket_column" (string)
"source_col" (string)
"src_leg_avp_id" (integer)
"subscriber_domain_column" (string)
"subscriber_table" (string)
"subscriber_user_column" (string)
"subst(""'/re/repl/flags')" subst(""'/re/repl/flags')"

- 116 -

"subst_uri('/re/repl/flags')"
subst_uri('/re/repl/flags')"
"subst_user('/re/repl/flags')"
subst_user('/re/repl/flags')"
"suffix" (string)
"support" (string)
"sync_time" (integer)
"table" (string)
"tel_uri_params" (string)
"timer_avp" (string)
"timer_interval" (integer)
"transport_column" (string)
"trusted_table" (string)
"tw_append" (string)
"type_column" (string)
"unix_tx_timeout" (integer)
"uri_domain_column" (string)
"uri_scheme_column" (string)
"uri_table" (string)
"uri_uriuser_column" (string)
"uri_user_column" (string)
"use_branch_flags" (integer)
"use_contact" (int)
"use_contact" (integer)
"use_domain" (int)
"use_domain" (int)
"use_domain" (int)
"use_domain" (integer)
"use_domain" (integer)
"use_domain" (integer)
"use_domain" (integer)
"use_domain" (integer)
"use_domain" (integer)
"use_domain" (integer)
"use_uri_table" (integer)
"user_agent_column" (string)
"user_column" (str)
"user_column" (string)
"user_column" (string)
"user_column" (string)
"user_column" (string)
"username_column" (string)
"uuid_column" (string)
"value_column" (string)
"via1_matching" (integer)
"workers" (integer)
"wt_timer" (integer)

5.5.2.

Ubicacin

Todas las funciones existentes en la versin usada se encuentran explicadas dentro de cada
mdulo,

adems

se

puede

ver

una

lista

detallada

de

las

mismas

en

la

pgina:

http://www.openser.org/dokuwiki/doku.php/modules:1.0.x:index-functions.

5.6.

Bsqueda de nmeros SIP


Tpicamente, cuando se desarrollan reglas de enrutamiento, dependiendo del parmetro en

base al cual se est haciendo el enrutamiento, es necesario seguir una sintaxis especfica. Como es el
caso del enrutamiento por URI, FROM, TO.
Las entidades SIP identifican a los usuarios con las SIP URI, definidas en el RFC 2396. Una SIP
URI consta de un usuario y un dominio, delimitado por una @.
Por ejemplo si se desea hacer un enrutamiento por URI en funcin de los primeros dos dgitos
del telfono, la sintaxis es la siguiente:

uri=~"^sip:dgitos",
por ejemplo:
if (uri=~"^sip:04"){
regla a ejecutar;
}
Entonces, para ese caso, todos los nmeros 04xx-xxx-xxxx, sern enrutados en funcin de la
regla desarrollada.
Ahora, pueden presentarse situaciones en las cuales la regla de enrutamiento sea en funcin del
ltimo digito del nmero, como es el caso del enrutamiento por reparticin de carga, en este caso la
sintaxis a seguir es la siguiente:

uri=~"^sip[0-9]{cantidad_de_nmeros_a_esperar}dgito_final",
en este caso es necesario especificar la cantidad de nmeros que se espera recibir antes del digito
deseado.
Por ejemplo:
Aqu se especifica el dgito en que debe
terminar el nmero. En este caso, 1.
(uri=~"^sip:[0-9]{10}1"),
Los primeros diez dgitos pueden ser
cualquier nmero [0-9]
Continuando el ejemplo anterior si se desea enrutar todos los telfonos cuyo ltimo dgito sea
impar hacia un dominio en especfico, la sintaxis a seguir deberia ser:

- 118 -

if ((uri=~"^sip:[0-9]{10}1")||(uri=~"^sip:[0-9]{10}3")||(uri=~"^sip:[0-9]{10}5")||(uri=~"^sip:[09]{10}7")||(uri=~"^sip:[0-9]{10}9")){
prefix("7");
xlog("REPARTICION DE CARGA");
prefix2domain("2");
};
6. Ejecucin del servicio

6.1.

Reiniciar el servicio
Se necesita reiniciar el servicio cuando se ha hecho alguna modificacin dentro del archivo de

configuracin ya sea a travs de la consola o va Web, para hacer esto, se ejecuta desde la consola el
siguiente comando:

service ./openser restart,


Sin importar en qu directorio se est ubicado. Luego para chequear que el servicio se ha iniciado
correctamente (esto no quiere decir necesariamente que el programa hace lo que se quiere, sino que
esta libre de errores de sintaxis) se escribe:

service ./openser status

6.2.

Errores del archivo openser.cfg


Si cuando se reinicia el servicio, openser no se inicia y cuando se pide el status resulta que el

mismo se encuentra detenido, quiere decir que hay algn error en el archivo de configuracin. Para
ver que clase de error es el que impide que el servicio inicie correctamente debe ubicarse en
/var/log:

cd /var/log
Una vez ubicado en el directorio especificado, se ejecuta el comando:

tail f messages
Este comando permite seguir en tiempo real, los errores y mensajes (logs y xlogs que se
encuentran dentro del archivo de configuracin que sirven de informacin o de punto de referencia
para depurar errores) que ocurren en el archivo de configuracin.

- 119 Colocamos
tail f messages

6.3.

Para observar la informacin


debemos ubicarnos en la
carpeta:

Depuracin de errores
Para depurar el archivo de configuracin es necesario saber la lnea donde est ocurriendo el

error. Si es de sintaxis, se debe corregir el mismo y volver a reiniciar el servicio para ver si funciona
correctamente. Si es de linealidad (algn parntesis o punto y coma), el error puede estar en la lnea
correspondiente o antes de ella, para ello es recomendable mantener el archivo con cierto orden para
poder ubicar el error ms fcil. Por ultimo, si el error es que no se est ejecutando alguna lnea o
algn trozo de cdigo, es recomendable escribir lneas de mensajes para depurar el archivo, as que si
stas no aparecen en el log de mensajes quiere decir que no esta ejecutando ese trozo de cdigo y ah
se puede ir viendo, poco a poco, donde est el error.

6.4.

Trazas de las llamadas realizadas sobre openSER


Para ver el barrido de los mensajes SIP de una llamada o de los mensajes de registro de

nmeros se puede usar la herramienta NGREP, para acceder a ella se coloca en la consola:

ngrep d interfaz_de_red port puerto


Donde interfaz_de_red es la interfaz que se quiere escuchar, eth0 o eth1 o simplemente any
y el puerto es, como dice su nombre, el puerto por el cual se quiere escuchar.
Con esta herramienta tambin se pueden resolver problemas o errores pero no de cdigo sino
de enrutamiento ya que se pueden diferenciar los mensajes que se mandan entre servidores para
poder hacer que una llamada sea exitosa. De esta forma se puede detectar exactamente en qu punto
est ocurriendo la falla.

- 120 -

7. Conexin a la Base de Datos


El OpenSER, para realizar sus llamadas, se conecta con la base de datos Mysql para poder
revisar dentro de una base de ciertas tablas algunos datos o atributos que ayudan con el enrutamiento
de la misma o sencillamente sirven de referencia. Adems, el OpenSER tiene la capacidad de
almacenar datos referentes a llamadas o usuarios para el mejor manejo de las llamadas.

7.1.

Estructura de las tablas


Accounting (ACC): esta tabla es usada por el mdulo ACC para reportar las llamadas exitosas
realizadas.

Active sessions (active_sessions): esta tabla es usada por SERWeb. No es usada por OpenSER.

Administrative Privileges (admin_privileges): lista de control de acceso multi-dominio SERWeb


(ACL). No es usada por OpenSER.

Aliases (aliases): similar a la tabla location.

Database Aliases (dbaliases): esta tabla es usada por el mdulo alias_db como alternativa para
los alias del usuario va userloc.

Domains (domain): es usada por el mdulo domain para determinar si el host de un URI es
local o no.

Groups (grp): esta tabla es usada por el mdulo group como medio para chequear la
membresa a un grupo. Es usado principalmente para el Control de Acceso a listas (ACLs).

Gateways (gw): contiene definiciones del gateway de enrutamiento.

Gateway Groups (gw_grp): esta tabla es usada para propsitos administrativos, con el fin de
asociar nombres con la identificacin de grupo del gateway.

Least Cost Routing (lcr): dicha tabla es usada por las reglas LCR (Least Cost Routing).

- 121

User Locations (location): contiene informacin perteneciente al usuario registrado en un


momento dado.

Missed Calls (missed_calls): esta tabla es similar a la acc, pero es usada para reportar
llamadas perdidas.

Pending (pending): usada por SERWeb. Peticiones de suscripcin no confirmadas.

Phone Book (phonebook): usada por la interfaz del usuario. Contiene la libreta de telfonos de
los usuarios.

Server Monitoring (Server_monitoring): No es usada por OpenSER.

Server Monitoring (Server_monitoring_agg): No es usada por OpenSER.

Offline Message Storage (silo): esta tabla es usada por el mdulo msilo para proveer el
almacenamiento de mensajes offline.

Subscriber (subscriber): usada para proporcionar informacin de autentificacin.

Trusted (trusted): usada por el mdulo permissions para determinar si una llamada presenta
los permisos apropiados para ser establecida.

URI (uri): esta tabla es usada por el mdulo uri_db para implementar algunos chequeos
concernientes al URI del mensaje SIP.

User Preferentes (usr_preferentes): es usada por el mdulo AVP para implementar Attribute
Value Pairs AVPs

Table Versions (version): esta tabla contiene los nombres de las tablas de OpenSER, y nmero
de versin. Es usada por algunas rutinas de OpenSER para asegurar que la versin correcta de
una tabla en particular est siendo usada.

8. Errores Frecuentes

No se est ejecutando un trozo del archivo Qu hago? Revisa el archivo de configuracin y


verifica que el trozo que quieres que se ejecute no este comentado o dentro de algn
comentario mas grande, luego reinicia el servicio. Si no es eso revisa, con logs, que la
ejecucin est pasando por ese trozo de cdigo.

NOTA: la funcin de xlog([level,] format) slo puede ser usada por bloques de ruta de peticin, de
falla, de respuesta o de salto.

Da el archivo de configuracin Qu hago? En el directorio etc/openser/backup se encuentra


el archivo openser_original.cfg. ste es el archivo base de openser. En caso de no poder
recuperar el archivo de configuracin con el que se estaba trabajando, puede dirigirse a esta
carpeta y mediante el comando:

cp openser_original.cfg /etc/openser/openser.cfg

- 122 -

Se sobrescribe el contenido del openser.cfg con el de ese archivo y se puede volver a


comenzar todo. Para no tener que empezar desde cero se recomienda guardar un archivo
backup de su configuracin cada cierto tiempo. Es recomendable, cuando se hayan logrado
configurar nuevas funcionalidades en el archivo de openser, hacer respaldos del mismo.

9. F.A.Q.

Cmo acceder remotamente al servidor donde se encuentra instalado OpenSER? Putty es un


cliente software libre de SSH con el que se puede conectar a travs de un servidor remoto y
realizar algunas tareas a travs del entorno Shell que es una interfaz que permite interactuar a
travs de comandos con el sistema operativo, para que ste a su vez nos permita interactuar
con la mquina.

Cmo se si el OpenSER reinici correctamente? Al ejecutar el comando: service ./openser

restart en la consola comienzan a salir mensajes donde se indica cul es el status:

Si el mensaje de Starting openser es como el mostrado anteriormente, quiere decir


que el servicio se reinicio perfectamente, de no ser as quiere decir que hay un error en el
archivo de configuracin.
Otra forma de verificar el inicio exitoso de OpenSER se logra escribiendo en la consola
el comando ps ax ya que el mismo permite ver cules son los procesos que se encuentran
activos en ese instante, si openser se encuentra dentro de ellos, quiere decir que se inici
correctamente.

- 123

Cmo s si se carg un mdulo sin haber cargado su dependencia? si se carga un mdulo


que dependa de otro y ste no ha sido cargado, o fue cargado luego (esto se refiere a una
lnea posterior), se mostrar un mensaje de error similar al que se muestra a continuacin:

Slo puedo trabajar con los mensajes de INVITE? No, se puede trabajar con cualquier
mensaje SIP, lo que se tiene que hacer es configurar el archivo de configuracin para que de
la misma manera que lee los mensajes INVITE pueda hacer algo referente a los otros
mensajes.

Qu pasa si quiero modificar un parmetro o usar una funcin pero el mdulo al cual
pertenece no est cargado? si se hace uso de una funcin o parmetro y el mdulo no fue
cargado en la seccin de mdulos se mostrar el siguiente error (en el ejemplo que se
muestra, se est haciendo uso de parmetros contenidos en el mdulo TM):
Mdulo TM no
encontrado

Lnea de error
No se puede fijar el
parmetro del mdulo

Cmo compilo un mdulo de nuevo? En caso de que se desee volver a compilar algn
mdulo, debe borrarse de OpenSER el archivo con extensin .so correspondiente al mismo
(rm mdulo.so), luego debe hacerse make clean y por ultimo make.

Cmo busco una lnea que tiene un error dentro del openser.cfg? Cuando OpenSER reporta
errores, lo hace indicando la lnea del error y un pequeo comentario referente al mismo. Una
forma til de ubicar esa lnea en la consola es:

:nmero_de_la_lnea [ENTER]

- 124

Cmo se que hay errores en el script? Cuando se reinicia el servicio y da alguna falla en la
pantalla se muestra:

Se puede observar que se indica que ocurri una falla iniciando el servicio openser, y
se especifica que existe un error.
Para observar en detalle a qu se debe el error y dnde se encuentra el mismo,
deber ubicarse en el directorio: /var/log, y ejecutare el comando:

tail f messages
Una vez corregido el error, se reinicia el servicio de nuevo, si los errores fueron
solventados con xito, se observar por pantalla:

Cmo s que tipo de error esta ocurriendo? Primero debe dirigirse a /var/log y luego escribir
en consola: tail f messages, para ver el log de mensajes del OpenSER. En este log se
muestra cualquier mensaje escrito desde el archivo de configuracin y cualquier error que el
mismo tenga. Luego todo depende del comentario que acompae al error, por ejemplo, si
faltan las o se coloca un nombre de parmetro errado puede salir:
Lnea donde se
encuentra el error

Cmo hago si quiero que el OpenSER no ejecute una regla o alguna lnea de cdigo? Para
hacer que el OpenSER no ejecute algn comando o un trozo de cdigo, basta con comentar la
lnea o el trozo de cdigo y as al reiniciar el servicio no se ejecutar la parte comentada.
Para comentar una lnea, comience la misma con el carcter #. Para comentar un
trozo de cdigo coloque al inicio del mismo los caracteres: /* y al final */. De esta forma, el
cdigo que se encuentra entre los caracteres: /*

*/ no se ejecutar.

- 125

No se est ejecutando un trozo del archivo Qu hago? Revisa el archivo de configuracin y


verifica que el trozo que quieres que se ejecute no este comentado o dentro de algn
comentario mas grande, luego reinicia el servicio. Si no es eso revisa, con logs, que la
ejecucin est pasando por ese trozo de cdigo.
NOTA: la funcin de xlog([level,] format) slo puede ser usada por bloques de ruta de
peticin, de falla, de respuesta o de salto.

Qu es un log? Un log es un mensaje que se imprime por pantalla en /var/log, con estos logs
se puede ver que parte del script se est ejecutando en ese momento. Para incluir un log en el
archivo slo se agrega una lnea como la siguiente:

xlog(nivel, TU COMENTARIO VA AQUI)


xlog([level,] format): La funcin xlog imprime un mensaje usando la funcin LOG.

El

significado de los parmetros es como se muestra.

Level: el nivel que ser usado en la funcin log. Puede ser:


o

L_ALERT (-3): este nivel ser usado si el error requiere una accin inmediata.

L_CRIT (-2): el nivel debe ser usado si el error involucra una situacin crtica.

L_ERR (-1): este nivel debe ser usado para reportar errores durante el procesamiento
de data, pero que no cause un mal funcionamiento del sistema.

L_WARN (1): este nivel debe usarse para escribir mensajes de alerta.

L_NOTICE (2): este nivel debe usarse para reportar situaciones no usuales.

L_INFO (3): este nivel se usa para escribir mensajes de informacin.

L_DBG (4): debe usarse para escribir mensajes para la depuracin de errores.

El valor por defecto de este parmetro es L_ERR.

Format: es la cadena de caracteres que ser impresa.

Nota: esta funcin puede ser usada por: REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE,
BRANCH_ROUTE.

Qu

pasa

si

dao

el

archivo

de

configuracin

del

openser?

En

el

directorio

etc/openser/backup se encuentra el archivo openser_original.cfg. ste es el archivo base de


openser. En caso de no poder recuperar el archivo de configuracin con el que se estaba
trabajando, puede dirigirse a esta carpeta y mediante el comando:

cp openser_original.cfg /etc/openser/openser.cfg

- 126 -

Se sobrescribe el contenido del openser.cfg con el de ese archivo y se puede volver a


comenzar todo. Para no tener que empezar desde cero se recomienda guardar un archivo
backup de su configuracin cada cierto tiempo. Es recomendable, cuando se hayan logrado
configurar nuevas funcionalidades en el archivo de openser, hacer respaldos del mismo.

Qu es y cmo funciona el prefix2domain? Es una funcin del mdulo PDT la cual revisa
dentro de la base de datos si el prefijo que existe dentro de cualquier nmero SIP est dentro
de la lista guardada y de ser as reenruta la llamada al dominio asignado a ese prefijo.

Cmo hago para ejecutar un script automticamente? En la aplicacin desarrollada, resulta


muy til la ejecucin de scripts de forma automtica, bien sea por la hora a la cual se quiere
que se ejecute, o debido a que el script es utilizado para realizar actualizaciones en alguna
base de datos. Para esto puede usarse el comando cron.
Cron es un administrador regular de procesos en segundo plano (demonios) que
ejecuta programas a intervalos regulares de tiempo. Los procesos que deben ejecutarse y la
hora para hacerlo, se ejecutan en el archivo crontab.
Los

usuarios

habilitados

para

crear

su

archivo

crontab

se

especifican

en

/etc/cron.allow, as mismo, los que no tienen permitido el acceso se especifican en


/etc/cron.deny.
Para agregar, editar o eliminar procesos, se debe ejecutar la orden crontab e, de
esta forma se cargar el crontab correspondiente al usuario. La sintaxis que debe seguirse es
la siguiente:

Si el comando a ejecutar es un archivo, este deber tener todos los permisos, para
ello, dirjase a travs de la consola a la carpeta donde se encuentra ubicado el mismo, y
ejecute el comando:

chmod 777 nombre_del_archivo

- 127 -

Deber verificar que el demonio crond est iniciado, para ello ejecute en la consola el
comando:

service ./crond status


En caso de estar detenido, ejecute la orden:

service ./crond start


10. Apndice 1: Instalacin de programas

10.1.

Instalacin Fedora Core4

De acuerdo con los requerimientos de programacin, se recomienda instalar Fedora como se


muestra a continuacin:
1. Welcome to Fedora Core: OK
2. Language Selection: English
3. Keyboard Selection: Es (Espaol)
4. System to upgrade: Reinstall System
5. Installation Type: What type of system would you like to install: Custom
6. Disk partitioning setup: Autopartition
7. Automatic Partitioning: Remove all partitions on this system
8. Warning: You have chosen to remove all partitions (ALL DATA) on the following drives: OK
9. Which boot loader would you like to use?: Use GRUB Boot Loader.
10. Boot loader Password: ****** (garabato)
11. Boot Loader Configuration:
Default Boot Label
*
Fedora Core

Device
/dev/VolGroup00/logVol00

12. Where do you want to install Boot Loader: /dev/ida/c0d0


13. Network Configuraton for Eth0: [*] Activate on boot
14. IP Address: 161.196.58.48
Netmask: 255.255.255.0
15. Network configuration for Eth1: [*] Configure using DHCP
16. Gateway: ________________ (161.196.58.1)
Primary DNS: ____________ (161.196.64.2)
Secondary DNS: __________ (161.196.64.3)
17. Hosname Configuration: [*] Manually: admin

- 128 -

18. Firewall: Disable


19. Security Enhanced Linux: Disable
20. Time Zone Selection: Amrica/La_Paz
21. Root Password: garabato
22. Package Group Selection :
[ ] X Window System
[ ] GNOME Desktop Enviroment
[ ] KDE (K Desktop Enviroment)
[ ] Editors
[ ] Engineering and Scientific
[ ] Graphical Internet
[*] Text-based Internet
[ ] Office/Productivity
[ ] Sound and video
[ ] Authoring and publishing
[ ] Graphics
[ ] Games and Etertainment
[*] Server Configuration Tools
[*] Web Server
[ ] Mail Server
[ ] Windows File Server
[ ] DNS Name Server
[*] FTP Server
[ ] PostgreSQL Database
[*] MySQL Database
[ ] News Server
[ ] Network Servers
[ ] Legacy Network Server
[*] Development Tools
[*] X Software Devlopment
[ ] GNOME Software Development
[ ] KDE Software Development
[ ] Legacy Software Development
[ ] Java Development
[ ] Eclipse
[ ] Language Support
[*] Administration Tools
[*] System Tools
[ ] Printing Support
[ ] Everything
Nota: si se escogen los paquetes seleccionados, slo se podr trabajar en modo texto.
23. Installation to begin: OK
o

Required Install Media: Continue

- 129 -

10.2.

Instalacin de OpenSER por paquetes:

1. Descargar del siguiente link: http://www.openser.org/pub/openser/1.0.0/packages/rhel-3.0/


los siguientes archivos y se colocan en la ruta /home/openser:
openser-1.0.0-rhel3.0.i386.rpm
openser-cpl-1.0.0-rhel3.0.i386.rpm
openser-mysql-1.0.0-rhel3.0.i386.rpm
Openser-1.0.1-tls_src.tar.gz

2.Iniciar mysql. Para ello, debe escribir el siguiente comando en la consola:


mysql u root p

3. Posteriormente, deben instalarse los paquetes:


yum install openser-1.0.0-rhel3.0.i386.rpm
rpm Uvh openser-cpl-1.0.0-rhel3.0.i386.rpm
rpm Uvh openser-mysql-1.0.0-rhel3.0.i386.rpm
Nota: esto debe hacerse desde la ruta /home/openser
4. Crear la base de datos y tablas de openser
Dirigirse a la ruta /usr/bin y ejecutar el comando: ./openser_mysql.sh create
Para comprobar que la base de datos y tablas de openser se crearon correctamente, ejecutar los
siguientes comandos en la consola:
mysql u root
Show databases;
Al ejecutar dicho comando, debera observar:

Base de datos de openser

Si se ejecutan los comandos:


use openser;
show tables;

Se observar una lista con todas las tablas contenidas en la base de datos de openser.

- 130 -

Tablas contenidas en la Base de datos de openser

5. Para tener acceso a ftp, dirigirse a la ruta: /etc/vsftpd, en ella se encuentra un archivo
llamado user_list, debera acceder al l y eliminar al usuario root, de esta forma se le est permitiendo
el acceso al mismo a ftp.
Para que el cambio realizado en el archivo tenga efecto, es necesario reiniciar el servicio,
ejecutando para ello el comando: service ./vsftp restart

6. Instalacin del conector php-mysql. Esto es necesario para que las pginas webs
desarrolladas puedan comunicarse sin problemas con la base de datos de openser.
Para ello, debe ejecutarse el comando yum install php-mysql.

10.3.

Instalacin OpenSER por cdigo fuente

1. Descargar openser-mysql-module_1.1.0-0_i386.deb del siguiente link:


http://www.openser.org/pub/openser/1.1.0/packages/deb-stable/openser-mysql-module_1.1.00_i386.deb

- 131 -

2. Hacer la instalacin de openser-mysql-module_1.1.0-0_i386.deb en /home de la siguiente


forma: rpm Uvh openser-mysql-module_1.1.0-0_i386.deb

3. Descargar el paquete (cdigo fuente): openser-1.1.0-notls_src.tar.gz de la pgina web:


http://www.openser.org/pub/openser/latest/src/openser-1.1.0-notls_src.tar.gz

4. Descomprimir el archivo haciendo: tar zxvf openser-1.1.0-notls_src.tar.gz


En la carpeta donde descargamos el paquete openser-1.1.0-notls_src hacemos:
make prefix=/
make openser prefix=/
make modules prefix=/
Se hace la instalacin: make prefix=/ install
Los archivos binarios y ejecutables fueron instalados en: /sbin
-openser
-openserctl
-openserunix

En /home/openser-1.1.0-notls/scripts se encuentran los archivos :


-gen_ha1
-mysql.sh
Para crear la base de datos de MySQL se tiene que utilizar el script mysql.sh
Hacemos: ./mysql.sh create

Para chequear que todo est correcto, introducir: openser V


En dicho caso, se debe observar un mensaje como el que se muestra a continuacin:
Openser -V

Mensaje devuelto: Incluye versin instalada


de OpenSER, fecha de instalacin

- 132 -

10.4.

Instalacin Putty
Putty no necesita instalarse, slo lo ejecutas y entras

Uso de Putty
Al iniciar el programa se muestra la siguiente pantalla:

Se puede observar que se indica el nombre del host (Host Name), puerto (port) y las
sesiones almacenadas (saved sessions).

2. Crear sesin
Para esto, se debe ingresar el nombre del host, protocolo y un nombre para guardar la
configuracin.
En nuestro caso, el nombre del host corresponde a la direccin ip del servidor donde se
encuentra instalado OpenSER (161.196.58.47), Openser es el nombre que se le asign a la sesin, el
puerto es el 22, y se debe ecoger como protocolo SSH.

- 133 -

Iniciar Sesin
La primera vez que se acceda a un servidor, el programa nos pedir nuestro consentimiento
para poder acceder al mismo.

Por ltimo, se debe ingresar el login y password, con lo cual se habr iniciado sesin.

- 134 -

10.5.

Instalacin ngrep

Se deben realizar los siguientes pasos estando registrado como root. Para una mayor seguridad,
se pueden realizar la mayora de estos pasos como un usuario ordinario, pero un paso requiere estar
registrado como root.
1.- Dirigirse a http://ngrep.sourceforge.net para descargar el paquete. Descargar el archivo:
ngrep-1.44-1.tar.bz2. Se puede salvar el archivo en el directorio /home.
2.- Dirigirse a la consola y asegurarse que el archivo descargado se encuentra en el directorio
actual.
3.- Descomprimir el archivo con el comando
bzip2 dc ngrep-1.44-1.tar.bz2 | tar xvf Se crear entonces un subdirectorio llamado: ngrep-1.44-1.
4.- ./configure [ENTER]
5.- make
6.- para el paso siguiente se debe estar registrado como root, si no se encuentra registrado
como root, colocar el comando su en la consola y responder al password preguntado (este password
se refiere al del usuario root).
7.- make install
El programa ngrep ser ahora instalado en el directorio /home.
8.- Para el paso siguiente no es necesario estar registrado como root. Colocar exit para volver a
la sesin ordinaria del usuario.
9.- Ahora est instalado el programa ngrep.

10.6.

Creacin de una conexin VPN

- 135 -

1. Desde el botn Inicio, dirigirse al men Configuracin, hacer click Panel de Control y luego en
Conexiones de red y Acceso Telefnico. Despus deber hacer doble clic en el cono Realizar
conexin nueva.

2. Luego de que se ha iniciado el Asistente para Conexin de Red, hacer clic en el botn
siguiente.

3. Se observar una una pantalla como la mostrada a continuacin. En ella se deber elegir la
opcin Conectar a una red privada a travs de Internet, y hacer clic en Siguiente.

4. En la siguiente pantalla, seleccionar la opcin No usar la conexin inicial, y hacer clic en


siguiente.

- 136 -

5. Posteriormente, deber especificarse la direccin IP del equipo al cual se est conectando. En


nuestro caso: 200.44.0.200

6. Por ltimo deber especificarse el nombre con el cual se desea identificar a la conexin, luego
hacer clic en el botn Finalizar.

7. Cuando se desee conectar a la VPN, aparecer una pantalla como la mostrada. Deber
introducir el nombre de usuario y contrasea.

- 137 -

10.7.

Instalacin de MySQL Front

1. Se descarg de la web la versin de prueba de MySQL Front.


2. Al iniciar el proceso de instalacin, se observar una pantalla como la que se muestra. Deber
hacer clic en la opcin: Siguiente.

3. Aceptar los trminos de licencia, y hacer clic en la opcin: Siguiente:

- 138 -

4. Especificar la ruta donde se instalar el programa

5. Seleccionar la carpeta de men de inicio, es decir, donde se colocan los conos de acceso
directo al programa.

6. Seleccionar las tareas adicionales a ejecutar, y hacer clic en Siguiente:

- 139 -

7. Aparecer una pantalla como la que se muestra a continuacin. En este instante, el programa
ya se encuentra listo para instalarse. Hacer clic en el botn instalacin.

Con esto, puede darse por finalizado el proceso de instalacin. Ahora ser necesario realizar la
configuracin de la sesin.

10.7.1.

Configuracin de MySQL Front

1. Al abrir el programa, dirigirse al men Files, y hacer clic en la opcin Connection.


Aparecer una ventana de dilogo como la que se muestra a continuacin. La misma permitir
crear la sesin para manejar la base de datos del servidor.

2. Para crear una sesin debe hacerse clic en la opcin New, y se mostrar una pantalla como
la siguiente:

- 140 -

En la pestaa General debe especificarse el nombre de la sesin.


En la pestaa Conection debe colocarse la direccin IP del servidor. En nuestro caso: 161.196.58.48.
En la pestaa Login se debe colocar el nombre de usuario y contrasea y la correspondiente base de
datos con la cual se quiere establecer la conexin.

10.8.

Instalacin de X-lite

1. Descargar la versin 3 de X-lite del siguiente link:


http://www.xten.com/index.php?menu=download
2. Ejecutar el archivo haciendo doble clic. Al hacer esto, aparecer una pantalla como la que se
muestra a continuacin:

3. Posteriormente se presentar una ventana de verificacin. Seleccionar la opcin I accept the


agreement y hacer clic en el botn Next.

- 141 -

4. Se debe seleccionar cul ser el destino donde se instalar X-Lite, y luego hacer clic en el
botn Next.

5. Se pueden seleccionar opciones adicionales segn se desee.

- 142 -

6. Luego de esto se da por iniciado el proceso de instalacin

7. Por ltimo aparecer una ventana como la mostrada. En este momento habr finalizado el
proceso de instalacin de X-Lite. Debe chequear que la opcin Launch X-Lite se encuentre
seleccionada, ya que de esta forma se cargar automticamente la aplicacin al presionar el
boton Finish. Posteriormente se prosigue con la configuracin.

Configuracin X-Lite
1. Luego de la instalacin de X-Lite aparecer una pantalla como la siguiente, en este momento
se puede configurar el Softphone.

- 143 -

2. Al hacer clic en la opcin Sip Account Settings, se mostrar una pantalla como la siguiente:

Se debe marcar la opcin enabled y hacer clic en el botn add. De esta forma, se est
agregando una cuenta. Al hacer esto aparecer una ventana donde se debern modificar un grupo de
parmetros.

Display Name: ac debe colocar el nombre completo


User name: debe ingresar el nmero de telfono que tien asignado.
Password: ingrese su contrasea
Authorization user name: nombre que aparecer cuando se realiza la llamada.
Domain: dominio que se est usando

- 144 -

10.9.

SIPp

SIPp es una herramienta de cdigo abierto para realizar pruebas de generacin de trfico
sobre el protocolo SIP. Incluye algunos escenarios de agentes de usuario SipStone15 (Agentes de
Usuario Cliente y Agentes de Usuario Servidor) y puede establecer y liberar mltiples llamadas con los
mtodos de INVITE y BYE. Presenta una muestra dinmica de las estadsticas de las pruebas activas
(ver figura X), descargas peridicas de las versiones con nuevas caractersticas, TCP y UDP sobre
multiples sockets con retransmisin supervisada y ajuste dinmico de la tasa de llamadas.
Algunas de caractersticas presentadas por SIPp son el soporte de IPv6, TLS, autentificacin
SIP, escenarios condicionales, retransmisiones UDP, robustez ante errores, expresiones regulares Posix
para extraer y re-insertar cualquier campo en el protocolo, ejecutar acciones en funcin del comando
recibido, entre otras.
SIPp puede adems enviar trfico de media RTP a travs de RTP echo16 y RTP/pcap17. La
media puede ser audio o audio y video.
Mientras se optimiza el trfico, stress y el funcionamiento de la prueba, SIPp puede ser usado
para ejecutar una sola llamada y salir, dando como resultado un veredicto de aprobado o fallido.
Tambin puede ser usado para probar equipos SIP como SIP proxies, B2BUAs, servidores de
media SIP, SIP/x gateways, SIP PBX. Adems es muy til para emular miles de agentes de usuario
llamando a un sistema SIP a evaluar.

Escenario de SIPp

15

Es un benchmark para los SIP Proxy y Servidores de Redireccionamiento. El trmino benchmark se refiere a una tcnica
para medir la capacidad del manejo de peticiones SIP de un Servidor SIP o un grupo de ellos.
16
La caracterstica RTP echo permite a SIPp escuchar una o dos direcciones IP locales y el puerto para la media RTP.
17
La caracterstica PCAP Play hace uso de la librera PCAP para reenviar trazas de streams RTP hacia su destino.

- 145 -

10.9.1.

Versiones de SIPp

Como otros proyectos de cdigo abierto, existen dos versiones de SIPp:

la estable y la

inestable. La versin estable, como su nombre lo indica ha sido probada en detalle. Por ello se puede
estar seguro de que las caractersticas mencionadas funcionarn correctamente.
Los creadores de SIPp recomiendan trabajar con la versin estable para el uso diario si no se
necesita una caracterstica especfica que se encuentra solamente en la versin inestable.
Las nuevas caractersticas y arreglos se colocan en la pgina de SIPp tan pronto como stas se
encuentren disponibles.
Cada noche se hace una extraccin automtica y el cdigo fuente de dicha versin est
disponible.
Los creadores de SIPp recomiendan usar la versin inestable solamente en caso de que se
necesite un parche o una nueva caracterstica que no se encuentra disponible en la versin estable.

Pasos para la instalacin de SIPp


Para instalar SIPp se debe descargar el ejecutable sipp-1.1rc6.win32-setup.exe que se
encuentra en la pgina http://sourceforge.net/project/showfiles.php?group_id=104305 y correr el
mismo.

10.9.2.

Plataformas Disponibles

SIPp est disponible en la mayora de las plataformas UNIX: HPUX, Tru64, Linux (RedHat,
Debian, FreeBSD), Solaris/Sun/OS.

10.9.3.

Caractersticas Principales

Sipp permite generar una o varias llamadas SIP a un sistema remoto. La herramienta es
iniciada desde la lnea de comando. En el ejemplo mostrado, dos sipp son puestos en marcha uno en
frente de otro para demostrar las capacidades de sipp.
Ejecucin de SIPp en un escenario de servidor (uas):

sipp.exe sn uas

Ejecucin de SIPp en un escenario de cliente

10.9.4.

sipp.exe -sn uac 127.0.0.1

Control de Trfico

SIPp genera trfico SIP de acuerdo al escenario especificado, ya que se puede controlar el
nmero de llamadas que se iniciarn por segundo. Esto se puede hacer de dos maneras:
De forma interactiva, presionando en el teclado:

La tecla + incrementa la tasa de llamadas en 1.

La tecla - decrementa la tasa de llamadas en 1.

- 146

La tecla * incrementa la tasa de llamadas en 10.

La tecla / decrementa la tasa de llamadas en 10.

Al momento de inicio, especificando los parmetros en la lnea de comando.

-r para especificar la tasa de llamadas en nmero de llamadas por segundo.

-rp para especificar el periodo en milisegundos para la tasa de la llamada (el valor

por defecto es 1000ms/1s). Esto permitir tener n llamadas cada una de m milisegundos.
(Mediante el uso de r n rp m).
Por ejemplo, para correr SIPp a 7 llamadas cada 2 segundos (3.5 llamadas por segundo). Para
ello debe colocarse:
Cliente:
Sipp.exe sn uac r 7 2000 161.196.58.48
Servidor:
sipp.exe sn uas
Tambin puede detenerse el trfico presionando la tecla p. SIPp detendr el establecimiento
de nuevas llamadas y esperar hasta que todas las llamadas actuales culminen. Se podr reiniciar el
trfico presionando la tecla p de nuevo.
Para quitar SIPp se debe presionar la tecla q. SIPp detendr el establecimiento de nuevas
llamadas y esperar a que todas las llamadas actuales lleguen a su fin. En ese momento se podr salir
de SIPp.
Se pueden colocar un nmero definido de llamadas y salir de SIPp cuando las mismas hayan
finalizado. Use para ello la opcin m en la lnea de comando.

10.9.5.

Consumo de memoria

Para tener conocimiento del consumo de memoria que est originando SIPp, debe ejecutarse
el comando top en la lnea de comandos.
Al hacer esto, se observar una pantalla como la que se muestra en la siguiente figura

- 147 -

Consumo de memoria

Este comando muestra en tiempo real la situacin de los procesos que se estn ejecutando en
el sistema, ordenados por defecto segn el porcentaje la CPU que estn usando. Al ejecutarlo se podr
ver otra informacin adicional, como la cantidad de usuarios que estn en el sistema, cuntos procesos
estn corriendo y de estos cuntos estas activos, cuntos durmiendo, cuntos en proceso de terminar
(ZOMBIE) y cuntos finalizados. Adems se podr ver la cantidad e memoria fsica total, la cantidad
usada y la cantidad libre; as como tambin se podr obtener la misma informacin de la memoria
swap.
Lo ms importante es que esta informacin de ir actualizando automticamente cada cierto
tiempo, por defecto 5 segundos, de esta forma se tiene conocimiento de la evolucin de la memoria a
medida que SIPp y el resto de los programas se estn ejecutando.
11. Apndice 2: Explicacin de las lneas del archivo de configuracin del OpenSER

#
# $Id: openser.cfg,v 1.6 2006/02/15 18:23:46 bogdan_iancu Exp $
#
# simple quick-start config script
#
#------------------------------------------------------------------------------------#
parametros de configuracion global
#------------------------------------------------------------------------------------1.
2.

debug=3
fork=yes

# nivel de depuracin (cmd line: -dddddddddd)

- 148 -

3.

log_stderror=no

# (cmd line: -E)

4.
5.

/* Descomente esto para agregar lneas de modo de depuracin


fork=no
log_stderror=yes
*/

6.
7.
8.
9.
10.
11.
12.
13.

check_via=no # (cmd. line: -v)


dns=no
# (cmd. line: -r)
rev_dns=no
# (cmd. line: -R)
port=5060
listen=eth0:5060
children=4
fifo="/tmp/openser_fifo"
fifo_db_url="mysql://openser:openserrw@161.196.58.48/openser"

14.
15.
16.
17.
18.
19.
20.
21.

#
# Descomente las siguientes lneas para soporte TLS
#disable_tls = 0
#listen = tls:your_IP:5061
#tls_verify = 1
#tls_require_certificate = 0
#tls_method = TLSv1
#tls_certificate = "//etc/openser/tls/user/user-cert.pem"
#tls_private_key = "//etc/openser/tls/user/user-privkey.pem"
#tls_ca_list = "//etc/openser/tls/user/user-calist.pem"
#------------------------------------------------------------------------------------#
Modulos iniciales cargados
#-------------------------------------------------------------------------------------

22.

mpath="/usr/lib/openser/modules"

23.
24.
25.
26.
27.
28.
29.
30.

loadmodule
loadmodule
loadmodule
loadmodule
loadmodule
loadmodule
loadmodule
loadmodule

"mysql.so"
"sl.so"
"tm.so"
"rr.so"
"maxfwd.so"
"usrloc.so"
"registrar.so"
"textops.so"

#------------------------------------------------------------------------------------#
Ms mdulos
#------------------------------------------------------------------------------------31.
32.
33.
34.
35.

loadmodule
loadmodule
loadmodule
loadmodule
loadmodule

"uri.so"
"uac.so" # tm.so & rr.so deben haberse cargado!
"mediaproxy.so"
"acc.so" # tm.so & rr.so deben haberse cargado!
"permissions.so"

- 149 -

36.
37.

loadmodule "xlog.so"
loadmodule "enum.so"
# mysql.so deben haberse cargado antes de cargar los siguientes mdulos!
loadmodule "auth.so" # Descomente esto si quiere procesar la autentificacin
loadmodule "auth_db.so" # Descomente esto si quiere procesar la autentificacin

38.
39.
40.
41.
42.
43.
44.

loadmodule
loadmodule
loadmodule
loadmodule
loadmodule
loadmodule
loadmodule

"domain.so"
"group.so"
"avpops.so"
"lcr.so"
"uri_db.so"
"pdt.so"
"nathelper.so"

#INSERTE MODULO NUEVO AQUI


#-----------------------------------------------------------------------------------#
Inicializacin de los parmetros especficos de cada modulo
#------------------------------------------------------------------------------------

45.

46.
47.
48.
49.
datos

# -- parmetros de usrloc -modparam("usrloc", "db_mode", 2) #Los cambios ocurren en memoria y en la base de datos
# -- parametros de permisions -modparam("permissions", "default_allow_file", "/etc/openser/permissions.allow")
modparam("permissions", "default_deny_file", "/etc/openser/permissions.deny")
modparam("permissions", "db_mode", 1)
#La base de datos se va modificando
modparam("permissions", "trusted_table", "trusted") #Nombre de la tabla base en la base de

# -- parmetros de auth -# Descomente esto si esta usando el modulo auth


# Este es el URL de la base de datos q se va a usar
50.
modparam("auth_db|permissions|uri_db|usrloc|acc|msilo|grp|domain|lcr",
"db_url",
"mysql://openser:openserrw@161.196.58.48/openser")
51.
modparam("auth_db", "calculate_ha1", yes) #la columna sealada contiene la contrasea en
texto y con esta calcula el HA1
52.
modparam("auth_db", "password_column", "password") #Este es el nombre de la columna
que contiene las contrasenas.
# -- parmetros de group -53.
modparam("group", "table", "grp") #Nombre de la tabla que contiene los grupos y sus
miembros
54.
modparam("group", "use_domain", 0) #Deshabilita la bsqueda por dominio y slo queda por
nombre de usuario
55.
modparam("group", "user_column", "username") #Nombre de la columna que contiene los
nombres de usuario
56.
modparam("group", "domain_column", "domain")
57.
modparam("group", "group_column","grp") #Nombre de la columna que contiene los grupos

58.

# -- parmetros de rr -modparam("rr", "enable_full_lr", 1) # Ayuda con los UAs que eliminan el parmetro ";lr"

- 150 -

59.
modparam("rr", "append_fromtag", 1) #Si esta encendido, las peticiones de la etiqueta from
se anexan al "record_route", til para entender los siguientes mensajes o peticiones
# -- parmetros de tm -60.
modparam("tm", "fr_timer", 20) #Tiempo de espera por una peticin o un ACK por respuesta
a un INVITE negativo
61.
modparam("tm", "fr_inv_timer", 45) #Tiempo de espera por la respuesta a un INVITE despus
de un mensaje provisional (sec)
62.
modparam("tm", "wt_timer", 20) # Tiempo de transaccin en memoria para absorber
mensajes retrasados, si el tiempo expira se retrasnmiten CANCEL localmente.
63.
#modparam("tm", "noisy_ctimer", 1) # Si esta activo, las transacciones del INVITE fr_timer
sern canceladas.
# -- parmetros de acc -64.
modparam("acc", "db_flag", 1) #Bandera que lleva la contabilidad de las transacciones
realizadas
65.
modparam("acc", "db_missed_flag", 3) #Bandera que lleva la contabilidad de las llamadas
perdidas
66.
modparam("acc", "log_level", 3) #Nivel al cual son mostrados los mensajes en el syslog
67.
modparam("acc", "log_flag", 1) #Activar para llevar la contabilidad de las transacciones
68.
modparam("acc", "log_missed_flag", 3) #Activar para llevar la contabilidad de llamadas
perdidas
69.
modparam("acc", "log_fmt", "cdfimorstup") #Indica que parte de los encabezados muestra el
syslog
70.
modparam("acc", "report_ack", 1) # Mantiene un reporte de los ACK de las llamadas
71.
modparam("acc", "report_cancels", 1) #Reporta los CANCEL en las llamadas para llevar su
contabilidad
72.
modparam("acc", "failed_transaction_flag", 4) #Dice si la transaccin puede ser contabilizada
en caso de falla.
73.
modparam("acc","db_table_missed_calls","missed_calls") #Nombre de la tabla de contabilidad
de llamadas perdidas
74.
modparam("acc","db_table_acc","acc") #Nombre de la tabla de de llamadas exitosas

75.
76.
77.
78.

# -- parmetros de pdt -modparam("pdt", "db_table", "prefix_domain") # Nombre de la tabla de prefijos


modparam("pdt", "domain_column", "domain") # Nombre de la columna de dominio
modparam("pdt", "prefix_column", "prefix") # Nombre de la columna de prefijo
modparam("pdt", "db_url", "mysql://openser:openserrw@161.196.58.48/openser") #nombre
de la base de datos

# -- parmetros de domain -79.


modparam("domain", "domain_table", "domain") # Nombre de la tabla que contiene los
nombres de los dominios locales los cuales son responsabilidad del proxy
80.
modparam("domain", "domain_col", "domain") #Nombre de la columna que contiene los
dominios

81.

# -- parmetros de msilo -#modparam("msilo", "registrar", "sip:registrar@example.org) #The SIP address used to


#inform users that destination of their message is not online and the message will be
#delivered next time when thst users goes online. MAKE SURE THIS IS THE LOCAL OR
#RUSTED DOMAIN
# --parmetros de nathelper --

- 151 -

82.
modparam("nathelper","natping_interval",10) #Tiempo (seg) entre el envo de pings NATs a
los UAs
# -- parmetros de registrar -83.
modparam("registrar","nat_flag", 6) #Si esta bandera est en alto entonces el registro viene
detrs de un NAT.
84.
modparam("registrar","default_expires",1800) # Crea nuevos registros en los USRLOCS
85.
modparam("registrar","min_expires",60) # El mnimo tiempo en que expira el valor de un
contacto
86.
modparam("registrar","max_expires",120) #El mximo tiempo en que expira el valor de un
contacto
87.
modparam("registrar","retry_after",30) # Genera un mensaje de respuesta
88.
modparam("registrar","append_branches",1) # Slo la peticin con mas alto valor Q es
sobrescrita

89.
90.
91.
92.
93.
94.
95.
96.
97.

98.

99.

# -- parmetros de avpops -modparam("avpops", "avp_url", "mysql://openser:openserrw@161.196.58.48/openser")


modparam("avpops", "avp_table", "usr_preferences")
modparam("avpops","avp_aliases","email=s:email_addr;fwd=i:753;$Tf=s:time;$from=$fU")
modparam("avpops","uuid_column","uuid")
modparam("avpops","username_column","username")
modparam("avpops","domain_column","domain")
modparam("avpops","attribute_column","attribute")
modparam("avpops","value_column","value")
modparam("avpops","type_column","type")
# -- parmetros de uac -modparam("uac","from_restore_mode","auto") #Las peticiones y respuestas son guardadas
#automticamente en el URI
# -- parmetros de xlog -modparam("xlog","buf_size",8192) # Tamao mximo del mensaje en el log
#INSERTE PARAMETRO NUEVO AQUI
#------------------------------------------------------------------------------------#
Lgica de Peticin de Ruta
#------------------------------------------------------------------------------------# Lgica de rutina principal

100.
101.

route{
append_time(); # Mostrar la hora en las respuestas de peticiones
#----------------------------------------------------------------------------# Chequeo inicial
#-----------------------------------------------------------------------------

102.
103.
104.
105.

# max_forwards==0, o peticiones excesivamente largas


if (!mf_process_maxfwd_header("10")) {
log(1, "WARNING: Too many hops\n");
sl_send_reply("483","Too Many Hops, forward count exceeded limit\n");

- 152 -

106.
107.

};

exit;

108.
109.
110.
111.
112.

if (msg:len >= 2048 ) {


log(1, "WARNING: Messge too large >=2048 bytes\n");
sl_send_reply("513", "Message too big, exceeded the limit\n");
exit;
};
#----------------------------------------------------------------------------# Seccin de "Keep-Alive" con NOTIFY (mantener activa la conexin)
#-----------------------------------------------------------------------------

113.
114.
115.
116.

if ((method=="NOTIFY")&& search("^Event: keep-alive")) {


sl_send_reply("200","OK");
exit;
}
#----------------------------------------------------------------------------# Seccin de OPTIONS
#-----------------------------------------------------------------------------

117.
118.
119.
120.

if (method=="OPTIONS") {
###options_reply();
exit;
}
#------------------------------------------------------------------------------# Seccin de grabacin de ruta
#
# se guardan todas las rutas de los mensajes -- para estar seguros que los otros
# mensajes siguientes puedan ir a travs del proxy; esto es particularmente
# bueno si los entes de entrada y salida usan distintos protocolos de transporte
#-------------------------------------------------------------------------------

121.
122.
123.
124.

if (!method=="REGISTER" && !method=="ACK") {


setflag(1);
setflag(2);
};
#----------------------------------------------------------------------------# No enviar al correo de voz si es BYE o CANCEL y es usado para terminar la
# llamada antes de contestar o por que se acabo el tiempo
#-----------------------------------------------------------------------------

125.
126.
127.
128.
129.

if (method=="CANCEL" || method=="BYE") {
#end_media_session();
setflag(1);
setflag(3);
};
#----------------------------------------------------------------------------# Seccin de Registro

- 153 -

#----------------------------------------------------------------------------130.
131.
132.
133.
134.
135.
136.

if (method=="REGISTER") {
if (!www_authorize("161.196.58.48", "subscriber"))
{
www_challenge("161.196.58.48", "0");
exit;
};

137.
138.
139.
140.

141.
142.
143.
144.

if (!check_to()){
sl_send_reply("401","Unauthorized");
exit;
}
# Guardar en la base de datos de usuarios, si el chequeo indico que
# el usuario esta disponible
log(1, "REGISTER: User Authenticated Correctly\n");
save("location");
exit;
};
#-----------------------------------------------------------------------------# Rechazo de llamadas con ID desconocido
#-----------------------------------------------------------------------------

145.
if
((method=="INVITE")&&(search("^(f|F)rom:.*(a|A)nonymous")||(search("^(f|F)rom:.*(u|U)nknow")))){
146.
log(1,"From:Anonymous");
147.
route(5);
148.
exit;
149.
};
#-----------------------------------------------------------------------------# Seccin de ruta dbil
#
# Los mensajes siguientes sin dialogo pueden tomar el camino determinado por el
# camino registrado "record-routing"
#-----------------------------------------------------------------------------150.
151.
152.
153.

if (loose_route()) {
# marcar la lgica de peticin de enrutamiento
append_hf("P-hint: rr-enforced\r\n");
route(1);
};
#-----------------------------------------------------------------------------# Seccin de enrutamiento por Alias
#------------------------------------------------------------------------------

154.
155.
156.

lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound\r\n");

- 154 -

157.
158.

route(1);
};
#-----------------------------------------------------------------------------# si la peticin es de otro dominio usar el Usrloc (en caso de que no funcione,
# usar los siguientes comandos con los nombres apropiados y las direcciones
# adecuadas (usar la seccin del INVITE)
#-----------------------------------------------------------------------------#-----------------------------------------------------------------------------# Redireccionamiento
#-----------------------------------------------------------------------------/*
rewriteuri("sip:85984@voip.brujula.net"); # reescribe el URI actual
# append_branch("sip:redirect@siphub.net:9");
sl_send_reply("300", "Redirect"); #Redireccionar
*/

159.
160.
161.

#-----------------------------------------------------------------------------# HORA Y METODO EN EL LOG


#-----------------------------------------------------------------------------162.
163.

xlog("$Tf"); #imprime en el syslog el campo "Date"


xlog("time $Tf method <$rm> r-uri <$ru>\n");

#-----------------------------------------------------------------------------# Seccion de INVITE


#-----------------------------------------------------------------------------164.
165.
166.
167.
168.
169.

if (uri==myself) {
if (method=="INVITE"){
append_time();
setflag(1);
setflag(2);
setflag(3);
#--------------------------------------------------------------------# ENRUTAMIENTO POR URI
#--------------------------------------------------------------------#------------------------------------------------------------# Llamadas a voip.brujula.net
#-------------------------------------------------------------

/*

170.
171.
172.
173.
174.
175.
176.

if (uri=~"^sip:8"){
log(1,"CALL: Call to voip.brujula.net (8) \n");
route(4);
};
if (uri=~"^sip:\*"){
xlog("CALL: Call to voip.brujula.net (*) \n");
strip(1);

- 155 -

177.
178.

route(2);
};
#------------------------------------------------------------# Llamadas por prefix to domain
#-------------------------------------------------------------

179.
180.
181.
XX)\n");
182.
183.

if (uri=~"^sip:04"){
prefix("7");
xlog("CALL: Llamadas a nmeros mviles (04XX-XXX-XX-

184.
185.
186.
XX)\n");
187.
188.

if (uri=~"^sip:02"){
prefix("7");
xlog("CALL: Llamadas a nmeros nacionales (02XX-XXX-XX-

189.
190.
191.
nmero)\n");
192.
193.
194.
195.
196.
197.

prefix2domain("2");
};

prefix2domain("2");
};
if (uri=~"^sip:00"){
prefix("7");
xlog("CALL: Llamadas

nmeros

internacionales

prefix2domain("2");
};
if (uri=~"^sip:7"){
xlog("CALL: Call to PSTN (7) \n");
prefix2domain("2");
};

198.
199.
200.
201.
202.

if (uri=~"^[0-9]2"){
prefix("0001");
xlog ("PAAAAAAAAR");
prefix2domain("1");
};
#------------------------------------------------------------# Llamadas a Asterisk
#-------------------------------------------------------------

203.
204.
205.

if (uri=~"^sip:1112"){
xlog("CALL: Call to Asterisk (1112) \n");
};
#------------------------------------------------------------# Llamadas a brekeke
#-------------------------------------------------------------

206.
207.

if (uri=~"^sip:2"){
log(1,"CALL: Call to Brekeke (2) \n");

(00-pas-rea-

- 156 -

208.
209.

route(6);
};
*/
# INSERTE REGLA DE ENRUTAMIENTO POR URI AQUI
#--------------------------------------------------------------------# ENRUTAMIENTO POR CAMPO:"FROM"
--------------------------------------------------------------------/*

210.
211.
212.
213.
214.

if (search("[Ff][Rr][Oo][Mm]: 1111")){
xlog("ENRUTAMIENTO POR FROM");
prefix("7");
prefix2domain("2");
};
*/
# INSERTE REGLA DE ENRUTAMIENTO POR FROM AQUI
#--------------------------------------------------------------------# ENRUTAMIENTO POR CAMPO:"TO"
#---------------------------------------------------------------------

215.
216.
217.
218.
219.

/*

if (search("[Tt][Oo]: <sip:04")){
xlog("ENRUTAMIENTO POR FROM");
prefix("7");
prefix2domain("2");
};*/
# INSERTE REGLA DE ENRUTAMIENTO POR TO AQUI
#--------------------------------------------------------------------# ENRUTAMIENTO POR "HORA"
#---------------------------------------------------------------------

220.
221.
222.
223.
224.

/* if (uri=~"^sip:04"){
prefix("7");
xlog("CALL: Llamadas a nmeros mviles (04XX-XXX-XX-XX)\n");
prefix2domain("2");
};

225.
226.
227.
228.
229.

if (uri=~"^sip:02"){
prefix("7");
xlog("CALL: Llamadas a nmeros nacionales (02XX-XXX-XX-XX)\n");
prefix2domain("2");
};

230.
231.
232.
nmero)\n");
233.
234.

if (uri=~"^sip:00"){
prefix("7");
xlog("CALL: Llamadas a

};

235.
236.

if (uri=~"^sip:7"){
xlog("CALL: Call to PSTN (7) \n");

nmeros internacionales (00-pas-rea-

prefix2domain("2");

- 157 -

237.
238.

prefix2domain("2");
};
*/
# INSERTE REGLA DE ENRUTAMIENTO POR HORA AQUI
#--------------------------------------------------------------------# REPARTICION DE CARGA
#---------------------------------------------------------------------

239.
if((uri=~"^sip:[0-9]{10}1")||(uri=~"^sip:[0-9]{10}3")||(uri=~"^sip:[09]{10}5")||(uri=~"^sip:[0-9]{10}7")||(uri=~"^sip:[0-9]{10}9")){
240.
prefix("7");
241.
xlog("REPARTICION DE CARGA");
242.
prefix2domain("2");
243.
};
244.
if((uri=~"^sip:[0-9]{10}2")||(uri=~"^sip:[0-9]{10}4")||(uri=~"^sip:[09]{10}6")||(uri=~"^sip:[0-9]{10}8")||(uri=~"^sip:[0-9]{10}0")){
245.
prefix("7");
246.
xlog("REPARTICION DE CARGA");
247.
prefix2domain("2");
248.
};

# INSERTE REGLA DE ENRUTAMIENTO POR CARGA AQUI


249.

};

260.

route(1);

261.

};
#--------------------------------------------------------------------# Destinos propios de SIP son manejados por la base de datos USRLOC
#---------------------------------------------------------------------

262.
263.
264.
265.
266.

if (!lookup("location")) {
log(1,"404 not found");
sl_send_reply("404", "Not Found");
exit;
};

267.
268.
269.

append_hf("P-hint: usrloc applied\r\n");


route(1);
}
#-----------------------------------------------------------------------------------# Seccin de Rutas
#------------------------------------------------------------------------------------

- 158 -

270.
route[1] {
# enviarlo fuera, usar reenvo con seguimiento de estados incluso para
UDP2TCP
271.
if (!t_relay()) {
272.
sl_reply_error();
273.
setflag(1);
274.
setflag(2);
275.
setflag(3);
276.
};
277.
t_on_failure("1");
278.
exit;
279.
}
280.

route[2] {

281.
282.
283.
284.
285.
286.
287.
288.

rewritehost("65.110.41.100");
forward(65.110.41.100,5060);
setflag(1);
setflag(2);
setflag(3);
t_on_failure("1");
exit;
}

289.

route[3]{

290.
291.

292.
293.
294.
295.
296.
297.
298.
299.
300.

route[4]{
rewriteuri("sip:85984@voip.brujula.net"); # reescribe el URI actual
sl_send_reply("300", "Redirect"); #Redireccionar
setflag(1);
setflag(2);
setflag(3);
t_on_failure("1");
exit;
}

301.
302.
303.
304.
305.
306.
307.
308.
309.

route[5]{
log(1,"Anonymous call rejection \n");
rewriteuri("sip:85001234@voip.brujula.net");
t_on_failure("1");
log(1,"Anonymous call rejection 1\n");
#t_on_reply("1");
if (!t_relay()) {
sl_reply_error();
};

310.

311.
312.

route[6]{
rewritehost("161.196.169.238");

exit;

- 159 -

313.
314.
315.
316.
317.
318.

forward(161.196.169.238,5060);
setflag(1);
setflag(2);
setflag(3);
t_on_failure("1");
exit;

319.

320.
321.
322.
323.
324.
325.
326.
327.

route[7]{
rewritehost("161.196.58.47");
forward(161.196.58.47,5060);
setflag(1);
setflag(2);
setflag(3);
t_on_failure("1");
exit;

328.

}
#INSERTE RUTA AQUI

329.

failure_route[1]{

330.
331.
332.
333.

log(1,"SECOND ROUTE 161.196.58.48\n");


append_branch("sip:8@vip.brujula.net");
t_on_failure("2");
t_relay();

334.

335.
336.
337.
338.

failure_route[2] {
log(1,"NO MORE ROUTE\n");
t_reply("503", "Service not available");
}
OpenSER est construido en base a un ncleo de procesos que recibe mensajes SIP y habilita

funciones bsicas para el manejo de los mismos. La mayor parte de la funcionalidad de OpenSER se
ofrece a travs de sus mdulos. Por el hecho de tener una estructura modular, el OpenSER es capaz
de tener un ncleo reducido, rpido y estable. Los mdulos de OpenSER permiten el uso de algunas
funciones dentro del archivo de configuracin de OpenSER, openser.cfg. Este archivo de configuracin
controla cules mdulos sern cargados as como tambin su comportamiento segn las variables
fijadas en cada uno.

Lnea 1: OpenSER tiene informacin para la depuracin de errores que puede ser habilitada o
suprimida usando la instruccin debug. El valor nominal 3, es especificado usualmente para
obtener una gran cantidad de informacin cuando ocurren errores. La instruccin debug, especifica
cunta informacin se escribir en el syslog. Para nmeros ms altos, la informacin se har ms

- 160 -

extensa y detallada (siendo 9 el nivel ms alto), ocasionando adems, que el tiempo de inicio de
OpenSER sea mayor.

Lnea 2: la instruccin fork le indica al demonio OpenSER si puede o no bifurcarse, creando


as un proceso para cada interfaz de red. El valor inicial del mismo es yes.

Lnea 3: este parmetro permite, al OpenSER, escribir logs o mensajes de chequeo en el


Standard error. Si el comando se encuentra negado: log_stderror=no, los mensajes son escritos
en el syslog.

Lneas 7 - 8: estas lneas tienen como funcin evitar que OpenSER realice operaciones de
bsqueda de su direccin IP en el DNS. Mediante la incorporacin de estas dos lneas en el archivo
openser.cfg, se elimina cualquier advertencia si su IP no se encuentra en el Servidor DNS.

Lnea 10: la funcin listen le indica a OpenSER qu debe escuchar, ya sea una direccion IP,
dominio, una interfaz de red o una combinacin de [protocolo]:[direccin]:[puerto]. Si se omite este
comando, OpenSER escuchar todas las interfaces.
Este parmetro puede soportar cambios en el archivo de configuracin dndole distintos
dominios y/o puertos.

Lnea 11: el comando children le indica a OpenSER cuntos procesos se van a generar
cuando el servidor inicie. El valor por defecto es 8, el maximo valor que puede tomar es 32.

Lnea 12: el comando fifo especifica la localizacin del FIFO de OpenSER. El FIFO puede ser
usado si se desea agregar un nuevo mensaje SIP directamente en el Proxy SIP con una aplicacin
externa. Un buen ejemplo de ello es serctl el cual usualmente se encuentra localizado en
/usr/local/sbin/. Con l se pueden manejar usuarios, hacer ping a URIs SIP, enviar correos a
usuarios SIP. Serctl hace todo esto internamente usando FIFO.
El FIFO se puede localizar en cualquier parte del disco, sin embargo OpenSER debe ser capaz
de crear el FIFO en el directorio especificado. Si este no se especifica, el servicio no iniciar.

Lnea 13: el comando fifo_db_url es tambin incluido para suprimir las advertencias que si no,
apareceran al incluir el soporte de mysql. No se usa fifo_db_url directamente en openser.cfg, sin
embargo, otras herramientas como openserctl lo usa para agregar usuarios en la base de datos.

- 161 -

Lnea 22: sirve para especificar la ruta donde se encuentran los mdulos, de esta forma al
agregar un mdulo slo es necesario escribir: loadmodule modulo.so. En caso contrario, se debe
especificar la ruta completa.

Lnea 23: el soporte de mysql es aadido fcilmente incluyendo el mdulo mysql.so en la


seccin loadmodule. Un aspecto importante es que este mdulo debe ser cargado antes que el resto.
Esto ya que mysql.so no presenta dependencias con ningn mdulo, sin embargo, mdulos como
uri_db si dependen de mysql.so

Lneas 24 30: Aqu se tienen mdulos externos que son necesarios para el funcionamiento del
Proxy.
Si est imaginando cmo saber cul mdulo o mdulos necesitar, en principio no hay forma
clara de saberlo. En general, los mdulos mostrados aqu sern necesarios por cualquier configuracin
Proxy. Cuando se necesita agregar funcionalidades adicionales, como conectividad Mysql, entonces
deber cargar el mdulo apropiado, en este caso el mdulo mysql.so.
Algunos mdulos presentan parmetros que necesitan ser activados en el archivo openser.cfg
para el funcionamiento adecuado del servicio. Otros mdulos, sin embargo, operan normalmente en la
mayora de los casos sin necesidad de hacer un ajuste de los parmetros.

Lnea 45: el mdulo USRLOC es responsable de no perder de vista las localizaciones del registro
del cliente SIP. En otras palabras, cuando un cliente SIP se registra con el Proxy SIP, OpenSER
almacenar la informacin del contacto en una tabla. Esta tabla es consultada cuando otro cliente SIP
hace una llamada. La localizacin de esta tabla depende del valor del parmetro db_mode.
0.- deshabilita la base de datos completamente. Solamente ser usada la memoria. Los
contactos no sobreviven a un reinicio. Usar este valor si se necesita realmente un usrloc rpido y no
es necesaria la persistencia del contacto, o la misma es proporcionada por otros medios.
1.- Esquema Write-Through. Todos los cambios en el usrloc son reflejados inmediatamente en
la base de datos tambin. Esto resulta muy lento pero confiable. Se recomienda usar este esquema si
la velocidad no es prioridad pero se necesita estar seguro de que no se perdern los usuarios
registrados durante una falla o reinicio.
2.- Esquema Write-Back. Es una combinacin de los dos esquemas previos. Todos los cambios
son realizados en la memoria y la sincronizacin de la base de datos es hecha en el contador de
tiempo. Este contador elimina a todos los contactos que han expirado y limpia todas las modificaciones
o nuevos contactos en la base de datos. Usar este esquema si se tienen picos de mucha carga y se
quieren procesar tan rpido como sea posible. Este modo no ayudar si la carga es alta en toda hora.

- 162 -

Tambin, la latencia de este modo es mucho menor que la del modo 1, pero levemente mayor que la
del modo 0.

Lnea 48: el mdulo permissions necesita saber si se tiene que conectar con MySQL para
encontrar los datos.

Lnea 50: los mdulos: auth_db, permissions, uri_db, usrloc, acc, msilo, grp,
domain, lcr, necesitan tener acceso a la base de datos MySQL, por ello se agrega a la lista del
parmetro db_url.

Lnea 58: El parmetro llamado enable_full_lr es realmente para trabajar en base a clientes SIP
viejos que no manejan propiamente los encabezados del SIP record-route.

Lnea 66: el parmetro log_level indica el nivel de detalle al cual son mostrados los mensajes en
el syslog.

Lneas 89 90: el envo de la llamada es dependiente del mdulo avpops. Este mdulo
necesita tener acceso a la base de datos de mysql para leer las preferencias de envo de llamada de un
suscriptor en la tabla usr_preferences. Por ello, aqu se especifica la base de datos mysql y la tabla
para las preferencias de envo de llamada.

Lnea 99: indica el tamao mximo del mensaje en el log.

Lnea 100: es el comienzo de la lgica de procesamiento. Esta lnea define el bloque de ruta
principal. Un bloque de ruta principal debe tener una llave de principio y final. (100 y 269
respectivamente).
El bloque de ruta principal es donde todos los mensajes SIP recibidos son enviados. Desde el
bloque de ruta principal puede llamar otros bloques de ruta, chequear mensajes para ciertas
condiciones, rechazar el mensaje, retransmitirlo, entre otras, de acuerdo a las necesidades que se
tengan.

Lnea 103: mf_process_maxfwd_header es un chequeo de seguridad que siempre se debe


incluir como la primera lnea del bloque de ruta principal. Esta funcin se expone en el mdulo
maxforward.so y se utiliza para no perder de vista cuntas veces ha pasado el mensaje SIP a travs de
OpenSER. Archivos errneos de openser.cfg pueden enviar mensajes SIP a lugares equivocados y

- 163 -

causar condiciones de ciclos infinitos. Tambin otros Proxy SIP con los que OpenSER interacta hacen
lo mismo.
La regla bsica es que si la funcin siempre retorna true, entonces es necesario dejar de
procesar el mensaje con problemas para evitar un lazo infinito.

Lnea 104: la function log() imprime el mensaje especificado en el syslog. Sirve para la
depuracin de errores.

Lnea 105: si se detecta un ciclo infinito, OpenSER necesita tener una manera de informar al
cliente SIP que ha ocurrido un error. La funcin sl_send_reply() permite hacer esto. Dicha funcin
se encuentra presente en el mdulo sl.so, y todo lo que hace es enviar un mensaje sin seguimiento de
estado al cliente SIP. Esto significa que enva el mensaje y se olvida del mismo. No tratar de
reenviarlo en caso de que no llegue al destinatario o no se tenga una respuesta.
Se puede especificar un mensaje de error apropiado como se muestra. El mensaje de error
puede solamente ser seleccionado de los cdigos de error y mensajes SIP definidos. Muchos telfonos
SIP lo mostrarn en forma del mensaje de texto al usuario.

Lnea 106: la sentencia exit le indica a OpenSER que debe detener el procesamiento del
mensaje SIP y salir del bloque de ruta que est ejecutando en ese instante. Puesto que se est
llamando a la sentencia exit en el bloque de ruta principal, OpenSER detendr completamente el
procesamiento del mensaje actual.

Lnea 108: msg:len es una funcin del ncleo de OpenSER que retorna la longitud en bytes del
mensaje SIP actual. Entonces, como la funcin mf_process_maxfwd_header() debe ser llamada al
comienzo del bloque de ruta principal en todos los archivos de configuracin openser.cfg.
Esta sentencia simplemente chequea que la longitud del mensaje SIP no sea mayor que el
mximo permitido. Si el mensaje SIP es muy largo, entonces se detendr el proceso ya que se habr
detectado un potencial desbordamiento del buffer.

Lnea 110: OpenSER necesita tener una manera de informar al cliente SIP que ha ocurrido un
error. La funcin sl_send_reply() permite hacer esto. Dicha funcin se encuentra presente en el
mdulo sl.so, y todo lo que hace es enviar un mensaje sin seguimiento de estado al cliente SIP. Esto
significa que enva el mensaje y se olvida del mismo. No tratar de reenviarlo en caso de que no llegue
al destinatario o no se tenga una respuesta.

- 164 -

Se puede especificar un mensaje de error apropiado como se muestra. El mensaje de error


puede solamente ser seleccionado de los cdigos de error y mensajes SIP definidos. Muchos telfonos
SIP lo mostrarn en forma del mensaje de texto al usuario.

Lnea 111: ver lnea 106.


Lnea 114: ver lnea 110.
Lnea 115: ver lnea 106.
Lnea 119: ver lnea 106.

Lnea 125: cuando se recibe un mensaje BYE o CANCEL, se debe asumir que es para una
llamada que se ha establecido con un mediaproxy. Inmediatamente se debe procurar terminar la
sesin del RTP Proxy. Es perfectamente seguro llamar a la funcin end_media_session(), incluso
para llamadas que no provengan de un Proxy RTP.

Lnea 126: le indica al mediaproxy que debe terminar la sesin de la llamada actual.

Lnea 130: en esta lnea se chequea si el mensaje recibido es un mensaje REGISTER, en caso
de no serlo, esta parte de la rutina es obviada. La palabra method es proporcionada por el ncleo de
openser y permite encontrar qu tipo de mensaje SIP se est manejando.

Lnea 131: la funcin www_authorize() es usada para chequear las credenciales del usuario
contra los valores almacenados en la tabla subscriber de mysql. Si las credenciales provedas son
correctas, la funcin retorna true, en caso contrario retorna false.
El primer parmetro especifica el dominio en el cual autentificar el usuario. El segundo valor le
dice a OpenSER cul tabla de mysql debe usar para encontrar las credenciales de la cuenta del
usuario.

Lnea 133: aqu realmente se enva un mensaje 401 unauthorized al cliente SIP para que
ste retransmita la peticin con las credenciales digest incluidas.
La function www_challenge() toma dos argumentos. El primero es el dominio, el cual
tambin aparecer en el encabezado www-Authorize que OpenSER le enva al cliente SIP. Si se coloca
un valor aqu, entonces el dominio le aparecer al cliente SIP cuando se retransmite la peticin de las
credenciales.
El segundo valor afecta la inclusin del parmetro gop en la peticin de las credenciales. Es
recomendable colocar este valor en 1. Para una completa descripcin de la autentificacin digest,

- 165 -

referirse al RFC2617. es importante destacar que algunos telfonos IP no soportan la autentificacin


gop.

Lnea 135: al enviar el mensaje de error 401 en la lnea previa, no es necesario mantener este
mensaje de registro. Luego, se usa el comando exit para retornar al bloque de ruta principal.

Lnea 137: cuando se opera un proxy SIP, se debe estar seguro de que cuentas de usuario
vlidas, que fueron registradas satisfactoriamente, no pueden ser usadas por usuarios no
autentificados. Debido a ello, OpenSER incluye la funcin check_to().
Se llama a la funcin check_to() antes de validar el mensaje de registro.
Esto hace que OpenSER valide el campo To: contra las credenciales previamente validadas. Si
no coinciden, debe rechazarse el mensaje REGISTER y enviar un mensaje de error.

Lnea 138 - 139: si la funcin check_to() retorna false, debe enviarse un mensaje 401
Unauthorized al cliente SIP. Luego se llama al comando exit para retornar al bloque de ruta
principal.

Lnea 142: la funcin save() es responsable de almacenar la informacin de registro del cliente
SIP en la tabla location.

Lnea 147: reenva el mensaje al destino.

Lnea 150: la funcin loose_route() prueba para ver si el mensaje SIP debe ser enrutado
libremente o no. Si el mensaje debe ser enrutado libremente, entonces OpenSER simplemente debe
reenviar el mensaje al siguiente destino especificado en el encabezado Record-Route.
En todos los archivos openser.cfg se debe llamar a la funcin loose_route() despus de la
funcin record_route(). Referirse a RFC3261 para una explicacin completa de loose_route().

Lnea 152: si la prueba de enrutamiento libre retorna true, entonces se deber reenviar el
mensaje sin otro procesamiento. Para hacer esto, se pasa el control del bloque en ejecucin al bloque
de ruta[1].

Lnea 161: ver lnea 110.

Lnea 262: lookup(location) trata de encontrar dnde se encuentra localizada fsicamente la


persona a la que se est llamando.

- 166 -

Lnea 264: si la parte que est siendo llamada no puede ser localizada, entonces OpenSER
reenviar un mensaje de error: 404 User Not Found.

Lnea 272: si la funcin t_relay() en la lnea 281 no enva el mensaje SIP, entonces
sl_reply_error() enviar el error al cliente SIP para informar que ha ocurrido un error en l.

Lnea 277: la funcin t_on_failure() informa a OpenSER que se quiere tener un manejo
especial de la llamada cuando ocurren condiciones de falla. En este contexto, se refieren condiciones
de falla a cdigos de respuesta de tipo: 4xx, 5xx.

Lnea 281: La funcin rewritehost() es usada para modificar el R-URI de modo que el
mensaje sea retransmitido al gateway de la PSTN. Se debe pasar la direccin IP del gateway de la
PSTN a esta funcin. De dicha forma, OpenSER enviar el mensaje INVITE al gateway de la PSTN
correctamente cuando se llama a la funcin t_relay().

Lnea 293: la funcin rewriteuri() sobrescribe el URI actual.

Lnea 282: necesario para enrutar la llamada hacia el dominio especificado.


Lnea 286: ver lnea 277.
Lnea 294: ver lnea 110.
Lnea 298: ver lnea 277.
Lnea 303: ver lnea 293.
Lnea 304: ver lnea 277.
Lnea 307: ver lnea 272.
Lnea 312: ver lnea 281.
Lnea 313: ver lnea 282.
Lnea 317: ver lnea 277.
Lnea 321: ver lnea 281.
Lnea 322: ver lnea 282.
Lnea 326: ver lnea 277.
Lnea 332: ver lnea 277.

12. Apndice 3: Caractersticas del hardware.


Para identificar las caractersticas de hardware del servidor fue necesario trabajar con el DSA
Dynamic System Analysis. El mismo se encarga de colectar y analizar la informacin del sistema, con

- 167 -

la finalidad de diagnosticar problemas en l. Es soportado tanto en los ambientes Microsoft


Windows y Linux.

DSA colecta informacin referente a:

Configuracin del sistema.

Aplicaciones instaladas.

Interfaces de red y configuracin.

Dispositivos de arranque y servicios de sistema.

Datos del funcionamiento y detalles de los procesos que estn corriendo.

Inventario del hardware, incluyendo la informacin PCI.

Configuracin ServeRAID.

Aplicacin, sistema, seguridad, ServeRAID y registros (logs) de los acontecimientos del

sistema.

Para la instalacin de DSA deben seguirse los siguientes pasos:

Descargar de la web el paquete: ibm_utl_dsa_131i_rhel3_i386.rpm, y guardarlo

en la ruta: /etc.

Desde la ruta donde se encuentra el paquete, ejecutar el comando:


rpm -ivh ibm_utl_dsa_131i_rhel3_i386.rpm

Verificar que en la ruta /usr/bin se tiene instalada la librera libstdc++.so.5. En

caso de no ser as, se deber descargar, para ello ejecutar el comando:


yum install libstdc++.so.5

Al instalar el paquete DSA, se crear la ruta /opt/IBM/DSA. Deber dirigirse a la

misma y ejecutar el comando:


./collectall v c d /tmp/hardware

Luego de esto, la informacin del sistema ser almacenada en la ruta

/tmp/hardware. Se podr especificar la ruta deseada.

Dirigirse va ftp a la ruta que se especific en la parte anterior (/tmp/hardware), en

ella encontrar una carpeta que contiene las pginas donde est toda la informacin de
sistema. Se deber guardar en la PC la carpeta que se encuentra descomprimida.

En la carpeta descargada encontrar un archivo llamado index.html. En dicho

navegador encontrar toda la informacin referente a la informacin del sistema.

- 168 -

Al acceder a la pgina se mostrar en el navegador web

Pgina principal que contiene las caractersticas del sistema

Se muestra la pgina principal que contiene las caractersticas del sistema. As mismo, del lado
derecho se encuentran links que redireccionan al resto de la informacin colectada por el DSA.

13. Apndice 4: Creacin de nuevos usuarios en Linux.


Para la creacin de nuevos usuarios en Linux es necesario usar el comando useradd. La
sintaxis que debe seguirse se muestra a continuacin.
1. Para aadir el usuario al sistema debe ejecutarse el comando:

useradd nombre_del_usuario
2. Posteriormente debe escribirse un password para el usuario ejecutando el comando:

passwd nombre_del_usuario
Y repetirlo a fin de evitar errores. Por motivos de seguridad no se ver el password que se
est escribiendo. Se puede adems cambiar el password del usuario, usando el comando

- 169 -

passwd. Si est conectado como usuario root puede cambiarse el password de cualquier
usuario.
3. Luego es necesario cambiar los permisos de los archivos que se desea que el usuario tenga
control.
El usuario creado tiene como inconveniente que no posee el conjunto de permisos requeridos
para poder detener e iniciar servicios de los cuales es necesario tener el control cuando se
trabaja con la aplicacin de OpenSER.
Es por ello que se hace necesario recurrir a la opcin de SUDO, mejor conocida como Super
Usuario. SUDO Superuser DO es una herramienta que permite otorgar a un usuario o grupo
de usuarios normales, permisos para ejecutar algunos comandos como si fuese el usuario
root18 (o como otros usuarios) sin necesidad de conocer su password.

13.1.

Configuracin del Super Usuario

Para configurar sudo ser necesario seguir una serie de pasos:


1. Ejecutar el comando visudo.
2. Como se muestra en la figura, en archivo ser necesario agregar la siguiente lnea:
nombre_del_usuario ALL=/etc/init.d

Lnea a agregar

Para efectuar este cambio ser necesario que se est iniciado como usuario root.
3. Luego de modificar el archivo de configuracin, el usuario estar en la capacidad de reiniciar
los servicios, para ello debe dirigirse a la siguiente ubicacin:
cd /etc/init.d
En este directorio se encuentran todos los scripts que facilitan el inicio y cierre de los
demonios (programas). Estos scripts normalmente toman argumentos del tipo: stop, start,
status, restart.
Entre estos demonios pueden mencionarse:

18

Vsftpd

Httpd

Openser

Mysq

Usuario que posee acceso completo al sistema.

- 170 -

ANEXO 2. Manual SERWeb Administrador

1. Introduccin
El siguiente manual tiene como finalidad facilitarle al administrador el manejo de la aplicacin web
de OpenSER. En el mismo se explica el funcionamiento de cada una de las partes que la conforman,
siguiendo un esquema ms o menos similar al que puede encontrarse en el modo de trabajo habitual.
La aplicacin aqu descrita se encuentra escrita enteramente en lenguaje PHP y trabaja con cualquier
browser moderno.
Para poder acceder a la aplicacin, deber ingresar a travs de la pgina web de Login por
medio del par usuario/contrasea.

2. Entrada a la Aplicacin
Al entrar a la pgina el administrador debe introducir su nombre de usuario y contrasea, si estos
son vlidos, se observar una pgina como la mostrada en la Figura 1:

Figura 1: Pgina de Inicio

- 171 -

En ella, se presentan dos opciones:

Modificar archivo de configuracin de OpenSER


Modificar tablas de prefijos
2.1.

Modificacin del Archivo de Configuracin de OpenSER

Si se desea eliminar parte del archivo de configuracin, o editarlo, ser necesario que el
administrador lo realice directamente en la consola.
Si tiene dudas de cmo acceder al archivo de configuracin de OpenSER desde la consola, ver
detalles en el manual de OpenSER que se encuentra en el Anexo1 de este libro.
En caso de que se deseen agregar nuevas reglas de enrutamiento, parmetros de configuracin
de OpenSER, cargar otros mdulos, u otra ruta, esto puede hacerse a travs del servidor web, el cual
se encargar de insertar el cdigo en el lugar apropiado.
Para modificar el archivo de configuracin de OpenSER desde serweb, se debe escoger la opcin
Modificar el Archivo de Configuracin de la lista desplegable mostrada en la Figura 1. Al hacer esto,
se dirigir a una pgina como la que se muestra en la Figura 2.

Manual
de ayuda

Archivo
de
configuracin
de openser

Agregar

cdigo

en

el

archivo de configuracin

Figura 2: Modificacin del archivo de configuracin

- 172 -

En esta pgina, se tienen tres opciones:


1.- Manual de Ayuda.
2.- Agregar cdigo en el archivo de configuracin.
3.- Ver archivo de configuracin de OpenSER.
2.1.1. Manual de Ayuda
Le permite al administrador de una manera rpida, recordar la sintaxis bsica para modificar el
valor de un parmetro, insertar un mdulo, o insertar una nueva ruta.
2.1.2. Ver archivo de configuracin de OpenSER
El link ver cdigo le permite al administrador abrir en un documento de texto el archivo de
configuracin de OpenSER, de esta forma se puede ver fcilmente qu parmetros se encuentran
inicializados, cules son los mdulos que estn cargados, las reglas de enrutamiento, etc.

2.1.3. Agregar cdigo


Agregar cdigo en la pgina web consiste de un cuadro de texto y una lista desplegable. El
archivo de configuracin puede estructurarse bsicamente en cuatro partes:
Mdulos
Parmetros
Reglas de Enrutamiento
Rutas
Para agregar cdigo en el archivo de configuracin, se elige en la lista desplegable la opcin
deseada, y en el cuadro de texto se escribe el cdigo, luego se pulsa el botn enviar. En este
momento, los cambios se habrn realizado en su archivo de configuracin de OpenSER.

NOTA: Es importante destacar que esto debe realizarse con pleno cuidado y seguridad ya que si
se incluye el cdigo en un lugar errado (esto se refiere a elegir una opcin equivocada en la lista
desplegable) muy probablemente OpenSER fallar o no se ejecutar correctamente.

Uso:
Esta herramienta permite realizar cambios tanto internos como externos a OpenSER. Se dice que
un cambio es interno a OpenSER, cuando las modificaciones se realizan directamente en el archivo de
configuracin de OpenSER (openser.cfg), lo cual implica que es necesario reiniciar el servicio de
OpenSER para que los cambios efectuados sean tomados en cuenta.
Por otro lado, se dice que un cambio es externo a OpenSER cuando ste no se realiza en el
archivo de configuracin, sino por ejemplo en la base de datos de OpenSER. Cuando esto ocurre no es

- 173 -

necesario reiniciar el servicio de OpenSER ya que no han ocurrido cambios dentro del archivo de
configuracin.

Como desarrollador, la idea consiste en ofrecer la posibilidad de modificar va Web los dominios
para el enrutamiento de las llamadas a travs de OpenSER, sin necesidad de tener que acceder a la
base de datos.
Una vez ingresado al portal, se encontrar una pgina como la que se muestra a continuacin:

2.2.

Modificar tablas de Prefijos

Figura 3: Pgina Principal de Enrutamiento

El administrador debe elegir alguna de las opciones de la lista desplegable, en funcin de los
parmetros que desee modificar para el enrutamiento de las llamadas telefnicas.

Enrutamiento por URI: permite dirigir las llamadas hacia uno u otro dominio segn el nmero
destinatario, en funcin de las reglas asignadas en el archivo de configuracin openser.cfg.

- 174 -

Por ejemplo, podra asignarse un dominio para las llamadas realizadas a dispositivos mviles,
otro dominio para las llamadas realizadas hacia nmeros nacionales, y otro para las llamadas
internacionales. El criterio a usar depender de las necesidades que se tengan.
Si se escoge de la lista desplegable la opcin Enrutamiento por URI, se mostrar la tabla de
los prefijos existentes con sus correspondientes dominios. Adicionalmente, se presentan como links las
opciones EDITAR, AGREGAR y VOLVER AL INICIO.

Figura 4: Enrutamiento por URI

Editar: al hacer click en esta opcin, se observar una pgina similar a la mostrada en
la Figura 5:

- 175 -

Figura 5: Editar Prefijo en el Enrutamiento por el campo URI

Editar un prefijo, consiste en cambiar el dominio actual de un prefijo existente dado, por uno
nuevo. Es necesario que el prefijo que se desea editar se encuentre dentro de la tabla de prefijos, en
caso contrario se mostrar un mensaje de error.

Agregar: si se elige esta opcin, se observar una pantalla como la que se muestra:

- 176 -

Figura 6: Agregar un Prefijo en el Enrutamiento por URI

Muy parecida a la de opcin editar, en este caso se debe introducir un nuevo prefijo con su
correspondiente dominio. Resulta importante sealar que no se puede agregar un prefijo si ste ya
existe en la tabla ya que un mismo prefijo no puede tener dos dominios diferentes, en dicho caso el
dominio no ser agregado, y se mostrar un mensaje de error.

Volver al inicio: como su nombre lo indica, nos permite regresar a la pgina principal.

Enrutamiento por From: permite enrutar las llamadas hacia uno otro dominio en funcin del
usuario que inici la llamada. Esto, de acuerdo a las reglas de enrutamiento establecidas en el archivo
de configuracin de OpenSER.
Por ejemplo, podra asignarse un dominio en especfico a las llamadas realizadas por telfonos
con un determinado cdigo de rea.

- 177 -

Figura 7: Enrutamiento por el campo From

En la pgina principal de enrutamiento por el campo From, se muestra una tabla con los
prefijos y sus correspondientes dominios. Adems se presentan tres links con opciones de EDITAR,
AGREGAR y VOLVER AL INICIO.

Editar: permite modificar el dominio de un prefijo existente en la tabla. Si se hace clic


en esta opcin, observar una pantalla como la siguiente:

- 178 -

Figura 8: Editar Prefijo en el enrutamiento por From

Se deber colocar el prefijo a editar, y el nuevo dominio al cual se enrutarn las llamadas que
presenten dicho prefijo numrico.
En caso de que el prefijo no se encuentre en la tabla, se mostrar un mensaje de error.

Agregar: permite agregar un nuevo prefijo para el enrutamiento por el campo From,
con su correspondiente dominio a la tabla prefix2domain.

- 179 -

Figura 9: Agregar Prefijo en el enrutamiento por From

Volver al inicio: como su nombre lo indica, nos permite regresar a la pgina principal.

Enrutamiento por To: muy similar al enrutamiento por URI, las reglas de enrutamiento se
hacen en funcin del parmetro To del mensaje INVITE.

- 180 -

Figura 10: Enrutamiento por el campo To

Similar a las tablas correspondientes a los enrutamientos anteriores, se muestra una tabla con
los prefijos y sus respectivos dominios para el enrutamiento en funcin del campo To del INVITE.
Tambin se presentan los links para EDITAR y AGREGAR prefijos en la tabla, as como para VOLVER
AL INICIO.

Editar: si se desea modificar el dominio de un prefijo existente en la tabla de


enrutamiento en funcin del campo To.

- 181 -

Figura 11: Editar Prefijo en el enrutamiento por To

Agregar: permite aadir un nuevo prefijo, con su correspondiente dominio, al


enrutamiento en funcin del campo To. En caso de que el prefijo que de desee agregar ya
se encuentre en la tabla, se mostrar un mensaje de error.

- 182 -

Figura 12: Agregar Prefijo en el enrutamiento por To

Volver al inicio: como su nombre lo indica, nos permite regresar a la pgina principal.

Enrutamiento por Hora: permite dirigir las llamadas, en un determinado rango de hora hacia un
dominio en especfico, en funcin de las necesidades que se tengan. Con esta opcin, al igual que en
los casos anteriores, se mostrar una tabla que contiene los prefijos y sus dominios para este tipo de
enrutamiento.

- 183 -

Figura 13: Enrutamiento por el campo Hora

Editar: esta opcin sirve para modificar el dominio y/o el rango de horas entre las
cuales estar activo el enrutamiento de las llamadas de un prefijo ya existente en la tabla.

- 184 -

Figura 14: Editar Prefijo en el enrutamiento por Hora

Agregar: permite aadir un nuevo prefijo para realizar enrutamientos de llamadas en


funcin de la hora.

- 185 -

Figura 15: Agregar Prefijo en el enrutamiento por Hora

Enrutamiento por Reparticin de Carga: permite enrutar las llamadas en funcin del ltimo
dgito del nmero llamado. Esto puede justificarse ya que por ejemplo, hay servidores que en horas
pico no tienen la capacidad para manejar completamente el trfico sino que es necesario repartir el
mismo hacia dos o ms dominios.

- 186 -

Figura 16: Enrutamiento por Comparticin de Carga

Editar: esta opcin sirve para modificar un prefijo existente, o cambiar el dominio
hacia el cual se enrutarn las llamadas.

- 187 -

Figura 17: Editar Prefijo en el Enrutamiento por Comparticin de Carga

Agregar: esta opcin, al igual que como se explic en los enrutamientos anteriores,
permite agregar nuevos prefijos para realizar enrutamientos mediante reparticin de carga.

- 188 -

Figura 18: Agregar Prefijo en el Enrutamiento por Comparticin de Carga

volver al inicio: permite regresar a la pgina principal de enrutamiento.

- 189 -

3. Mantenimiento y modificaciones en la pgina web


La pgina web de la aplicacin se encuentra montada en el servidor con IP 161.196.58.48 en la
ruta /var/www/html. La misma se encuentra formada por los archivos que se listan a continuacin

Agregar_openser.php

Editar_prefijo_to_html.php

Agregar_prefijo_carga.php

Editar_prefijo_uri.php

Agregar_prefijo_carga_html.php

Editar_prefijo_uri_html.php

Agregar_prefijo_from.php

Enrutamiento_ppal.php

Agregar_prefijo_from_html.php

Frames.php

Agregar_prefijo_hora.php

Indice.html

Agregar_prefijo_hora_html.php

Modificar_openser.php

Agregar_prefijo_to.php

Mostrar_prefijos_CARGA.php

Agregar_prefijo_to_html.php

Mostrar_prefijos_FROM.php

Agregar_prefijo_uri.php

Mostrar_prefijos_HORA.php

Agregar_prefijo_uri_html.php

Mostrar_prefijos_TO.php

Editar_prefijo_carga.php

Mostrar_prefijos_URI.php

Editar_prefijo_carga_html.php

Pagina_inicio.php

Editar_prefijo_from.php

LoginSW.php

Editar_prefijo_from_html.php

ProblemconnSW.php

Editar_prefijo_hora.php

UserhandlerSW.php

Editar_prefijo_hora_html.php

ValidateSW.php

Editar_prefijo_to.php

Si se desea colocar la pgina web en un servidor con una direccin IP diferente, en principio
ser necesario modificar en los archivos que se indican a continuacin la correspondiente direccin IP
para lograr el establecimiento de la conexin con la base de datos:
ProblemconnSW.php
Mediante este archivo se establece la conexin con la base de datos. En l se especifica el host,
la base de datos, el usuario su correspondiente contrasea.

LoginSW.php
Este archivo consiste en un formulario en el cual se recoge el nombre de usuario y contrasea,
las cuales son posteriormente pasadas a otro archivo php que se encargar de realizar la validacin y
por ende, permitir o denegar el acceso a la aplicacin web.

- 190 -

ValidateSW.php
Se encarga de corroborar los datos introducidos por el usuario. En caso de que el ingreso sea
exitoso, se le permite el acceso al usuario a la pgina principal.
Por motivos de seguridad, se utilizan las cookies. Una cookie es una porcin de informacin que
se guarda en el navegador permitiendo identificar el mismo por cierto intervalo de tiempo, estando la
informacin disponible entre varias pginas del mismo sitio.
La asignacin de la cookie se hace desde la funcin setcookie(). Esta funcin enva una cookie,
pero lo hace junto a la cabecera de la pgina, por esto es muy importante enviar las cookies antes de
mandar a imprimir cualquier cosa en la pgina, es decir si hay que enviar una cookie, para que no
genere error de cabeceras hay que enviarla antes de enviar cualquier echo u otro tipo de salida.
Userhandler.php
Mediante el archivo validateSW.php, el usuario ya tiene las cookies en su sistema. Sin embargo,
es necesario comprobar en las pginas que se desee, si el login es correcto, que el usuario adems
posee las cookies y que stas son vlidas. Para ello se crea este archivo, el cual se encarga de leer las
cookies y decir si es un usuario registrado y que ha hecho el respectivo ingreso al sistema.
Pagina_inicio.php
Es la pgina principal de la aplicacin web. En ella el administrador puede elegir que actividad
desea llevar a cabo.
Modificar Archivo de configuracin
Cambiar prefijos de enrutamiento
Frames.php
Como su nombre lo indica, consiste en una divisin de la pantalla del navegador en dos cuadros
que muestran contenidos de indice.html y modificar_openser.php
Modificar_openser.php
Mediante este archivo se hace bsicamente una lectura al archivo de configuracin de openser,
guardndolo en un archivo de extensin .txt para su posterior uso.
Adems, aqu se genera la lista desplegable con las diferentes opciones de cdigo a insertar en
el archivo de configuracin de OpenSER.

Agregar_openser.php
Se encarga de crear los puntos de insercin para los mdulos, parmetros, rutas y cada regla de
enrutamiento con el fin de lograr incluir de forma exitosa el cdigo en el archivo de configuracin de
openser.

- 191 -

Un punto de insercin es una clase de identificador o marca de una lnea especfica de un


cdigo. De esta forma, los puntos de insercin pueden por ejemplo ser reemplazados por cierto
cdigo.
A continuacin se muestran los puntos de insercin para cada una de las opciones existentes:
Opciones:
Insertar mdulo: #INSERTE MODULO NUEVO AQUI
Insertar parmetro: #INSERTE PARAMETRO NUEVO AQUI
Insertar Regla de Enrutamiento por Uri: #INSERTE REGLA DE ENRUTAMIENTO POR URI AQUI
Insertar Regla de Enrutamiento por From: #INSERTE REGLA DE ENRUTAMIENTO POR FROM AQUI
Insertar Regla de Enrutamiento por To: #INSERTE REGLA DE ENRUTAMIENTO POR TO AQUI
Insertar Regla de Enrutamiento por Hora: #INSERTE REGLA DE ENRUTAMIENTO POR HORA AQUI
Insertar Regla de Enrutamiento por Reparticin de Carga: #INSERTE REGLA DE ENRUTAMIENTO
POR CARGA AQUI

Insertar Ruta: #INSERTE RUTA AQUI

Bsicamente se define de acuerdo a la opcin escogida, el punto de insercin correspondiente, y


posteriormente se hace una concatenacin del mismo con el cdigo enviado por el administrador va
Web.
Esto con la finalidad de que el punto de insercin sea reemplazado por el cdigo + el punto de
insercin. De esta forma el punto de insercin siempre estar presente.
Al irrumpir los computadores en el mundo el gran problema estaba era en el espacio de
almacenamiento, era necesario maximizarlo lo ms que se pudiera, fue por ello que la gente de Unix
decidi utilizar dos caracteres para el fin de lnea.
La consecuencia de esta estandarizacin es que cada vez que se trabaja con un archivo que fue
creado en otro sistema operativo (que no sea Windows) se producen problemas con el fin de lnea.
Adems resulta importante sealar que es necesario hacer un manejo del retorno del carro.
Para poder agregar cdigo en el archivo de configuracin, es necesario hacer una lectura del
archivo de configuracin de openser (openser.cfg), realizar las respectivas modificaciones desde la
pgina web, y posteriormente pulsar el botn Enviar, con lo que los cambios se habrn llevado a cabo.
Sin embargo, cuando se hace eso, aparece al final de cada lnea (de la codificacin que se agreg va
web) el caracter ^M:

Figura 19: Retorno del carro

- 192 -

Es por ello que se procede a guardar el archivo de configuracin modificado en un nuevo


archivo y luego se ejecuta el comando:
System(tr -d '\015' < input_file > output_file)
Enrutamiento_ppal.php
Como su nombre lo indica, es la pgina principal de enrutamiento.
En ella se muestran a travs de una lista desplegable las diferentes opciones de enrutamiento
que se tienen establecidas. Por lo tanto, si se desea agregar una nueva funcionalidad a la pgina web,
muy probablemente deba aadirse a la lista desplegable donde se encuentran el resto de las opciones.

Ac deber agregarse la
nueva opcin
Figura 20: Lista desplegable de los tipos de enrutamiento

Agregar_prefijo_Xphp
Esta explicacin aplica para todos los tipos de enrutamiento (URI, FROM, TO, hora, Reparticin
de Carga) es por ello que se ha puesto la letra x como un genrico a todos los tipos de enrutamiento.
Como su nombre lo indica, este programa establece una conexin en la base de datos e inserta
en la tabla prefix_domain el prefijo con su correspondiente dominio, as como el tipo de
enrutamiento al cual pertenece el mismo.

Agregar_prefijo_x_html.php
Esta explicacin aplica para todos los tipos de enrutamiento (URI, FROM, TO, hora, Reparticin
de Carga) es por ello que se ha puesto la letra x como un genrico a todos los tipos de enrutamiento.
Muestra una caja de texto (ver Figuras 6, 9, 12, 15, y 18) en ellas el administrador deber
introducir el prefijo a aadir con su correspondiente dominio. Los datos recopilados en este formulario
se entregan a su correspondiente archivo Agregar_prefijo_x.php.

Agregar_prefijo_URI_html.php

Agregar_prefijo_URI.php

- 193 Agregar_prefijo_FROM_html.php Agregar_prefijo_FROM.php


Agregar_prefijo_TO_html.php

Agregar_prefijo_TO.php

Agregar_prefijo_hora_html.php

Agregar_prefijo_hora.php

Agregar_prefijo_carga_html.php Agregar_prefijo_carga.php
Editar_prefijo_x.php
Por su parte, y como su nombre lo indica, este programa se encarga de editar o modificar el
dominio para un prefijo en especfico, esto lo hace estableciendo una conexin con la base de datos y
editando en la tabla prefix_domain el dominio para el prefijo insertado por el administrador va
web .
Editar_prefijo_x_html.php
De forma similar a Agregar_prefijo_x_html.php, establece una caja de texto (Ver Figuras 5, 8,
11, 14, 17), en ellas el administrador introduce el prefijo y el nuevo dominio al cual se enrutarn las
llamadas cuando se reciban llamadas con dicho prefijo numrico.
Los datos recopilados en este formulario se entregan a su correspondiente archivo
Editar_prefijo_x.php.
Editar_prefijo_URI_html.php

Editar_prefijo_URI.php

Editar_prefijo_FROM_html.php

Editar_prefijo_FROM.php

Editar_prefijo_TO_html.php

Editar_prefijo_TO.php

Editar_prefijo_hora_html.php

Editar_prefijo_hora.php

Editar_prefijo_carga_html.php

Editar_prefijo_carga.php

ndice.html
Contiene links a documentos que sirven de ayuda al administrador web.
En caso de que se desee agregar nueva informacin a la pgina, ser necesario incluir la misma
en la ruta /var/www/html al igual que todos los archivos que conforman la pgina web.

Figura 21: ndice de links

- 194 -

Para agregar un nuevo link siguiendo el esquema desarrollado hasta ahora, ser necesario
agregar una lnea de cdigo como la mostrada a continuacin. En ella debe especificarse el archivo as
como el link con el cual se desea aparezca en la pgina web.
<tr><td height=27><a ref. nombre_del_archivo target=_blank><p align=center class= style2 style5>
Nombre_del_link </p></td></tr>

Mostrar_prefijos_x.php
Esta explicacin aplica para todos los tipos de enrutamiento (URI, FROM, TO, hora, Reparticin
de Carga) es por ello que se ha puesto la letra x como un genrico a todos los tipos de enrutamiento.
Este archivo hace una conexin con la base de datos de openser, y recupera de la misma todos
los prefijos con sus correspondientes dominios para el tipo de enrutamiento seleccionado y luego los
muestra en forma tabulada. Los datos recopilados se entregan a su correspondiente archivo
Mostrar_prefijos_x_html.php con el fin de hacer una tabla dinmica en la que se muestren los prefijos.
Mostrar_prefijo_URI_html.php

Mostrar_prefijo_URI.php

Mostrar_prefijo_FROM_html.php Mostrar_prefijo_FROM.php
Mostrar_prefijo_TO_html.php

Mostrar_prefijo_TO.php

Mostrar_prefijo_hora_html.php

Mostrar_prefijo_hora.php

Mostrar_prefijo_carga_html.php Mostrar_prefijo_carga.php
Adems en ella se encuentran los links hacia las otras pginas que ofrecen el resto de
funcionalidades en lo que respecta al manejo de los prefijos para los enrutamientos.
Al igual que en la pgina explicada anteriormente, si se desea agregar una nueva funcionalidad
referente al manejo de los prefijos debe seguirse la misma sintaxis.

Mostrar_prefijos_x_html.php
Es la interfaz donde se le muestra al administrador, para cada enrutamiento, una tabla con los
prefijos y su correspondiente dominio, as como los links hacia las pginas que permiten bien sea
agregar o modificar un prefijo para esa clase de enrutamiento.

4. FAQ

1. Por qu no puedo agregar un prefijo si ste no se encuentra en la tabla?


Esto se debe a que el prefijo que se intenta agregar ya esta siendo usado en alguno de los otros
tipos de enrutamiento. Verifique si esto es asi, y elja un prefijo que no est siendo usado en ningn
otro enrutamiento.

2. Por qu no puedo acceder al ftp con mi usuario root?

- 195 -

Probablemente este problema se debe a que cuando se realiz el proceso de instalacin del
programa se obvi eliminar el usuario root de la lista de usuarios que no tienen permitido el acceso a
ftp.
Para esto, dirjase a la ruta /etc/vsftpd con el siguiente comando:
cd /etc/vsftpd
Edite el archivo user_list: vi user_list
All saldr una lista de usuarios, elimine de ella el usuario con el cual est accediendo al ftp,
guarde los cambios: esc : wq! Y posteriormente proceda a reiniciar el servicio ftp para que sus
cambios tomen efecto. Para ello ejecute la instruccin: service ./vsftpd restart

3. Por qu no tengo acceso a mi base de datos?


Si se tiene un error como el que se muestra a continuacin:
Error:
PHP Fatal error: Call to undefined function mysql_connect() in /var/www/html/..
Este error se debe a que al momento de la instalacin se olvid instalar el conector entre la base de datos y mysql. Para
esto, ejecute el siguiente comando en la consola:
yum install php-mysql

4. Por qu no puedo acceder a la pgina web?


El problema puede deberse a que reinici el servidor, y no el servicio httpd.
Para esto ejecute el siguiente comando: service ./httpd restart

5. por qu se deben colocar los archivos en la ruta /var/www/html?


Esto ya que es el DocumentRoot predeterminado, que es el directorio raz del servidor Web que
contiene la mayora de los ficheros HTML que se entregarn en respuesta a peticiones.
Por

ejemplo, el

servidor

puede

recibir

una

peticin para

el

siguiente

documento:

http://dominio/index.html
El servidor buscar el fichero en el siguiente directorio por defecto:
/var/www/html/foo.html

6. Qu debo modificar si se coloca la pgina web en un servidor con una direccin IP distinta a
la 161.196.58.48?
Todos los archivos que se listan a continuacin presentan en al menos una lnea de cdigo un
redireccionamiento a otra pgina web, es por ello que ser necesario sustituir la direccin en caso de
que la aplicacin web se monte en un servidor con direccin IP distinta.

- 196 -

Por ejemplo: supongamos que ahora la direccin IP del servidor en que se va a montar la
aplicacin web es: 161.158.70.54
Para un archivo en el cual aparezca un redireccionamiento como el mostrado:
<meta http-equiv="refresh" content="4; URL=http://161.196.58.48/editar_prefijo_carga.php">
Ser necesario sustituir la URL por la nueva direccin:
<meta http-equiv="refresh" content="4; URL=http://161.158.70.54/editar_prefijo_carga.php">
A continuacin se lista un grupo de archivos que conforman la aplicacin web. En los mismos se
debern modificar las correspondientes URL en funcin de la nueva direccin IP que se tenga.

agregar_prefijo_carga.php

agregar_prefijo_from.php

agregar_prefijo_hora.php

agregar_prefijo_to.php

agregar_prefijo_uri.php

agregar_prefijo_.php

decisin_inicio.php

editar_prefijo_carga.php

editar_prefijo_from.php

editar_prefijo_hora.php

editar_prefijo_to.php

editar_prefijo_uri.php

modificar_openser.php

mostrar_prefijos_carga.php

mostrar_prefijos_from.php

mostrar_prefijos_hora.php

mostrar_prefijos_to.php

mostrar_prefijos_uri.php

toma_decisin.php

7. Qu se debe hacer si se desea cambiar el nombre de alguno de los archivos que conforman la
aplicacin web?
Como se sabe, una aplicacin web tpicamente est formada por un conjunto de archivos que se
llaman unos a otros en funcin de la estructura de programacin que se haya realizado. Debido a esto,
internamente en la programacin, es usual que un

El archivo
agregar_prefijo_carga_html.php
hace uso de
agregar_prefijo_carga.php

En la figura anterior se muestra un ejemplo de ello. Si el archivo agregar_prefijo_carga.php cambia de


nombre y ste no se modifica en el archivo agregar_prefijo_carga_html.php se tendr error y las
modificaciones no se llevarn a cabo en la base de datos.

- 198 -

Es por ello que resulta necesario siempre q se cambie el nombre de alguno de los archivos, realizar los
cambios correspondientes en el resto.

ANEXO 3. Trazas de una llamada desde un telfono IP hacia un telfono en la PSTN


conlgando ste.
interface: eth0 (161.196.58.0/255.255.255.0)
filter: (ip) and ( port 5060 )
#
U 161.196.168.122:9375 -> 161.196.58.48:5060
INVITE sip:02125001824@161.196.58.48 SIP/2.0..To:
<sip:02125001824@161.196.58.48>..From: 1112<sip:1112@161.196.58.48>;ta
g=7b3f434c..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bK-d87543555568460-1--d87543-;rport..Call-ID: 2e71af224e7
24d51..CSeq: 1 INVITE..Contact: <sip:1112@161.196.168.122:9375>..MaxForwards: 70..Allow: INVITE, ACK, CANCEL, OPTIONS,
BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO..Content-Type:
application/sdp..User-Agent: eyeBeam release 3006o stamp 175
51..Content-Length: 246....v=0..o=- 13437707 13437740 IN IP4
161.196.168.122..s=eyeBeam..c=IN IP4 161.196.168.122..t=0 0
..m=audio 9728 RTP/AVP 8 0 3 18 101..a=alt:1 1 : 25FE3DE2 000000AD
161.196.168.122 9728..a=fmtp:101 0-15..a=rtpmap:101 t
elephone-event/8000..a=sendrecv..
#
U 161.196.58.48:5060 -> 161.196.168.122:9375
SIP/2.0 100 trying -- your call is important to us..To:
<sip:02125001824@161.196.58.48>..From: 1112<sip:1112@161.196.58.
48>;tag=7b3f434c..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bKd87543-555568460-1--d87543-;rport=9375..Call-ID:
2e71af224e724d51..CSeq: 1 INVITE..Date: Thu, 04 Jan 2007 15:47:43
GMT..Date: Thu, 04 Jan 2007 15:47:43 GMT..Server: Open
Ser (1.0.0 (i386/linux))..Content-Length: 0..Warning: 392
161.196.58.48:5060 "Noisy feedback tells: pid=21961 req_src_i
p=161.196.168.122 req_src_port=9375 in_uri=sip:02125001824@161.196.58.48
out_uri=sip:702125001824@161.196.58.47 via_cnt=
=1"....
#
U 161.196.58.48:5060 -> 161.196.58.47:5060
INVITE sip:702125001824@161.196.58.47 SIP/2.0..To:
<sip:02125001824@161.196.58.48>..From: 1112<sip:1112@161.196.58.48>;t
ag=7b3f434c..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bKa0fe.6bb463a.0..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=z
9hG4bK-d87543-555568460-1--d87543-;rport=9375..Call-ID:
2e71af224e724d51..CSeq: 1 INVITE..Contact: <sip:1112@161.196.168
.122:9375>..Max-Forwards: 69..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE,
REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO..Content
-Type: application/sdp..User-Agent: eyeBeam release 3006o stamp
17551..Content-Length: 246....v=0..o=- 13437707 13437740
IN IP4 161.196.168.122..s=eyeBeam..c=IN IP4 161.196.168.122..t=0
0..m=audio 9728 RTP/AVP 8 0 3 18 101..a=alt:1 1 : 25FE
3DE2 000000AD 161.196.168.122 9728..a=fmtp:101 0-15..a=rtpmap:101
telephone-event/8000..a=sendrecv..
#
U 161.196.58.47:5060 -> 161.196.58.48:5060
SIP/2.0 100 Trying..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bKa0fe.6bb463a.0;received=161.196.58.48..Via:
SIP/2.0/UDP

- 200 -

161.196.168.122:9375;branch=z9hG4bK-d87543-555568460-1--d87543;rport=9375..From: 1112<sip:1112@161.196.58.48>;tag=7b3f
434c..To: <sip:02125001824@161.196.58.48>..Call-ID:
2e71af224e724d51..CSeq: 1 INVITE..User-Agent: Asterisk PBX..Allow: I
NVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY..Contact:
<sip:702125001824@161.196.58.47>..Content-Length: 0
....
#
U 161.196.58.47:5060 -> 200.109.126.164:5060
INVITE sip:02125001824@sip.ops.cantv.net;user=phone SIP/2.0..Via:
SIP/2.0/UDP 161.196.58.47:5060;branch=z9hG4bK1ce48ce4;
rport..From: "1112"
<sip:2123360502@sipproxy.cantv.net>;tag=as010aa68f..To:
<sip:02125001824@sip.ops.cantv.net;user=phon
e>..Contact: <sip:2123360502@161.196.58.47>..Call-ID:
2145884a7b64b8aa3f63371b1fc076c1@sipproxy.cantv.net..CSeq: 102 INV
ITE..User-Agent: Asterisk PBX..Max-Forwards: 70..Date: Thu, 04 Jan 2007
15:31:03 GMT..Allow: INVITE, ACK, CANCEL, OPTION
S, BYE, REFER, SUBSCRIBE, NOTIFY..Content-Type: application/sdp..ContentLength: 239....v=0..o=root 2793 2793 IN IP4 161
.196.58.47..s=session..c=IN IP4 161.196.58.47..t=0 0..m=audio 5212 RTP/AVP
0 8 101..a=rtpmap:0 PCMU/8000..a=rtpmap:8 PCM
A/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 016..a=silenceSupp:off - - - -..
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 100 Trying..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK1ce48ce4;rport=5060..From: "1112"
<sip:2123360502@
sipproxy.cantv.net>;tag=as010aa68f..To:
<sip:02125001824@sip.ops.cantv.net;user=phone>..Call-ID:
2145884a7b64b8aa3f63371
b1fc076c1@sipproxy.cantv.net..CSeq: 102 INVITE....
#
U 161.196.58.47:5060 -> 200.109.126.164:5060
ACK sip:02125001824@sip.ops.cantv.net;user=phone SIP/2.0..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK1ce48ce4;rpo
rt..From: "1112" <sip:2123360502@sipproxy.cantv.net>;tag=as010aa68f..To:
<sip:02125001824@sip.ops.cantv.net;user=phone>;
tag=1167923394-9031411168826535-21..Contact:
<sip:2123360502@161.196.58.47>..Call-ID: 2145884a7b64b8aa3f63371b1fc076c1@s
ipproxy.cantv.net..CSeq: 102 ACK..User-Agent: Asterisk PBX..Max-Forwards:
70..Content-Length: 0....
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK6a5b643f;rport=5060..From: "1112" <sip:2
123360502@sipproxy.cantv.net>;tag=as010aa68f..To:
<sip:02125001824@sip.ops.cantv.net;user=phone>;tag=1167923394-91326611
68836660-21..Call-ID:
2145884a7b64b8aa3f63371b1fc076c1@sipproxy.cantv.net..CSeq: 103
INVITE..Contact: <sip:02125001824@2
00.109.126.164:5060;transport=udp>..Content-Type:
application/sdp..Content-Length: 210....v=0..o=hiQ9200/CN0/010/052/121
05256520070004114821 171180153 IN IP4 200.109.126.164..s=Phone Call via
hiQ9200 SIPCA..c=IN IP4 200.109.126.164..t=0 0.
.m=audio 35364 RTP/AVP 8..a=rtpmap:8 PCMA/8000..a=sendrecv..

- 201 -

#
U 200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK6a5b643f;rport=5060..From: "1112" <sip:2
123360502@sipproxy.cantv.net>;tag=as010aa68f..To:
<sip:02125001824@sip.ops.cantv.net;user=phone>;tag=1167923394-91326611
68836660-21..Call-ID:
2145884a7b64b8aa3f63371b1fc076c1@sipproxy.cantv.net..CSeq: 103
INVITE..Contact: <sip:02125001824@2
00.109.126.164:5060;transport=udp>..Content-Length: 0....
#
U 161.196.58.47:5060 -> 161.196.58.48:5060
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bKa0fe.6bb463a.0;received=161.196.58.48..Via: S
IP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bK-d87543-555568460-1--d87543;rport=9375..From: 1112<sip:1112@161.196.58.48
>;tag=7b3f434c..To: <sip:02125001824@161.196.58.48>;tag=as390a5302..CallID: 2e71af224e724d51..CSeq: 1 INVITE..User-Agen
t: Asterisk PBX..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
SUBSCRIBE, NOTIFY..Contact: <sip:702125001824@161.196.
58.47>..Content-Type: application/sdp..Content-Length: 239....v=0..o=root
2793 2793 IN IP4 161.196.58.47..s=session..c=I
N IP4 161.196.58.47..t=0 0..m=audio 6010 RTP/AVP 0 8 101..a=rtpmap:0
PCMU/8000..a=rtpmap:8 PCMA/8000..a=rtpmap:101 telep
hone-event/8000..a=fmtp:101 0-16..a=silenceSupp:off - - - -..
#
U 161.196.58.48:5060 -> 161.196.168.122:9375
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=z9hG4bK-d87543-555568460-1--d87543-;rport=937
5..From: 1112<sip:1112@161.196.58.48>;tag=7b3f434c..To:
<sip:02125001824@161.196.58.48>;tag=as390a5302..Call-ID: 2e71af2
24e724d51..CSeq: 1 INVITE..User-Agent: Asterisk PBX..Allow: INVITE, ACK,
CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY.
.Contact: <sip:702125001824@161.196.58.47>..Content-Type:
application/sdp..Content-Length: 239....v=0..o=root 2793 2793
IN IP4 161.196.58.47..s=session..c=IN IP4 161.196.58.47..t=0 0..m=audio
6010 RTP/AVP 0 8 101..a=rtpmap:0 PCMU/8000..a=rt
pmap:8 PCMA/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 016..a=silenceSupp:off - - - -..
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 180 Ringing..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK6a5b643f;rport=5060..From: "1112"
<sip:2123360502
@sipproxy.cantv.net>;tag=as010aa68f..To:
<sip:02125001824@sip.ops.cantv.net;user=phone>;tag=1167923394913266116883666021..Call-ID: 2145884a7b64b8aa3f63371b1fc076c1@sipproxy.cantv.net..CSeq:
103 INVITE..Contact: <sip:02125001824@200.109.12
6.164:5060;transport=udp>..Content-Length: 0....
#
U 161.196.58.47:5060 -> 161.196.58.48:5060
SIP/2.0 180 Ringing..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bKa0fe.6bb463a.0;received=161.196.58.48..Via:
SIP/2.0/UD
P 161.196.168.122:9375;branch=z9hG4bK-d87543-555568460-1--d87543;rport=9375..From: 1112<sip:1112@161.196.58.48>;tag=7b3

- 202 -

f434c..To: <sip:02125001824@161.196.58.48>;tag=as390a5302..Call-ID:
2e71af224e724d51..CSeq: 1 INVITE..User-Agent: Asteri
sk PBX..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
NOTIFY..Contact: <sip:702125001824@161.196.58.47>..C
ontent-Length: 0....
#
U 161.196.58.47:5060 ->161.196.58.48:5060
SIP/2.0 180 Ringing..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK6a5b643f;rport=5060..From: "1112"
<sip:2123360502
@sipproxy.cantv.net>;tag=as010aa68f..To:
<sip:02125001824@sip.ops.cantv.net;user=phone>;tag=1167923394913266116883666021..Call-ID: 2145884a7b64b8aa3f63371b1fc076c1@sipproxy.cantv.net..CSeq:
103 INVITE..Contact: <sip:02125001824@200.109.12
6.164:5060;transport=udp>..Content-Length: 0....
#
U 161.196.58.48:5060 -> 161.196.168.122:9375
SIP/2.0 180 Ringing..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bKd87543-555568460-1--d87543-;rport=9375..From:
1112<sip:1112@161.196.58.48>;tag=7b3f434c..To:
<sip:02125001824@161.196.58.48>;tag=as390a5302..Call-ID: 2e71af224e724d51
..CSeq: 1 INVITE..User-Agent: Asterisk PBX..Allow: INVITE, ACK, CANCEL,
OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY..Contact:
<sip:702125001824@161.196.58.47>..Content-Length: 0....
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK6a5b643f;rport=5060..From: "1112"
<sip:2123360502@sipp
roxy.cantv.net>;tag=as010aa68f..To:
<sip:02125001824@sip.ops.cantv.net;user=phone>;tag=11679233949132661168836660-21..C
all-ID: 2145884a7b64b8aa3f63371b1fc076c1@sipproxy.cantv.net..CSeq: 103
INVITE..Contact: <sip:02125001824@200.109.126.164
:5060;transport=udp>..Allow: REGISTER, INVITE, ACK, BYE, CANCEL, NOTIFY,
REFER..Accept-Language: en; q=0.0..Content-Type
: application/sdp..Content-Length: 210....v=0..o=hiQ9200/CN0/010/052/121
05256520070004114821 171180153 IN IP4 200.109.1
26.164..s=Phone Call via hiQ9200 SIPCA..c=IN IP4 200.109.126.164..t=0
0..m=audio 35364 RTP/AVP 8..a=rtpmap:8 PCMA/8000..
a=sendrecv..
#
U 161.196.58.47:5060 -> 200.109.126.164:5060
ACK sip:02125001824@200.109.126.164:5060;transport=udp SIP/2.0..Via:
SIP/2.0/UDP 161.196.58.47:5060;branch=z9hG4bK5748b2
e1;rport..From: "1112"
<sip:2123360502@sipproxy.cantv.net>;tag=as010aa68f..To:
<sip:02125001824@sip.ops.cantv.net;user=p
hone>;tag=1167923394-9132661168836660-21..Contact:
<sip:2123360502@161.196.58.47>..Call-ID: 2145884a7b64b8aa3f63371b1fc0
76c1@sipproxy.cantv.net..CSeq: 103 ACK..User-Agent: Asterisk PBX..MaxForwards: 70..Content-Length: 0....
#
U 161.196.58.47:5060 -> 161.196.58.48:5060

- 203 -

SIP/2.0 200 OK..Via: SIP/2.0/UDP


161.196.58.48;branch=z9hG4bKa0fe.6bb463a.0;received=161.196.58.48..Via:
SIP/2.0/UDP 161
.196.168.122:9375;branch=z9hG4bK-d87543-555568460-1--d87543;rport=9375..From: 1112<sip:1112@161.196.58.48>;tag=7b3f434c
..To: <sip:02125001824@161.196.58.48>;tag=as390a5302..Call-ID:
2e71af224e724d51..CSeq: 1 INVITE..User-Agent: Asterisk PB
X..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
NOTIFY..Contact: <sip:702125001824@161.196.58.47>..Conten
t-Type: application/sdp..Content-Length: 239....v=0..o=root 2793 2794 IN
IP4 161.196.58.47..s=session..c=IN IP4 161.196.
58.47..t=0 0..m=audio 6010 RTP/AVP 0 8 101..a=rtpmap:0
PCMU/8000..a=rtpmap:8 PCMA/8000..a=rtpmap:101 telephone-event/800
0..a=fmtp:101 0-16..a=silenceSupp:off - - - -..
#
U 161.196.58.48:5060 -> 161.196.168.122:9375
SIP/2.0 200 OK..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bKd87543-555568460-1--d87543-;rport=9375..From: 1112<
sip:1112@161.196.58.48>;tag=7b3f434c..To:
<sip:02125001824@161.196.58.48>;tag=as390a5302..Call-ID:
2e71af224e724d51..CSe
q: 1 INVITE..User-Agent: Asterisk PBX..Allow: INVITE, ACK, CANCEL,
OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY..Contact: <sip
:702125001824@161.196.58.47>..Content-Type: application/sdp..ContentLength: 239....v=0..o=root 2793 2794 IN IP4 161.196
.58.47..s=session..c=IN IP4 161.196.58.47..t=0 0..m=audio 6010 RTP/AVP 0 8
101..a=rtpmap:0 PCMU/8000..a=rtpmap:8 PCMA/80
00..a=rtpmap:101 telephone-event/8000..a=fmtp:101 0-16..a=silenceSupp:off
- - - -..
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
BYE sip:2123360502@161.196.58.47 SIP/2.0..Via: SIP/2.0/UDP
200.109.126.164:5060;branch=z9hG4bKv10cub00cg21fb0iq7s1sd0o02
i82.1..From:
<sip:02125001824@sip.ops.cantv.net;user=phone>;tag=11679233949132661168836660-21..To: "1112" <sip:21233605
02@sipproxy.cantv.net>;tag=as010aa68f..Max-Forwards: 68..CSeq: 205201
BYE..Call-ID: 2145884a7b64b8aa3f63371b1fc076c1@sip
proxy.cantv.net..Content-Length: 0..Accept-Language: en; q=0.0....
#
U 161.196.58.47:5060 -> 200.109.126.164:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP
200.109.126.164:5060;branch=z9hG4bKv10cub00cg21fb0iq7s1sd0o02i82.1;received=
200.109.126
.164..From: <sip:02125001824@sip.ops.cantv.net;user=phone>;tag=11679233949132661168836660-21..To: "1112" <sip:212336050
2@sipproxy.cantv.net>;tag=as010aa68f..Call-ID:
2145884a7b64b8aa3f63371b1fc076c1@sipproxy.cantv.net..CSeq: 205201 BYE..Us
er-Agent: Asterisk PBX..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
SUBSCRIBE, NOTIFY..Contact: <sip:2123360502@161
.196.58.47>..Content-Length: 0..X-Asterisk-HangupCause: Normal
Clearing....
#
U 161.196.58.47:5060 -> 161.196.168.122:9375
BYE sip:1112@161.196.168.122:9375 SIP/2.0..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK7b00404a;rport..From: <sip:

- 204 -

02125001824@161.196.58.48>;tag=as390a5302..To:
1112<sip:1112@161.196.58.48>;tag=7b3f434c..Contact: <sip:702125001824@161
.196.58.47>..Call-ID: 2e71af224e724d51..CSeq: 102 BYE..User-Agent:
Asterisk PBX..Max-Forwards: 70..Content-Length: 0....
#
U 161.196.168.122:9375 -> 161.196.58.47:5060
SIP/2.0 200 OK..To: 1112<sip:1112@161.196.58.48>;tag=7b3f434c..From:
<sip:02125001824@161.196.58.48>;tag=as390a5302..Via
: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK7b00404a;rport=5060;received=161.196.58.47.
.Call-ID: 2e71af224e724d51..CS
eq: 102 BYE..Contact: <sip:1112@161.196.168.122:9375>..Content-Length:
0....

ANEXO 4. Trazas de una llamada desde un telfono IP, colgando ste, hacia un telfono en
la PSTN.

interface: eth0 (161.196.58.0/255.255.255.0)


filter: (ip) and ( port 5060 )
#
161.196.168.122:9375 -> 161.196.58.48:5060
INVITE sip:02125001824@161.196.58.48 SIP/2.0..To:
<sip:02125001824@161.196.58.48>..From: 1112<sip:1112@161.196.58.48>;ta
g=e159c21f..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bK-d87543497890199-1--d87543-;rport..Call-ID: 6b3730519b0
fb428..CSeq: 1 INVITE..Contact: <sip:1112@161.196.168.122:9375>..MaxForwards: 70..Allow: INVITE, ACK, CANCEL, OPTIONS,
BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO..Content-Type:
application/sdp..User-Agent: eyeBeam release 3006o stamp 175
51..Content-Length: 246....v=0..o=- 13555960 13556074 IN IP4
161.196.168.122..s=eyeBeam..c=IN IP4 161.196.168.122..t=0 0
..m=audio 9728 RTP/AVP 8 0 3 18 101..a=alt:1 1 : B2233825 000000E8
161.196.168.122 9728..a=fmtp:101 0-15..a=rtpmap:101 t
elephone-event/8000..a=sendrecv..
#
161.196.58.48:5060 -> 161.196.168.122:9375
SIP/2.0 100 trying -- your call is important to us..To:
<sip:02125001824@161.196.58.48>..From: 1112<sip:1112@161.196.58.
48>;tag=e159c21f..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bKd87543-497890199-1--d87543-;rport=9375..Call-ID:
6b3730519b0fb428..CSeq: 1 INVITE..Date: Thu, 04 Jan 2007 15:49:42
GMT..Date: Thu, 04 Jan 2007 15:49:42 GMT..Server: Open
Ser (1.0.0 (i386/linux))..Content-Length: 0..Warning: 392
161.196.58.48:5060 "Noisy feedback tells: pid=21962 req_src_i
p=161.196.168.122 req_src_port=9375 in_uri=sip:02125001824@161.196.58.48
out_uri=sip:702125001824@161.196.58.47 via_cnt=
=1"....
#
161.196.58.48:5060 -> 161.196.58.47:5060
INVITE sip:702125001824@161.196.58.47 SIP/2.0..To:
<sip:02125001824@161.196.58.48>..From: 1112<sip:1112@161.196.58.48>;t
ag=e159c21f..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bK513c.c8b42013.0..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=
z9hG4bK-d87543-497890199-1--d87543-;rport=9375..Call-ID:
6b3730519b0fb428..CSeq: 1 INVITE..Contact: <sip:1112@161.196.16
8.122:9375>..Max-Forwards: 69..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE,
REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO..Conten
t-Type: application/sdp..User-Agent: eyeBeam release 3006o stamp
17551..Content-Length: 246....v=0..o=- 13555960 1355607
4 IN IP4 161.196.168.122..s=eyeBeam..c=IN IP4 161.196.168.122..t=0
0..m=audio 9728 RTP/AVP 8 0 3 18 101..a=alt:1 1 : B22
33825 000000E8 161.196.168.122 9728..a=fmtp:101 0-15..a=rtpmap:101
telephone-event/8000..a=sendrecv..
#
161.196.58.47:5060 -> 161.196.58.48:5060

- 206 -

SIP/2.0 100 Trying..Via: SIP/2.0/UDP


161.196.58.48;branch=z9hG4bK513c.c8b42013.0;received=161.196.58.48..Via:
SIP/2.0/UD
P 161.196.168.122:9375;branch=z9hG4bK-d87543-497890199-1--d87543;rport=9375..From: 1112<sip:1112@161.196.58.48>;tag=e15
9c21f..To: <sip:02125001824@161.196.58.48>..Call-ID:
6b3730519b0fb428..CSeq: 1 INVITE..User-Agent: Asterisk PBX..Allow:
INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY..Contact:
<sip:702125001824@161.196.58.47>..Content-Length:
0....
#
161.196.58.47:5060 -> 200.109.126.164:5060
INVITE sip:02125001824@sip.ops.cantv.net;user=phone SIP/2.0..Via:
SIP/2.0/UDP 161.196.58.47:5060;branch=z9hG4bK5dfdde07;
rport..From: "1112"
<sip:2123360502@sipproxy.cantv.net>;tag=as1d25fc2e..To:
<sip:02125001824@sip.ops.cantv.net;user=phon
e>..Contact: <sip:2123360502@161.196.58.47>..Call-ID:
32316029369155616999758024d114c7@sipproxy.cantv.net..CSeq: 102 INV
ITE..User-Agent: Asterisk PBX..Max-Forwards: 70..Date: Thu, 04 Jan 2007
15:33:01 GMT..Allow: INVITE, ACK, CANCEL, OPTION
S, BYE, REFER, SUBSCRIBE, NOTIFY..Content-Type: application/sdp..ContentLength: 239....v=0..o=root 2793 2793 IN IP4 161
.196.58.47..s=session..c=IN IP4 161.196.58.47..t=0 0..m=audio 9336 RTP/AVP
0 8 101..a=rtpmap:0 PCMU/8000..a=rtpmap:8 PCM
A/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 016..a=silenceSupp:off - - - -..
#
200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 100 Trying..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK5dfdde07;rport=5060..From: "1112"
<sip:2123360502@
sipproxy.cantv.net>;tag=as1d25fc2e..To:
<sip:02125001824@sip.ops.cantv.net;user=phone>..Call-ID:
32316029369155616999758
024d114c7@sipproxy.cantv.net..CSeq: 102 INVITE....
#
200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK40ad24d3;rport=5060..From: "1112" <sip:2
123360502@sipproxy.cantv.net>;tag=as1d25fc2e..To:
<sip:02125001824@sip.ops.cantv.net;user=phone>;tag=1167923513-23146111
68154974-21..Call-ID:
32316029369155616999758024d114c7@sipproxy.cantv.net..CSeq: 103
INVITE..Contact: <sip:02125001824@2
00.109.126.164:5060;transport=udp>..Content-Type:
application/sdp..Content-Length: 210....v=0..o=hiQ9200/CN0/010/052/120
05256620070004115019 171180152 IN IP4 200.109.126.164..s=Phone Call via
hiQ9200 SIPCA..c=IN IP4 200.109.126.164..t=0 0.
.m=audio 35374 RTP/AVP 8..a=rtpmap:8 PCMA/8000..a=sendrecv..
#
200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK40ad24d3;rport=5060..From: "1112" <sip:2
123360502@sipproxy.cantv.net>;tag=as1d25fc2e..To:
<sip:02125001824@sip.ops.cantv.net;user=phone>;tag=1167923513-23146111

- 207 -

68154974-21..Call-ID:
32316029369155616999758024d114c7@sipproxy.cantv.net..CSeq: 103
INVITE..Contact: <sip:02125001824@2
00.109.126.164:5060;transport=udp>..Content-Length: 0....
#
161.196.58.47:5060 -> 161.196.58.48:5060
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bK513c.c8b42013.0;received=161.196.58.48..Via:
SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bK-d87543-497890199-1-d87543-;rport=9375..From: 1112<sip:1112@161.196.58.4
8>;tag=e159c21f..To: <sip:02125001824@161.196.58.48>;tag=as02b47578..CallID: 6b3730519b0fb428..CSeq: 1 INVITE..User-Age
nt: Asterisk PBX..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
SUBSCRIBE, NOTIFY..Contact: <sip:702125001824@161.196
.58.47>..Content-Type: application/sdp..Content-Length: 239....v=0..o=root
2793 2793 IN IP4 161.196.58.47..s=session..c=
IN IP4 161.196.58.47..t=0 0..m=audio 7460 RTP/AVP 0 8 101..a=rtpmap:0
PCMU/8000..a=rtpmap:8 PCMA/8000..a=rtpmap:101 tele
phone-event/8000..a=fmtp:101 0-16..a=silenceSupp:off - - - -..
#
161.196.58.48:5060 -> 161.196.168.122:9375
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=z9hG4bK-d87543-497890199-1--d87543-;rport=937
5..From: 1112<sip:1112@161.196.58.48>;tag=e159c21f..To:
<sip:02125001824@161.196.58.48>;tag=as02b47578..Call-ID: 6b37305
19b0fb428..CSeq: 1 INVITE..User-Agent: Asterisk PBX..Allow: INVITE, ACK,
CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY.
.Contact: <sip:702125001824@161.196.58.47>..Content-Type:
application/sdp..Content-Length: 239....v=0..o=root 2793 2793
IN IP4 161.196.58.47..s=session..c=IN IP4 161.196.58.47..t=0 0..m=audio
7460 RTP/AVP 0 8 101..a=rtpmap:0 PCMU/8000..a=rt
pmap:8 PCMA/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 016..a=silenceSupp:off - - - -..
#
200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 180 Ringing..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK40ad24d3;rport=5060..From: "1112"
<sip:2123360502
@sipproxy.cantv.net>;tag=as1d25fc2e..To:
<sip:02125001824@sip.ops.cantv.net;user=phone>;tag=1167923513231461116815497421..Call-ID: 32316029369155616999758024d114c7@sipproxy.cantv.net..CSeq:
103 INVITE..Contact: <sip:02125001824@200.109.12
6.164:5060;transport=udp>..Content-Length: 0....
#
161.196.58.47:5060 -> 161.196.58.48:5060
SIP/2.0 180 Ringing..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bK513c.c8b42013.0;received=161.196.58.48..Via:
SIP/2.0/U
DP 161.196.168.122:9375;branch=z9hG4bK-d87543-497890199-1--d87543;rport=9375..From: 1112<sip:1112@161.196.58.48>;tag=e1
59c21f..To: <sip:02125001824@161.196.58.48>;tag=as02b47578..Call-ID:
6b3730519b0fb428..CSeq: 1 INVITE..User-Agent: Aster
isk PBX..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
NOTIFY..Contact: <sip:702125001824@161.196.58.47>..
Content-Length: 0....
#

- 208 -

161.196.58.48:5060 -> 161.196.168.122:9375


SIP/2.0 180 Ringing..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bKd87543-497890199-1--d87543-;rport=9375..From:
1112<sip:1112@161.196.58.48>;tag=e159c21f..To:
<sip:02125001824@161.196.58.48>;tag=as02b47578..Call-ID: 6b3730519b0fb428
..CSeq: 1 INVITE..User-Agent: Asterisk PBX..Allow: INVITE, ACK, CANCEL,
OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY..Contact:
<sip:702125001824@161.196.58.47>..Content-Length: 0....
#
161.196.58.47:5060 -> 200.109.126.164:5060
ACK sip:02125001824@200.109.126.164:5060;transport=udp SIP/2.0..Via:
SIP/2.0/UDP 161.196.58.47:5060;branch=z9hG4bK424a5e
3e;rport..From: "1112"
<sip:2123360502@sipproxy.cantv.net>;tag=as1d25fc2e..To:
<sip:2125001824@sip.ops.cantv.net;user=p
hone>;tag=1167923513-2314611168154974-21..Contact:
<sip:2123360502@161.196.58.47>..Call-ID: 32316029369155616999758024d1
14c7@sipproxy.cantv.net..CSeq: 103 ACK..User-Agent: Asterisk PBX..MaxForwards: 70..Content-Length: 0....
#
161.196.168.122:9375 -> 161.196.58.47:5060
ACK sip:702125001824@161.196.58.47 SIP/2.0..To:
<sip:02125001824@161.196.58.48>;tag=as02b47578..From: 1112<sip:1112@161.
196.58.48>;tag=e159c21f..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=z9hG4bK-d87543-926500350-1--d87543-;rport..CallID
: 6b3730519b0fb428..CSeq: 1 ACK..Contact:
<sip:1112@161.196.168.122:9375>..Max-Forwards: 70..User-Agent: eyeBeam
release
3006o stamp 17551..Content-Length: 0....
#
161.196.168.122:9375 -> 161.196.58.47:5060
BYE sip:702125001824@161.196.58.47 SIP/2.0..To:
<sip:02125001824@161.196.58.48>;tag=as02b47578..From: 1112<sip:1112@161.
196.58.48>;tag=e159c21f..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=z9hG4bK-d87543-931560588-1--d87543-;rport..CallID
: 6b3730519b0fb428..CSeq: 2 BYE..Contact:
<sip:1112@161.196.168.122:9375>..Max-Forwards: 70..Allow: INVITE, ACK,
CANCEL,
OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO..User-Agent:
eyeBeam release 3006o stamp 17551..Content-Length: 0
....
#
161.196.58.47:5060 -> 161.196.168.122:9375
SIP/2.0 200 OK..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bKd87543-931560588-1--d87543-;received=161.196.168.12
2;rport=9375..From: 1112<sip:1112@161.196.58.48>;tag=e159c21f..To:
<sip:02125001824@161.196.58.48>;tag=as02b47578..CallID: 6b3730519b0fb428..CSeq: 2 BYE..User-Agent: Asterisk PBX..Allow:
INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
NOTIFY..Contact: <sip:702125001824@161.196.58.47>..Content-Length: 0..XAsterisk-HangupCause: Normal Clearing....
#
161.196.58.47:5060 -> 200.109.126.164:5060
BYE sip:02125001824@200.109.126.164:5060;transport=udp SIP/2.0..Via:
SIP/2.0/UDP 161.196.58.47:5060;branch=z9hG4bK54822d

- 209 -

62;rport..From: "1112"
<sip:2123360502@sipproxy.cantv.net>;tag=as1d25fc2e..To:
<sip:02125001824@sip.ops.cantv.net;user=p
hone>;tag=1167923513-2314611168154974-21..Contact:
<sip:2123360502@161.196.58.47>..Call-ID: 32316029369155616999758024d1
14c7@sipproxy.cantv.net..CSeq: 104 BYE..User-Agent: Asterisk PBX..MaxForwards: 70..Authorization: Digest username="2123
360502", realm="sip.ops.cantv.net", algorithm=MD5,
uri="sip:02125001824@200.109.126.164:5060", nonce="3089300540-7373191
f87ba3a5fc82b6820d51b3161", response="3dc319f56609afe793044819aff7dd8d",
opaque="", qop=auth, cnonce="440581e2", nc=0000
0002..Content-Length: 0....
#
200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK54822d62;rport=5060..From: "1112"
<sip:2123360502@sipp
roxy.cantv.net>;tag=as1d25fc2e..To:
<sip:02125001824@sip.ops.cantv.net;user=phone>;tag=11679235132314611168154974-21..C
all-ID: 32316029369155616999758024d114c7@sipproxy.cantv.net..CSeq:

ANEXO 5. Trazas de una llamada desde un telfono IP hacia un telfono celular, colgando
ste.
interface: eth0 (161.196.58.0/255.255.255.0)
filter: (ip) and ( port 5060 )
#
U 161.196.168.122:9375 -> 161.196.58.48:5060
INVITE sip:04168269381@161.196.58.48 SIP/2.0..To:
<sip:04168269381@161.196.58.48>..From: 1112<sip:1112@161.196.58.48>;ta
g=d1774231..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bK-d87543735001294-1--d87543-;rport..Call-ID: e731d418904
2c723..CSeq: 1 INVITE..Contact: <sip:1112@161.196.168.122:9375>..MaxForwards: 70..Allow: INVITE, ACK, CANCEL, OPTIONS,
BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO..Content-Type:
application/sdp..User-Agent: eyeBeam release 3006o stamp 175
51..Content-Length: 244....v=0..o=- 9268981 9269023 IN IP4
161.196.168.122..s=eyeBeam..c=IN IP4 161.196.168.122..t=0 0..
m=audio 9728 RTP/AVP 8 0 3 18 101..a=alt:1 1 : 16B56C63 000000D7
161.196.168.122 9728..a=fmtp:101 0-15..a=rtpmap:101 tel
ephone-event/8000..a=sendrecv..
#
U 161.196.58.48:5060 -> 161.196.168.122:9375
SIP/2.0 100 trying -- your call is important to us..To:
<sip:04168269381@161.196.58.48>..From: 1112<sip:1112@161.196.58.
48>;tag=d1774231..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bKd87543-735001294-1--d87543-;rport=9375..Call-ID:
e731d4189042c723..CSeq: 1 INVITE..Date: Thu, 04 Jan 2007 14:38:14
GMT..Date: Thu, 04 Jan 2007 14:38:14 GMT..Server: Open
Ser (1.0.0 (i386/linux))..Content-Length: 0..Warning: 392
161.196.58.48:5060 "Noisy feedback tells: pid=21963 req_src_i
p=161.196.168.122 req_src_port=9375 in_uri=sip:04168269381@161.196.58.48
out_uri=sip:704168269381@161.196.58.47 via_cnt=
=1"....
#
U 161.196.58.48:5060 -> 161.196.58.47:5060
INVITE sip:704168269381@161.196.58.47 SIP/2.0..To:
<sip:04168269381@161.196.58.48>..From: 1112<sip:1112@161.196.58.48>;t
ag=d1774231..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bKbc78.333fd176.0..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=
z9hG4bK-d87543-735001294-1--d87543-;rport=9375..Call-ID:
e731d4189042c723..CSeq: 1 INVITE..Contact: <sip:1112@161.196.16
8.122:9375>..Max-Forwards: 69..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE,
REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO..Conten
t-Type: application/sdp..User-Agent: eyeBeam release 3006o stamp
17551..Content-Length: 244....v=0..o=- 9268981 9269023
IN IP4 161.196.168.122..s=eyeBeam..c=IN IP4 161.196.168.122..t=0
0..m=audio 9728 RTP/AVP 8 0 3 18 101..a=alt:1 1 : 16B56
C63 000000D7 161.196.168.122 9728..a=fmtp:101 0-15..a=rtpmap:101
telephone-event/8000..a=sendrecv..
#
U 161.196.58.47:5060 -> 161.196.58.48:5060
SIP/2.0 100 Trying..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bKbc78.333fd176.0;received=161.196.58.48..Via:
SIP/2.0/UD

- 211 -

P 161.196.168.122:9375;branch=z9hG4bK-d87543-735001294-1--d87543;rport=9375..From: 1112<sip:1112@161.196.58.48>;tag=d17
74231..To: <sip:04168269381@161.196.58.48>..Call-ID:
e731d4189042c723..CSeq: 1 INVITE..User-Agent: Asterisk PBX..Allow:
INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY..Contact:
<sip:704168269381@161.196.58.47>..Content-Length:
0....
#
U 161.196.58.47:5060 -> 200.109.126.164:5060
INVITE sip:04168269381@sip.ops.cantv.net;user=phone SIP/2.0..Via:
SIP/2.0/UDP 161.196.58.47:5060;branch=z9hG4bK39788cb9;
rport..From: "1112"
<sip:2123360502@sipproxy.cantv.net>;tag=as1ab24c88..To:
<sip:04168269381@sip.ops.cantv.net;user=phon
e>..Contact: <sip:2123360502@161.196.58.47>..Call-ID:
4d686319232c3306250aee9464a2eeae@sipproxy.cantv.net..CSeq: 102 INV
ITE..User-Agent: Asterisk PBX..Max-Forwards: 70..Date: Thu, 04 Jan 2007
14:21:34 GMT..Allow: INVITE, ACK, CANCEL, OPTION
S, BYE, REFER, SUBSCRIBE, NOTIFY..Content-Type: application/sdp..ContentLength: 239....v=0..o=root 2793 2793 IN IP4 161
.196.58.47..s=session..c=IN IP4 161.196.58.47..t=0 0..m=audio 6844 RTP/AVP
0 8 101..a=rtpmap:0 PCMU/8000..a=rtpmap:8 PCM
A/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 016..a=silenceSupp:off - - - -..
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 100 Trying..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK39788cb9;rport=5060..From: "1112"
<sip:2123360502@
sipproxy.cantv.net>;tag=as1ab24c88..To:
<sip:04168269381@sip.ops.cantv.net;user=phone>..Call-ID:
4d686319232c3306250aee9
464a2eeae@sipproxy.cantv.net..CSeq: 102 INVITE....
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK1bbac563;rport=5060..From: "1112" <sip:2
123360502@sipproxy.cantv.net>;tag=as1ab24c88..To:
<sip:04168269381@sip.ops.cantv.net;user=phone>;tag=1167919226-90079411
68820020-21..Call-ID:
4d686319232c3306250aee9464a2eeae@sipproxy.cantv.net..CSeq: 103
INVITE..Contact: <sip:04168269381@2
00.109.126.164:5060;transport=udp>..Content-Type:
application/sdp..Content-Length: 210....v=0..o=hiQ9200/CN0/010/064/125
05251020070004103852 171966589 IN IP4 200.109.126.164..s=Phone Call via
hiQ9200 SIPCA..c=IN IP4 200.109.126.164..t=0 0.
.m=audio 35288 RTP/AVP 8..a=rtpmap:8 PCMA/8000..a=sendrecv..
#
U 161.196.58.47:5060 -> 161.196.58.48:5060
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bKbc78.333fd176.0;received=161.196.58.48..Via:
SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bK-d87543-735001294-1-d87543-;rport=9375..From: 1112<sip:1112@161.196.58.4
8>;tag=d1774231..To: <sip:04168269381@161.196.58.48>;tag=as6ea6ed3e..CallID: e731d4189042c723..CSeq: 1 INVITE..User-Age
nt: Asterisk PBX..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
SUBSCRIBE, NOTIFY..Contact: <sip:704168269381@161.196

- 212 -

.58.47>..Content-Type: application/sdp..Content-Length: 239....v=0..o=root


2793 2793 IN IP4 161.196.58.47..s=session..c=
IN IP4 161.196.58.47..t=0 0..m=audio 7512 RTP/AVP 0 8 101..a=rtpmap:0
PCMU/8000..a=rtpmap:8 PCMA/8000..a=rtpmap:101 tele
phone-event/8000..a=fmtp:101 0-16..a=silenceSupp:off - - - -..
#
U 161.196.58.48:5060 -> 161.196.168.122:9375
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=z9hG4bK-d87543-735001294-1--d87543-;rport=937
5..From: 1112<sip:1112@161.196.58.48>;tag=d1774231..To:
<sip:04168269381@161.196.58.48>;tag=as6ea6ed3e..Call-ID: e731d41
89042c723..CSeq: 1 INVITE..User-Agent: Asterisk PBX..Allow: INVITE, ACK,
CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY.
.Contact: <sip:704168269381@161.196.58.47>..Content-Type:
application/sdp..Content-Length: 239....v=0..o=root 2793 2793
IN IP4 161.196.58.47..s=session..c=IN IP4 161.196.58.47..t=0 0..m=audio
7512 RTP/AVP 0 8 101..a=rtpmap:0 PCMU/8000..a=rt
pmap:8 PCMA/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 016..a=silenceSupp:off - - - -..
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK1bbac563;rport=5060..From: "1112"
<sip:2123360502@sipp
roxy.cantv.net>;tag=as1ab24c88..To:
<sip:04168269381@sip.ops.cantv.net;user=phone>;tag=11679192269007941168820020-21..C
all-ID: 4d686319232c3306250aee9464a2eeae@sipproxy.cantv.net..CSeq: 103
INVITE..Contact: <sip:04168269381@200.109.126.164
:5060;transport=udp>..Allow: REGISTER, INVITE, ACK, BYE, CANCEL, NOTIFY,
REFER..Accept-Language: en; q=0.0..Content-Type
: application/sdp..Content-Length: 210....v=0..o=hiQ9200/CN0/010/064/125
05251020070004103852 171966589 IN IP4 200.109.1
26.164..s=Phone Call via hiQ9200 SIPCA..c=IN IP4 200.109.126.164..t=0
0..m=audio 35288 RTP/AVP 8..a=rtpmap:8 PCMA/8000..
a=sendrecv..
#
U 161.196.58.47:5060 -> 200.109.126.164:5060
ACK sip:04168269381@200.109.126.164:5060;transport=udp SIP/2.0..Via:
SIP/2.0/UDP 161.196.58.47:5060;branch=z9hG4bK3e17ac
9c;rport..From: "1112"
<sip:2123360502@sipproxy.cantv.net>;tag=as1ab24c88..To:
<sip:04168269381@sip.ops.cantv.net;user=p
hone>;tag=1167919226-9007941168820020-21..Contact:
<sip:2123360502@161.196.58.47>..Call-ID: 4d686319232c3306250aee9464a2
eeae@sipproxy.cantv.net..CSeq: 103 ACK..User-Agent: Asterisk PBX..MaxForwards: 70..Content-Length: 0....
#
U 161.196.58.47:5060 -> 161.196.58.48:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bKbc78.333fd176.0;received=161.196.58.48..Via:
SIP/2.0/UDP 16
1.196.168.122:9375;branch=z9hG4bK-d87543-735001294-1--d87543;rport=9375..From: 1112<sip:1112@161.196.58.48>;tag=d177423
1..To: <sip:04168269381@161.196.58.48>;tag=as6ea6ed3e..Call-ID:
e731d4189042c723..CSeq: 1 INVITE..User-Agent: Asterisk P

- 213 -

BX..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,


NOTIFY..Contact: <sip:704168269381@161.196.58.47>..Conte
nt-Type: application/sdp..Content-Length: 239....v=0..o=root 2793 2794 IN
IP4 161.196.58.47..s=session..c=IN IP4 161.196
.58.47..t=0 0..m=audio 7512 RTP/AVP 0 8 101..a=rtpmap:0
PCMU/8000..a=rtpmap:8 PCMA/8000..a=rtpmap:101 telephone-event/80
00..a=fmtp:101 0-16..a=silenceSupp:off - - - -..
#
U 161.196.58.48:5060 -> 161.196.168.122:9375
SIP/2.0 200 OK..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bKd87543-735001294-1--d87543-;rport=9375..From: 1112<
sip:1112@161.196.58.48>;tag=d1774231..To:
<sip:04168269381@161.196.58.48>;tag=as6ea6ed3e..Call-ID:
e731d4189042c723..CSe
q: 1 INVITE..User-Agent: Asterisk PBX..Allow: INVITE, ACK, CANCEL,
OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY..Contact: <sip
:704168269381@161.196.58.47>..Content-Type: application/sdp..ContentLength: 239....v=0..o=root 2793 2794 IN IP4 161.196
.58.47..s=session..c=IN IP4 161.196.58.47..t=0 0..m=audio 7512 RTP/AVP 0 8
101..a=rtpmap:0 PCMU/8000..a=rtpmap:8 PCMA/80
00..a=rtpmap:101 telephone-event/8000..a=fmtp:101 0-16..a=silenceSupp:off
- - - -..
#
U 161.196.168.122:9375 -> 161.196.58.47:5060
ACK sip:704168269381@161.196.58.47 SIP/2.0..To:
<sip:04168269381@161.196.58.48>;tag=as6ea6ed3e..From: 1112<sip:1112@161.
196.58.48>;tag=d1774231..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=z9hG4bK-d87543-807099364-1--d87543-;rport..CallID
: e731d4189042c723..CSeq: 1 ACK..Contact:
<sip:1112@161.196.168.122:9375>..Max-Forwards: 70..User-Agent: eyeBeam
release
3006o stamp 17551..Content-Length: 0....
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
BYE sip:2123360502@161.196.58.47 SIP/2.0..Via: SIP/2.0/UDP
200.109.126.164:5060;branch=z9hG4bKbhf11d00787hjbk0d181sd0o00
ik1.1..From:
<sip:04168269381@sip.ops.cantv.net;user=phone>;tag=11679192269007941168820020-21..To: "1112" <sip:21233605
02@sipproxy.cantv.net>;tag=as1ab24c88..Max-Forwards: 68..CSeq: 204905
BYE..Call-ID: 4d686319232c3306250aee9464a2eeae@sip
proxy.cantv.net..Content-Length: 0..Accept-Language: en; q=0.0....
#
U 161.196.58.47:5060 -> 200.109.126.164:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP
200.109.126.164:5060;branch=z9hG4bKbhf11d00787hjbk0d181sd0o00ik1.1;received=
200.109.126
.164..From: <sip:04168269381@sip.ops.cantv.net;user=phone>;tag=11679192269007941168820020-21..To: "1112" <sip:212336050
2@sipproxy.cantv.net>;tag=as1ab24c88..Call-ID:
4d686319232c3306250aee9464a2eeae@sipproxy.cantv.net..CSeq: 204905 BYE..Us
er-Agent: Asterisk PBX..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
SUBSCRIBE, NOTIFY..Contact: <sip:2123360502@161
.196.58.47>..Content-Length: 0..X-Asterisk-HangupCause: Normal
Clearing....
#

- 214 -

U 161.196.58.47:5060 -> 161.196.168.122:9375


BYE sip:1112@161.196.168.122:9375 SIP/2.0..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK4b8ca203;rport..From: <sip:
04168269381@161.196.58.48>;tag=as6ea6ed3e..To:
1112<sip:1112@161.196.58.48>;tag=d1774231..Contact: <sip:704168269381@161
.196.58.47>..Call-ID: e731d4189042c723..CSeq: 102 BYE..User-Agent:
Asterisk PBX..Max-Forwards: 70..Content-Length: 0....
#
U 161.196.168.122:9375 -> 161.196.58.47:5060
SIP/2.0 200 OK..To: 1112<sip:1112@161.196.58.48>;tag=d1774231..From:
<sip:04168269381@161.196.58.48>;tag=as6ea6ed3e..Via
: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK4b8ca203;rport=5060;received=161.196.58.47.
.Call-ID: e731d4189042c723..CS
eq: 102 BYE..Contact: <sip:1112@161.196.168.122:9375>..Content-

ANEXO 6. Trazas de una llamada desde un telfono IP, colgando ste, hacia un telfono
celular.
interface: eth0 (161.196.58.0/255.255.255.0)
filter: (ip) and ( port 5060 )
#
U 161.196.168.122:9375 -> 161.196.58.48:5060
INVITE sip:04168269381@161.196.58.48 SIP/2.0..To:
<sip:04168269381@161.196.58.48>..From: 1112<sip:1112@161.196.58.48>;ta
g=5663e06f..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bK-d87543660490420-1--d87543-;rport..Call-ID: 12416543776
feb46..CSeq: 1 INVITE..Contact: <sip:1112@161.196.168.122:9375>..MaxForwards: 70..Allow: INVITE, ACK, CANCEL, OPTIONS,
BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO..Content-Type:
application/sdp..User-Agent: eyeBeam release 3006o stamp 175
51..Content-Length: 246....v=0..o=- 10116493 10116950 IN IP4
161.196.168.122..s=eyeBeam..c=IN IP4 161.196.168.122..t=0 0
..m=audio 9728 RTP/AVP 8 0 3 18 101..a=alt:1 1 : 3E25CD6B 000000CD
161.196.168.122 9728..a=fmtp:101 0-15..a=rtpmap:101 t
elephone-event/8000..a=sendrecv..
#
U 161.196.58.48:5060 -> 161.196.168.122:9375
SIP/2.0 100 trying -- your call is important to us..To:
<sip:04168269381@161.196.58.48>..From: 1112<sip:1112@161.196.58.
48>;tag=5663e06f..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bKd87543-660490420-1--d87543-;rport=9375..Call-ID:
12416543776feb46..CSeq: 1 INVITE..Date: Thu, 04 Jan 2007 14:52:22
GMT..Date: Thu, 04 Jan 2007 14:52:22 GMT..Server: Open
Ser (1.0.0 (i386/linux))..Content-Length: 0..Warning: 392
161.196.58.48:5060 "Noisy feedback tells: pid=21961 req_src_i
p=161.196.168.122 req_src_port=9375 in_uri=sip:04168269381@161.196.58.48
out_uri=sip:704168269381@161.196.58.47 via_cnt=
=1"....
#
U 161.196.58.48:5060 -> 161.196.58.47:5060
INVITE sip:704168269381@161.196.58.47 SIP/2.0..To:
<sip:04168269381@161.196.58.48>..From: 1112<sip:1112@161.196.58.48>;t
ag=5663e06f..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bKf4bd.2d13ebc5.0..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=
z9hG4bK-d87543-660490420-1--d87543-;rport=9375..Call-ID:
12416543776feb46..CSeq: 1 INVITE..Contact: <sip:1112@161.196.16
8.122:9375>..Max-Forwards: 69..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE,
REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO..Conten
t-Type: application/sdp..User-Agent: eyeBeam release 3006o stamp
17551..Content-Length: 246....v=0..o=- 10116493 1011695
0 IN IP4 161.196.168.122..s=eyeBeam..c=IN IP4 161.196.168.122..t=0
0..m=audio 9728 RTP/AVP 8 0 3 18 101..a=alt:1 1 : 3E2
5CD6B 000000CD 161.196.168.122 9728..a=fmtp:101 0-15..a=rtpmap:101
telephone-event/8000..a=sendrecv..
#
U 161.196.58.47:5060 -> 161.196.58.48:5060
SIP/2.0 100 Trying..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bKf4bd.2d13ebc5.0;received=161.196.58.48..Via:
SIP/2.0/UD

- 216 -

P 161.196.168.122:9375;branch=z9hG4bK-d87543-660490420-1--d87543;rport=9375..From: 1112<sip:1112@161.196.58.48>;tag=566
3e06f..To: <sip:04168269381@161.196.58.48>..Call-ID:
12416543776feb46..CSeq: 1 INVITE..User-Agent: Asterisk PBX..Allow:
INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY..Contact:
<sip:704168269381@161.196.58.47>..Content-Length:
0....
#
U 161.196.58.47:5060 -> 200.109.126.164:5060
INVITE sip:04168269381@sip.ops.cantv.net;user=phone SIP/2.0..Via:
SIP/2.0/UDP 161.196.58.47:5060;branch=z9hG4bK1c14fc44;
rport..From: "1112"
<sip:2123360502@sipproxy.cantv.net>;tag=as50626e58..To:
<sip:04168269381@sip.ops.cantv.net;user=phon
e>..Contact: <sip:2123360502@161.196.58.47>..Call-ID:
3246dcb166b35b445ab20e7c04ea2d13@sipproxy.cantv.net..CSeq: 102 INV
ITE..User-Agent: Asterisk PBX..Max-Forwards: 70..Date: Thu, 04 Jan 2007
14:35:42 GMT..Allow: INVITE, ACK, CANCEL, OPTION
S, BYE, REFER, SUBSCRIBE, NOTIFY..Content-Type: application/sdp..ContentLength: 239....v=0..o=root 2793 2793 IN IP4 161
.196.58.47..s=session..c=IN IP4 161.196.58.47..t=0 0..m=audio 5684 RTP/AVP
0 8 101..a=rtpmap:0 PCMU/8000..a=rtpmap:8 PCM
A/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 016..a=silenceSupp:off - - - -..
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 100 Trying..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK1c14fc44;rport=5060..From: "1112"
<sip:2123360502@
sipproxy.cantv.net>;tag=as50626e58..To:
<sip:04168269381@sip.ops.cantv.net;user=phone>..Call-ID:
3246dcb166b35b445ab20e7
c04ea2d13@sipproxy.cantv.net..CSeq: 102 INVITE....
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK60e65157;rport=5060..From: "1112" <sip:2
123360502@sipproxy.cantv.net>;tag=as50626e58..To:
<sip:04168269381@sip.ops.cantv.net;user=phone>;tag=1167920074-67886911
68598943-21..Call-ID:
3246dcb166b35b445ab20e7c04ea2d13@sipproxy.cantv.net..CSeq: 103
INVITE..Contact: <sip:04168269381@2
00.109.126.164:5060;transport=udp>..Content-Type:
application/sdp..Content-Length: 210....v=0..o=hiQ9200/CN0/010/048/123
05251720070004105300 170918011 IN IP4 200.109.126.164..s=Phone Call via
hiQ9200 SIPCA..c=IN IP4 200.109.126.164..t=0 0.
.m=audio 35302 RTP/AVP 8..a=rtpmap:8 PCMA/8000..a=sendrecv..
#
U 161.196.58.47:5060 -> 161.196.58.48:5060
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bKf4bd.2d13ebc5.0;received=161.196.58.48..Via:
SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bK-d87543-660490420-1-d87543-;rport=9375..From: 1112<sip:1112@161.196.58.4
8>;tag=5663e06f..To: <sip:04168269381@161.196.58.48>;tag=as4020aa7c..CallID: 12416543776feb46..CSeq: 1 INVITE..User-Age
nt: Asterisk PBX..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
SUBSCRIBE, NOTIFY..Contact: <sip:704168269381@161.196

- 217 -

.58.47>..Content-Type: application/sdp..Content-Length: 239....v=0..o=root


2793 2793 IN IP4 161.196.58.47..s=session..c=
IN IP4 161.196.58.47..t=0 0..m=audio 6544 RTP/AVP 0 8 101..a=rtpmap:0
PCMU/8000..a=rtpmap:8 PCMA/8000..a=rtpmap:101 tele
phone-event/8000..a=fmtp:101 0-16..a=silenceSupp:off - - - -..
#
U 161.196.58.48:5060 -> 161.196.168.122:9375
SIP/2.0 183 Session Progress..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=z9hG4bK-d87543-660490420-1--d87543-;rport=937
5..From: 1112<sip:1112@161.196.58.48>;tag=5663e06f..To:
<sip:04168269381@161.196.58.48>;tag=as4020aa7c..Call-ID: 1241654
3776feb46..CSeq: 1 INVITE..User-Agent: Asterisk PBX..Allow: INVITE, ACK,
CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY.
.Contact: <sip:704168269381@161.196.58.47>..Content-Type:
application/sdp..Content-Length: 239....v=0..o=root 2793 2793
IN IP4 161.196.58.47..s=session..c=IN IP4 161.196.58.47..t=0 0..m=audio
6544 RTP/AVP 0 8 101..a=rtpmap:0 PCMU/8000..a=rt
pmap:8 PCMA/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 016..a=silenceSupp:off - - - -..
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK60e65157;rport=5060..From: "1112"
<sip:2123360502@sipp
roxy.cantv.net>;tag=as50626e58..To:
<sip:04168269381@sip.ops.cantv.net;user=phone>;tag=11679200746788691168598943-21..C
all-ID: 3246dcb166b35b445ab20e7c04ea2d13@sipproxy.cantv.net..CSeq: 103
INVITE..Contact: <sip:04168269381@200.109.126.164
:5060;transport=udp>..Allow: REGISTER, INVITE, ACK, BYE, CANCEL, NOTIFY,
REFER..Accept-Language: en; q=0.0..Content-Type
: application/sdp..Content-Length: 210....v=0..o=hiQ9200/CN0/010/048/123
05251720070004105300 170918011 IN IP4 200.109.1
26.164..s=Phone Call via hiQ9200 SIPCA..c=IN IP4 200.109.126.164..t=0
0..m=audio 35302 RTP/AVP 8..a=rtpmap:8 PCMA/8000..
a=sendrecv..
#
U 161.196.58.47:5060 -> 200.109.126.164:5060
ACK sip:04168269381@200.109.126.164:5060;transport=udp SIP/2.0..Via:
SIP/2.0/UDP 161.196.58.47:5060;branch=z9hG4bK60d8cf
1b;rport..From: "1112"
<sip:2123360502@sipproxy.cantv.net>;tag=as50626e58..To:
<sip:04168269381@sip.ops.cantv.net;user=p
hone>;tag=1167920074-6788691168598943-21..Contact:
<sip:2123360502@161.196.58.47>..Call-ID: 3246dcb166b35b445ab20e7c04ea
2d13@sipproxy.cantv.net..CSeq: 103 ACK..User-Agent: Asterisk PBX..MaxForwards: 70..Content-Length: 0....
#
U 161.196.58.47:5060 -> 161.196.58.48:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP
161.196.58.48;branch=z9hG4bKf4bd.2d13ebc5.0;received=161.196.58.48..Via:
SIP/2.0/UDP 16
1.196.168.122:9375;branch=z9hG4bK-d87543-660490420-1--d87543;rport=9375..From: 1112<sip:1112@161.196.58.48>;tag=5663e06
f..To: <sip:04168269381@161.196.58.48>;tag=as4020aa7c..Call-ID:
12416543776feb46..CSeq: 1 INVITE..User-Agent: Asterisk P

- 218 -

BX..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,


NOTIFY..Contact: <sip:704168269381@161.196.58.47>..Conte
nt-Type: application/sdp..Content-Length: 239....v=0..o=root 2793 2794 IN
IP4 161.196.58.47..s=session..c=IN IP4 161.196
.58.47..t=0 0..m=audio 6544 RTP/AVP 0 8 101..a=rtpmap:0
PCMU/8000..a=rtpmap:8 PCMA/8000..a=rtpmap:101 telephone-event/80
00..a=fmtp:101 0-16..a=silenceSupp:off - - - -..
#
U 161.196.58.48:5060 -> 161.196.168.122:9375
SIP/2.0 200 OK..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bKd87543-660490420-1--d87543-;rport=9375..From: 1112<
sip:1112@161.196.58.48>;tag=5663e06f..To:
<sip:04168269381@161.196.58.48>;tag=as4020aa7c..Call-ID:
12416543776feb46..CSe
q: 1 INVITE..User-Agent: Asterisk PBX..Allow: INVITE, ACK, CANCEL,
OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY..Contact: <sip
:704168269381@161.196.58.47>..Content-Type: application/sdp..ContentLength: 239....v=0..o=root 2793 2794 IN IP4 161.196
.58.47..s=session..c=IN IP4 161.196.58.47..t=0 0..m=audio 6544 RTP/AVP 0 8
101..a=rtpmap:0 PCMU/8000..a=rtpmap:8 PCMA/80
00..a=rtpmap:101 telephone-event/8000..a=fmtp:101 0-16..a=silenceSupp:off
- - - -..
#
U 161.196.168.122:9375 -> 161.196.58.47:5060
ACK sip:704168269381@161.196.58.47 SIP/2.0..To:
<sip:04168269381@161.196.58.48>;tag=as4020aa7c..From: 1112<sip:1112@161.
196.58.48>;tag=5663e06f..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=z9hG4bK-d87543-769809811-1--d87543-;rport..CallID
: 12416543776feb46..CSeq: 1 ACK..Contact:
<sip:1112@161.196.168.122:9375>..Max-Forwards: 70..User-Agent: eyeBeam
release
3006o stamp 17551..Content-Length: 0....
#
U 161.196.168.122:9375 -> 161.196.58.47:5060
BYE sip:704168269381@161.196.58.47 SIP/2.0..To:
<sip:04168269381@161.196.58.48>;tag=as4020aa7c..From: 1112<sip:1112@161.
196.58.48>;tag=5663e06f..Via: SIP/2.0/UDP
161.196.168.122:9375;branch=z9hG4bK-d87543-528442032-1--d87543-;rport..CallID
: 12416543776feb46..CSeq: 2 BYE..Contact:
<sip:1112@161.196.168.122:9375>..Max-Forwards: 70..Allow: INVITE, ACK,
CANCEL,
OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO..User-Agent:
eyeBeam release 3006o stamp 17551..Content-Length: 0
....
#
U 161.196.58.47:5060 -> 161.196.168.122:9375
SIP/2.0 200 OK..Via: SIP/2.0/UDP 161.196.168.122:9375;branch=z9hG4bKd87543-528442032-1--d87543-;received=161.196.168.12
2;rport=9375..From: 1112<sip:1112@161.196.58.48>;tag=5663e06f..To:
<sip:04168269381@161.196.58.48>;tag=as4020aa7c..CallID: 12416543776feb46..CSeq: 2 BYE..User-Agent: Asterisk PBX..Allow:
INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
NOTIFY..Contact: <sip:704168269381@161.196.58.47>..Content-Length: 0..XAsterisk-HangupCause: Normal Clearing....
#

- 219 -

U 161.196.58.47:5060 -> 200.109.126.164:5060


BYE sip:04168269381@200.109.126.164:5060;transport=udp SIP/2.0..Via:
SIP/2.0/UDP 161.196.58.47:5060;branch=z9hG4bK0b9ab9
84;rport..From: "1112"
<sip:2123360502@sipproxy.cantv.net>;tag=as50626e58..To:
<sip:04168269381@sip.ops.cantv.net;user=p
hone>;tag=1167920074-6788691168598943-21..Contact:
<sip:2123360502@161.196.58.47>..Call-ID: 3246dcb166b35b445ab20e7c04ea
2d13@sipproxy.cantv.net..CSeq: 104 BYE..User-Agent: Asterisk PBX..MaxForwards: 70..Authorization: Digest username="2123
360502", realm="sip.ops.cantv.net", algorithm=MD5,
uri="sip:04168269381@200.109.126.164:5060", nonce="3089266154-3d1de69
fdafd426b2d1b5437d5375953", response="d60485275601af1ff4879a3e8c12f425",
opaque="", qop=auth, cnonce="284f24e5", nc=0000
0002..Content-Length: 0....
#
U 200.109.126.164:5060 -> 161.196.58.47:5060
SIP/2.0 200 OK..Via: SIP/2.0/UDP
161.196.58.47:5060;branch=z9hG4bK0b9ab984;rport=5060..From: "1112"
<sip:2123360502@sipp
roxy.cantv.net>;tag=as50626e58..To:
<sip:04168269381@sip.ops.cantv.net;user=phone>;tag=11679200746788691168598943-21..C
all-ID: 3246dcb166b35b445ab20e7c04ea2d13@sipproxy.cantv.net..CSeq: 104
BYE..Content-Length: 0....

Вам также может понравиться