implementaciÓn del protocolo sip en una centralita asterisk

31
Escuela Internacional de Negocios - CESTE Maestría en Tecnología de la Comunicación Módulo: Servicios Integrados Trabajo 2 “IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK” Autores: Jonathan Aranda Luis Fanovich Profesor: Miguel Ángel García Zaragoza, 13 de febrero de 2013

Upload: ptlinuxx

Post on 03-Jan-2016

56 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

Escuela Internacional de Negocios - CESTE

Maestría en Tecnología de la Comunicación

Módulo: Servicios Integrados

Trabajo 2

“IMPLEMENTACIÓN DEL PROTOCOLO

SIP EN UNA CENTRALITA ASTERISK”

Autores: Jonathan Aranda

Luis Fanovich

Profesor: Miguel Ángel García

Zaragoza, 13 de febrero de 2013

Page 2: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

Resumen

El avance de la digitalización de la voz y su transmisión por una red de datos, están

permitiendo la expansión de la comunicación utilizando la voz sobre redes IP (VoIP),

La idea principal de este proyecto es aprovechar las ventajas del desarrollo de la VoIP,

para implementar una centralita Asterisk que permita la comunicación entre sus

dispositivos utilizando el protocolo de señalización SIP.

Page 3: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

I

Índice General

Introducción…………………………………………………………………………. IV

Capítulo 1

Introducción a los Protocolos de Señalización ................................................................. 1

Introducción ....................................................................................................... 1 1.1.

Redes de Conmutación de Circuitos .................................................................. 2 1.2.

Redes de Conmutación de Paquetes .................................................................. 2 1.3.

Capítulo 2

Session Initiation Protocol SIP ......................................................................................... 3

Introducción ....................................................................................................... 3 2.1.

Funciones ........................................................................................................... 4 2.2.

Características .................................................................................................... 5 2.3.

Componentes dentro de un Arquitectura SIP .................................................... 6 2.4.

Capítulo 3

Centralitas PBX ................................................................................................................ 9

Introducción ....................................................................................................... 9 3.1.

Funcionalidades ............................................................................................... 10 3.2.

Centralita IP-PBX ............................................................................................ 10 3.3.

Asterisk ............................................................................................................ 11 3.4.

3.4.1 Funcionalidades ........................................................................................ 11

3.4.2 Protocolos y Códecs Soportados .............................................................. 12

Capítulo 4

Implementación de una Centralita Asterisk ................................................................... 13

Entorno de Simulación Asterisk ...................................................................... 13 4.1.

Topología ......................................................................................................... 14 4.2.

Capítulo 5

Conclusión ...................................................................................................................... 23

Referencias ..................................................................................................................... 24

Page 4: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

III

Índice de Figuras

Figura 1.1 Proceso de para establecer una llamada. ......................................................... 1

Figura 2.1. Flujo de Mensajes en SIP. .............................................................................. 5

Figura 4.1. Componentes del Entorno de Simulación de Asterisk y SIP. ...................... 13

Figura 4.2. Topología para la simulación de Asterisk y SIP. ......................................... 14

Figura 4.3. Consola. ........................................................................................................ 14

Figura 4.4. Credenciales de administrador requeridas. .................................................. 15

Figura 4.5. Dashboard Elastix. ....................................................................................... 15

Figura 4.6. Agregar una Extensión. ................................................................................ 16

Figura 4.7. Campos requeridos para crear extensiones. ................................................. 16

Figura 4.8. Campos complementarios para crear extensiones....................................... 17

Figura 4.9. Softphone instalado en los portátiles. .......................................................... 17

Figura 4.10. App de un Softphone en un dispositivo Android. ...................................... 18

Figura 4.11. Intercambio de mensajes SIP. .................................................................... 18

Figura 4.12. Tráfico RTP junto con inicio de la sesión. ................................................. 19

Figura 4.13. Tráfico RTP junto con finalización de la sesión. ....................................... 19

Figura 4.14. “Agregar un enlace SIP”. .......................................................................... 20

Figura 4.15. Configuración General de un enlace trunk................................................. 20

Figura 4.16. Configuración de salida hacia el SIP Server “CentralA”. ......................... 21

Figura 4.17. Configuración de una ruta de salida. .......................................................... 21

Figura 4.18. Dial Patterns. .............................................................................................. 22

Figura 4.19. Llamada entre dispositivos SIP. ................................................................. 22

Page 5: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

IV

Índice de Tablas

Tabla 3.1. Tabla de Protocolos y Códecs soportados por Asterisk. ............................... 12

Page 6: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

V

Glosario

C

CAS: Channel Associated

Signalling.

CCS: Common Channel Signalling.

CUCM: Cisco Unified

Communications Manager.

G

GPL: General Public License.

I

IETF: Internet Engineering Task

Froce.

ITU: International

Telecommunication Union.

IVR: Interactive Voice Response.

L

LAN: Local Area Network.

M

MCGP: Media Gateway Control

Protocol.

P

PBX: Private Branch eXhange.

R

RDSI: Red Digital de Servicios

Integrados.

RTP: Real-time Transport Protocol.

S

SCCP: Skinny Client Control

Protocol.

SIP: Session Initiation Protocol.

T

TTS: Text to Speech.

U

UAC: User Agent Client.

UAS: User Agent Server.

W

WAN: Wide Area Network

Page 7: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

VI

Introducción

Desde los inicios de la telefonía, se necesitaban normas que regularan las

comunicaciones entre dos destinos finales, para esto fueron creados los protocolos de

señalización. Estos protocolos han experimentado una evolución, junto con la tendencia

de transportar tráfico desde las redes de conmutación de circuitos hacia las redes de

conmutación por paquetes, siendo para esta última más utilizados los protocolos H.323,

SIP, MCGP y SCCP.

Con el avance de las tecnologías y los servicios de ancho de banda de internet, se ha

hecho posible el desarrollo de los sistemas de comunicación, y en especial en la

transmisión de la voz por la red de datos VoIP. En la actualidad muchas empresas optan

por tener una infraestructura de telecomunicaciones que permita la comunicación con el

exterior, como la interconexión entre los diferentes departamentos de una empresa.

Con la aparición de las primeras centralitas telefónicas Private Branch eXhange (PBX),

se hizo posible conectar los teléfonos de una empresa separados de la red de telefonía

pública (PSTN), consiguiendo una estructura separada para realizar llamadas internet y

utilizar la PSTN para llamadas al exterior. Las primeras centralitas estaban basadas en

hardware, las centralitas de hoy en día se basan en hardware y software, ofreciendo más

funcionalidades que las centralitas tradicionales.

El objetivo principal de este trabajo se basa en la implementación de un software, en

este caso Asterisk, que haga las funciones de una PBX, y que su a vez, utilice el

protocolo de señalización SIP para realizar llamadas tanto en una LAN, como al exterior

en una red WAN.

Page 8: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

1

Capítulo 1: 1.

Introducción a los Protocolos de Señalización

En este capítulo, se presenta la definición general del protocolo de señalización y

su funcionamiento en las comunicaciones.

Introducción 1.1.

La llamada entre dos teléfonos implica el uso de diversos dispositivos

electrónicos, los cuales deben comunicarse entre sí. Para poder garantizar que la

comunicación entre los equipos se lleve a cabo adecuadamente, son necesarias

diversas normas que regulen el proceso de comunicación, estas normas se

conocen como Protocolos de Señalización.

Los protocolos de señalización tienen la capacidad de generar e intercambiar

información de control que se utiliza para establecer, monitorizar, mantener y

liberar las conexiones entre dos puntos finales. En la Figura 1.1 el proceso para

establecer una llamada.

Figura 1.1 Proceso de para establecer una llamada.

Sistema de Transmisión

Usuario A Usuario B Central

Destino B Central

Origen B

A descuelga

Tono de marcar

Marcado de nº B

Tono de llamada

A Cuelga

B Cuelga

Camino a central destino

Conformidad central destino

Notificación de B

Liberación de la conexión

Timbre de llamada

B Descuelga

Page 9: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

2

Redes de Conmutación de Circuitos 1.2.

La conmutación de circuito es un tipo de conmutación que establece un circuito

dedicado exclusivo durante la duración de la sesión. Una vez terminada la sesión, se

libera el canal y este podrá ser utilizado por otros usuarios.

En las redes de conmutación de circuitos, los protocolos de señalización se pueden

clasificar en dos categorías principales.

Channel Associated Signalling (CAS): Tanto la información de señalización

como los datos de voz se transmiten por el mismo canal. Entre los protocolos de

señalización que pertenecen a esta categoría tenemos: G.732 y E&M, entre

otros.

Common Channel Signalling (CCS): La información correspondiente a la

señalización se transmite en un canal independiente al de los datos de voz. Un

protocolo de señalización perteneciente a esta categoría es, por ejemplo, el SS7.

Redes de Conmutación de Paquetes 1.3.

En los sistemas basados en la conmutación de paquetes, la información es ensamblada

en paquetes antes de ser transmitida. Cada paquete es transmitido individualmente y

este puede tomar diferentes rutas hacia su destino. Una vez los paquetes lleguen a su

destino, son re-ensamblados nuevamente.

En la conmutación de paquetes, los protocolos de señalización realizan acciones muy

similares a los protocolos de señalización en la conmutación por circuitos, además de

establecer medidas de calidad de servicio (QoS) que garanticen la calidad de la

conversación.

Existen varios protocolos de señalización utilizados en la conmutación de paquetes en la

actualidad, entre los más destacados se encuentran el Session Initiation Protocol (SIP),

desarrollado por el grupo de trabajo de la Internet Engineering Task Froce (IETF), y

H.323 desarrollado por la International Telecommunication Union (ITU). Otras

protocolos han sido desarrollados por empresa como herramientas propias para realizar

funciones específicas, tal es el caso del CISCO Skinny Client Protocol (SCCP).

Page 10: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

3

Capítulo 2: 2.

Session Initiation Protocol SIP

En este capítulo, se define el Session Initiation Protocol (SIP), su funcionamiento,

características generales y los componentes que se encuentran dentro de una

estructura SIP.

Introducción 2.1.

Como se mencionó en el capítulo anterior, dentro del proceso de la transmisión de la

voz en paquetes por una red IP, la señalización es un aspecto muy importante para que,

una vez los paquetes de voz hayan sido generados por un dispositivo emisor, lleguen a

su destino.

SIP es un protocolo de señalización que fue desarrollado por la IETF. Se empezó a

desarrollar en el año 1996, que fue el año cuando se presentó el primer borrador, y fue

propuesto en el año 1999. Este protocolo fue desarrollado como una alternativa al ya

establecido H.323, otro protocolo de señalización. Al igual que otros protocolos que

trabajan en VoIP, SIP está diseñado para dirigir y mantener un control de la

señalización y además, permite establecer una sesión entre dos dispositivos de VoIP

dentro de una red IP.

Su función principal es la de establecer y finalizar sesiones entre dos dispositivos o

clientes. Además, se encarga de determinar la ubicación de los clientes. En otras

palabras, mediante su forma de registrar los dispositivos, informa a la red la ubicación

en donde podrá recibir peticiones de comunicación por parte de los demás usuarios, lo

cual permite que un usuario pueda recibir un mensaje en un determinado lugar, y si

Page 11: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

4

luego se traslada a otra ubicación y se registra, también recibiría mensajes en esta nueva

ubicación.

Funciones 2.2.

SIP es un protocolo basado en la arquitectura cliente – servidor. Se menciona este punto

porque tiene una estructura de peticiones y respuestas. Las peticiones son generadas por

un cliente y son enviadas a un servidor, y éste atiende estas peticiones, las procesa y

devuelve respuestas al cliente. Su funcionamiento está basado en el protocolo Hypertext

Transfer Protocol (HTTP), el cual también se establece sesiones, y al igual que SIP,

mantiene una estructura de peticiones y respuestas.

A continuación, se muestra un repaso de las diferentes solicitudes y respuestas

utilizadas por SIP:

Solicitudes:

INVITE: establece una sesión.

ACK: confirma una solicitud INVITE.

BYE: finaliza una sesión.

CANCEL: cancela el establecimiento de una sesión.

REGISTER: comunica la localización de un usuario (dirección IP, nombre de

host).

OPTIONS: comunica la información acerca de las capacidades de envío y

recepción de dispositivos SIP.

Respuestas:

1XX: respuestas informativas (Ejemplo: 180, la cual se refiere a “Phone

Ringing”).

2XX: respuestas de éxito (Ejemplo: 200, la cual se refiere a “OK”).

3XX: respuestas de redirección.

4XX: errores de solicitud.

5XX: errores de servidor.

6XX: errores globales.

Page 12: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

5

La figura 2.1 muestra el funcionamiento de SIP, el cual, mediante diferentes tipos de

peticiones y respuestas, establecen una sesión multimedia para el intercambio de voz o

vídeo entre dos dispositivos.

Figura 2.1. Flujo de Mensajes en SIP.

Características 2.3.

SIP funciona en colaboración con otros protocolos, que en conjunto, llevan a cabo la

realización de la comunicación entre dos dispositivos. SIP se concentra en el

establecimiento, la modificación y la terminación de las sesiones. Se refiere a

modificación de las sesiones, como la realización de transferencias y llamadas de

conferencia. Además, se complementa con el protocolo Session Description Protocol

(SDP), el cual realiza la tarea de describir el contenido multimedia de la sesión, por

ejemplo, las direcciones IP, los puertos y los códecs que se utilizarán en la llamada.

Además, trabaja en conjunto con Real-Time Transport Protocol (RTP), que es el

protocolo portador de la voz o el vídeo que intercambian los dispositivos participantes

en la sesión previamente establecida por SIP.

Page 13: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

6

Entre otras características, cabe destacar:

Localización del dispositivo de destino: SIP soporta resolución de nombres y

redirección de llamadas.

Determinar la capacidad del dispositivo de destino: SIP especifica el menor

nivel de servicios comunes entre los dos dispositivos que establecen la

comunicación. Por ejemplo, las llamadas de conferencia son establecidas

solamente en una manera que los dispositivos finales puedan ejecutar.

Disponibilidad del dispositivo de destino: En caso de que una llamada no

pueda ser establecida debido que el dispositivo de destino no esté disponible,

SIP determina si el dispositivo de destino está conectado a otra llamada, o se dé

el caso de que este dispositivo no conteste después de sonar un tiempo

determinado.

Establece una sesión entre las dos partes: En caso de que la llamada se

complete, SIP establece una sesión entre los dos dispositivos. También, si lo

requiere, puede agregar dispositivos (llamadas de conferencia), o realizar

cambios en los códecs de voz para que las sesiones puedan establecerse.

Transferencias y finalización de llamadas: SIP es capaz de soportar

transferencias de llamadas. Durante estas transferencias, SIP establece una

sesión entre el dispositivo a transferir y el nuevo dispositivo de destino, y luego

finaliza la sesión entre el dispositivo que transfiere la llamada y el que ha sido

transferido.

Componentes dentro de un Arquitectura SIP 2.4.

Previo a establecer una sesión para intercambiar información multimedia, los extremos

próximos a comunicarse deben realizar, mediante SIP, un intercambio de mensajes, en

donde se determinará, entre otros aspectos, la disponibilidad y las capacidades para

soportar formato multimedia de las dos partes.

Page 14: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

7

Estos extremos, los cuales establecerán una sesión, son los User Agents (UA). Estos UA

pueden actuar de dos maneras:

User Agent Client (UAC): es el extremo que envía una petición mediante un

mensaje SIP.

User Agent Server (UAS): es la parte que actúa como un servidor. En otras

palabras, es la parte que contactará al usuario cuando reciba una invitación SIP

para establecer una sesión, y luego enviará una respuesta hacia el dispositivo que

desea establecer la sesión.

Como un análisis adicional a estas descripciones, los User Agents actuarán como UAC

y UAS dependiendo de cuál de los dos extremos inicien la sesión. Debido a sus

características, los UAC son los extremos que inician la sesión, ya que envían una

petición SIP, y los UAS son los que terminan esta sesión, porque son los que informan

sobre la finalización de una sesión establecida mediante SIP.

Además de los User Agents, existen otros componentes necesarios para la operatividad

de este protocolo. Los servidores son utilizados en SIP para enviar mensajes SIP desde

un UAC hacia un UAS. Existen diferentes tipos de servidores que, cada uno con sus

características, realizan ciertas funciones:

Servidores de Registro: son los servidores que realizan el proceso de registro

de un usuario SIP. Este registro, permite confirmar la ubicación física de este

usuario, en otras palabras, en qué punto de la red está conectado. Esto servirá

para que pueda ser alcanzado si algún otro dispositivo desee establecer una

sesión. Cada UA, cuenta con una dirección lógica, es decir, sus credenciales de

usuario (Ejemplo: usuario@dominio). Además cuenta con una dirección física,

la cual se puede identificar como su dirección IP. Al inicializar un dispositivo

que funcione mediante SIP, este dispositivo enviará una petición de registro a

este servidor, informando la dirección física en donde se encuentra este UA. Una

vez recibida esta información, el servidor de Registro asociará estas dos

direcciones para que el UA sea alcanzable para los demás dispositivos que

deseen establecer una sesión.

Servidores Proxy: son servidores intermedios que se encargan de recibir

peticiones SIP de un UA específico, para luego direccionar estas peticiones en

Page 15: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

8

nombre de este UA hacia otro servidor que se encuentre en la red. El próximo

servidor puede ser otro servidor Proxy, o un UAS.

Servidores Redirect: son los servidores que, a diferencia de los servidores

Proxy, generarán una respuesta hacia el UAC que desea establecer la sesión,

indicando los siguientes saltos que los mensajes SIP deben tomar, para que el

UAC pueda establecer directamente una sesión.

Page 16: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

9

Capítulo 3: 3.

Centralitas PBX

Este capítulo presenta la definición de una PBX, su funcionamiento y sus avances

frente a las nuevas tecnologías que permiten la transmisión de la voz sobre IP

(VoIP).

En el último apartado de este capítulo se hace referencia a la centralita Asterisk, la

cual está basada en software, se mencionan sus funcionalidades y los protocolos y

códecs soportados por esta centralita.

Introducción 3.1.

Una central de telefonía privada (PBX) es un dispositivo que permite a las empresas

conectar sus terminales telefónicos de manera independiente al proveedor de telefonía.

De esta forma, permite que todas las llamadas internas sean conmutadas sin necesidad

de salir al exterior por la red pública de telefonía (PSTN o RDSI), lo que permite

disminuir los costes.

Los dispositivos conectados a las PBX se le denominan extensiones, y pueden ser

teléfonos ó faxes. Además, las centralitas permiten la conexión con diferentes líneas

troncales para poder recibir llamadas desde el exterior, e incluso permite la

interconexión de varias PBX entre sí para establecer la comunicación con el exterior.

Por lo general, para establecer una comunicación hacia el exterior, la PBX requiere que

se maque el 9 ó 0 seguido por el número de destino. De esta forma, la centralita es capaz

de identificar que se trata de una llamada hacia el exterior y selecciona una línea troncal

disponible.

Page 17: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

10

Funcionalidades 3.2.

Como se menciona en el punto anterior, el objetivo principal de una PBX es establecer

y mantener la comunicación entre dos puntos finales durante el tiempo que sea

requerido por el usuario, y a su vez incorporan funcionalidades como: operadora virtual,

marcación rápida, buzón de voz, transferencia de llamadas, desvío de llamadas, entre

otras más, que permiten configurar una PBX a la necesidades de un usuario final.

Centralita IP-PBX 3.3.

La tendencia de las PBX es incorporar a las centralitas la posibilidad de transmitir la

voz sobre las redes de datos. Este modelo permite la reducción de costes debido a la

gestión de una única infraestructura, lo que permitirá la integración y la posibilidad de

ampliar los servicios de valor añadido.

Siguiendo esta tendencia surgen las IP-PBX, que son equipos de comunicaciones

diseñados para ofrecer servicios de comunicaciones a través de la red de datos, lo que

conocemos con el nombre de voz sobre IP (VoIP). Este sistema de telefonía permite

transmitir la voz por una red de datos, a la vez que interopera con una red PSTN.

Una centralita IP-PBX puede ser implementada como un dispositivo de hardware o

virtualmente como un sistema de software, como CUCM, Asterisk o FreeSwitch. Dado

que la mayor parte de las funcionalidades de una IP-PBX están basadas en software, se

pueden añadir nuevas funcionalidades tales como conferencias, Control XML-RPC para

llamadas en vivo, respuesta de voz interactiva (IVR), text to speech (TTS),

interconexión de circuitos tanto analógicos como digitales a través de la red PSTN y

soporta protocolos de VoIP como SIP, H.323, IAX2 entre otros.

Las IP-PBX se componen principalmente de un servidor SIP-SERVER (SIP) o de un

Gatekeeper (H.323) más un Gateway que permite la comunicación entre las redes de

datos IP y las líneas analógicas.

Los dispositivos finales utilizados por las IP-PBX son los teléfonos IP que soporten los

protocolos SIP y H.323 y software del tipo Softphone, el cual permite utilizar una

computadora como teléfono IP.

Page 18: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

11

Asterisk 3.4.

Asterisk es una aplicación con licencia de código abierto (GPL) capaz de simular las

funciones de una IP-PBX. Originalmente fue implementado sobre todas las

distribuciones de Linux existentes, y actualmente se está intentando portar a otros

sistemas operativos como MAC, Solaris y Windows.

Asterisk es una aplicación de software que ofrece las mismas características y servicios

que los sistemas PBX tradicionales. Las ventajas que tiene sobre las centralitas de

hardware son muchas, entre las cuales se pueden destacar:

Reducción de costes: ya que permite integrar la voz y datos bajo una sola

infraestructura y a la vez, Asterisk es una aplicación de código abierto.

Compatibilidad: Soporta una gran variedad de protocolos y códecs.

Flexibilidad: Permite la integración de Asterisk con otras centralitas, lo que la

convierte en una solución expandible.

Actualizaciones: Cuenta con una comunidad interesada en el desarrollo de

Asterisk las cuales realizan actualizaciones constantemente.

3.4.1 Funcionalidades

Asterisk cuenta con un núcleo principal encargado de toda la gestión del sistema PBX,

sus funciones principales son:

Interconectar de forma automática cada llamada entre los usuarios participantes,

teniendo en cuenta el tipo de protocolo utilizado por cada terminal.

Lanzar los servicios de valor añadido cuando sean requeridos.

Traducir y adaptar códecs a cada terminal involucrado en la comunicación.

Gestionar el sistema para que funcione de la forma más óptima en todas las

condiciones de carga.

Page 19: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

12

3.4.2 Protocolos y Códecs Soportados

Asterisk soporta una serie de protocolos de VoIP y códecs de audio que se pueden

apreciar en la Tabla 3.1

Tabla 3.1. Tabla de Protocolos y Códecs soportados por Asterisk.

Protocolos VoIP

SIP, H.323, IAX, MGCP/MEGACO, SCCP, UNISTIM

Códecs de audio

G.711(alaw y ulaw), G.726, G.723.1, G.729A, GSM,

iLBC, Speex, ADPCM, Linear, MP3

Page 20: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

13

Capítulo 4: 4.

Implementación de una Centralita Asterisk

En este capítulo, se presenta la simulación de una centralita Asterisk, utilizando

el protocolo de señalización SIP para realizar llamadas internas en una red LAN y

llamadas externas en una red WAN.

Entorno de Simulación Asterisk 4.1.

Para la configuración del entorno de implementación de una centralita VoIP,

utilizaremos Virtualbox para simular una máquina virtual, Asterisk como plataformas

de VoIP y aplicaciones tipo softphone para simular un teléfono IP en la computadora

como el Softphone 3CX, Xlite y para dispositivos Android, el 3CXPhone y Sipdroid,

como se muestra en la Figura 4.1.

Figura 4.1. Componentes del Entorno de Simulación de Asterisk y SIP.

Page 21: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

14

Topología 4.2.

Para la realizar la simulación utilizando una centralita Asterisk y el protocolo SIP, se

utilizó la topología que se muestra en la Figura 4.2.

La topología está compuesta por dos SIP SERVER para gestionar la Central A y la

Central B respectivamente. Cada SIP SERVER permite llamadas en sus redes internas,

utilizando teléfonos IP simulados por un softphone en las computadoras y un

dispositivo Android con aplicaciones mencionadas en el punto anterior. Se configuró

una conexión SIP TRUNK para interconectar los dos SIP SERVER y permitir la

comunicación entre los dispositivos de la Central A y la Central B.

Figura 4.2. Topología para la simulación de Asterisk y SIP.

Durante el proceso de instalación del SIP Server, en este caso, Elastix, y dentro de

una máquina virtual creada con Virtual Box, se configuró una serie de parámetros,

entre los cuales, cabe destacar la contraseña para el usuario “root” en el CLI. La

figura 4.3 muestra la ventana de la consola en donde las credenciales de usuario

“root” son requeridas para iniciar.

Figura 4.3. Consola.

Page 22: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

15

Durante el proceso de esta simulación, se decidió que la dirección IP de los SIP

Servers fuera tomada dinámicamente (DHCP). Se puede ingresar a la consola del

SIP Server desde un navegador web, escribiendo la dirección IP que se le ha

asignado al SIP Server. La figura 4.4 muestra la ventana de credenciales de

usuario para el entorno gráfico.

Figura 4.4. Credenciales de administrador requeridas.

Una vez ingresadas las credenciales de administrador, se mostrará la consola

desde un ambiente gráfico. La pantalla de inicio muestra un Dashboard, junto con

otros aspectos, como por ejemplo, los procesos que están funcionando en el

momento y el estado de los recursos del SIP Server. La figura 4.5 muestra el

Dashboard para realizar la monitorización.

Figura 4.5. Dashboard Elastix.

Page 23: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

16

Para crear las extensiones, se ingresa a esta parte desde la pestaña “PBX” ubicada

en la parte superior, y luego en “Extensions” ubicado en la parte izquierda de la

Consola. Se ha seleccionado la opción “Generic SIP Device”, luego click en

Submit. La figura 4.6 muestra la ventana para agregar extensiones.

Figura 4.6. Agregar una Extensión.

Para crear una extensión, es necesario llenar algunos campos que son importantes

para el correcto funcionamiento de los User Agents (UAC). En “User Extension”,

se coloca un número de extensión para el dispositivo y “Display Name” será el

nombre del usuario final que aparecerá en los demás dispositivos que se intenten

alcanzar. La figura 4.7 muestra los campos necesarios.

Figura 4.7. Campos requeridos para crear extensiones.

Page 24: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

17

La figura 4.8 muestra algunos otros campos que son requeridos para crear las

extensiones. Algunos se llenan automáticamente por el SIP Server.

Figura 4.8. Campos complementarios para crear extensiones.

Para esta simulación, se han instalado softphones en los portátiles donde están

creadas las máquinas virtuales que alojan los SIP Servers. Después de haber

configurado ciertos parámetros que requiere una sesión en SIP, por ejemplo, la

dirección IP del SIP Server, la extensión, un usuario y contraseña, el softphone se

registrará y estará listo para iniciar sesiones multimedia mediante SIP. La figura

4.9 muestra la pantalla principal del Softphone, en donde se puede apreciar que

está en modo funcional.

Figura 4.9. Softphone instalado en los portátiles.

Page 25: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

18

La figura 4.10 muestra la ventana principal del App de softphone instalado en los

dispositivos Android que también se han utilizado para esta simulación.

Figura 4.10. App de un Softphone en un dispositivo Android.

Para realizar un mejor análisis del comportamiento de SIP al momento de registrar

las extensiones en los softphones, se ha realizado una captura en Wireshark, en

donde se puede apreciar, el intercambio de mensajes SIP entre un UAC y un UAS,

en este caso, los softphones y el SIP Server. Se pueden apreciar algunas de las

solicitudes realizadas por los User Agents, por ejemplo, REGISTER y OPTIONS.

También respuestas, por ejemplo, 200 OK. La figura 4.11 muestra el intercambio

de mensajes SIP.

Figura 4.11. Intercambio de mensajes SIP.

Posterior al registro de los Softphones mediante SIP, se ha realizado una llamada

entre dos Softphones registrados en el mismo SIP Server. Después del trabajo de

señalización de SIP, es decir, establecer una sesión multimedia entre los dos

Page 26: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

19

Softphones, RTP se encarga de transportar la voz en paquetes. Las figuras 4.12 y

4.13 muestran el tráfico RTP, y antes de iniciarse, se pueden apreciar paquetes

SIP que indican solicitudes INVITE para iniciar una sesión, y respuestas, como la

180 Ringing. Al finalizar la llamada, mediante SIP, el Softphone que finalizó la

llamada, envió una solicitud BYE, luego se puede apreciar una respuesta 200 OK.

Figura 4.12. Tráfico RTP junto con inicio de la sesión.

Figura 4.13. Tráfico RTP junto con finalización de la sesión.

Como un desafío adicional, se decidió realizar llamadas entre los softphones de

los dos SIP Server, las centralitas Asterisk instaladas en las dos máquinas

virtuales. Para ello, se ha creado un enlace SIP Trunk en cada una de las

centralitas. Haciendo click en “PBX Configuration”, una vez dentro de esta

sección, click en “Trunks”. Luego se ha seleccionado la opción “Add SIP Trunk”.

La figura 4.14 muestra la opción “Add SIP Trunk”.

Page 27: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

20

Figura 4.14. “Agregar un enlace SIP”.

Dentro de esta opción, se ha procedido a crear un enlace trunk entre las dos

centralitas. Se le ha asignado un nombre al enlace trunk, en el campo “Trunk

Name”. La figura 4.15 muestra la sección de configuración general.

Figura 4.15. Configuración General de un enlace trunk.

Además, en la configuración de salida, se ha tenido que configurar diversos

parámetros para que las llamadas puedan dirigirse hacia las extensiones que

controla la otra centralita. Cabe destacar, un usuario y una contraseña para que

exista un proceso de autenticación por parte de los dos SIP Servers. Además,

especificar la dirección IP por la cual se va a alcanzar al SIP Server vecino.

Page 28: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

21

La figura 4.16 muestra el proceso de configuración de salida hacia el SIP Server

vecino.

Figura 4.16. Configuración de salida hacia el SIP Server “CentralA”.

Después de haber realizado la configuración del enlace trunk, es necesario

configurar una ruta de salida “Outbound Route”. Se puede accesar dentro del

mismo menú en donde se encuentran las opciones para “Trunks”. La figura 4.17

muestra la sección en donde se agrega una ruta de salida hacia el SIP Server

vecino, en donde se especificó un nombre para esta ruta.

Figura 4.17. Configuración de una ruta de salida.

Page 29: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

22

Además de seleccionar un nombre para la ruta de salida, es importante especificar

dentro de los “Dial Patterns”, el rango de extensiones que maneja el SIP Server

vecino a los cuales se desea alcanzar. Se ha especificado mediante los parámetros

“2XXX”, lo cual significa que se pueda alcanzar cualquier extensión de 4 dígitos

y que inicie con el número 2. Además, en la sección “Trunk Sequence for

Matched Routes”, se ha seleccionado el enlace trunk previamente configurado. La

figura 4.18 muestra la configuración realizada en esta sección de la ruta de salida.

Figura 4.18. Dial Patterns.

Al haber finalizado esta configuración dentro de los dos SIP Servers, los

dispositivos SIP son capaces de establecer sesiones SIP, llamarse y comunicarse

entre sí. La figura 4.19 muestra una llamada entre dispositivos SIP pertenecientes

a diferentes SIP Servers.

Figura 4.19. Llamada entre dispositivos SIP.

Page 30: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

23

Capítulo 5: 5.

Conclusión

Cabe destacar que las funciones que realiza SIP son las de establecer sesiones

multimedia, es decir, proveer ciertas instrucciones para que las llamadas puedan

realizarse de manera satisfactoria. También, como un análisis relevante gracias a

las capturas realizadas con Wireshark, una vez establecida la sesión entre dos

dispositivos SIP, el tráfico de la voz entre estos dos dispositivos se realizará

directamente entre ellos, en un entorno LAN, por medio de RTP.

Sobre la experiencia con la centralita Asterisk, conviene destacar su entorno

gráfico. Cuenta con una interfaz gráfica amigable para el administrador, y existe

mucha documentación que puede servir de apoyo para obtener resultados óptimos

en base a la administración de la telefonía. Además, cuenta con las características

necesarias para establecer enlaces SIP, también puede utilizar otros protocolos,

por ejemplo, IAX2.

Page 31: IMPLEMENTACIÓN DEL PROTOCOLO SIP EN UNA CENTRALITA ASTERISK

24

6.

Referencias

[1] J. L. Villalón, «Security Artwork,» 3 Marzo 2008. [En línea]. Available:

http://www.securityartwork.es/2008/03/03/voip-protocolo-sip/. [Último

acceso: 9 Febrero 2013].

[2] K. Wallace, Implementing Cisco Unified Communications Voice over IP and

QoS (CVOICE), Indianapolis, IN: Cisco Press, 2011.

[3] UNAVARRA, «Seminars,» 7 Diciembre 2007. [En línea]. Available:

https://www.tlm.unavarra.es/research/seminars/slides/20071207_iria_SIP-

SDP.pdf. [Último acceso: 9 Febrero 2013].

[4] Q. I. M. &. Consulting, «Quarea - Voz - Datos IP,» [En línea]. Available:

http://www.quarea.com/es/tutorial/SIP_session_initiation_protocol. [Último

acceso: 10 Febrero 2012].

[5] Jesus Camacho Rodriguez, «Scribd,» 26 agosto 2012. [En línea]. Available:

http://es.scribd.com/doc/104008128/PFC-Jesus-Camacho-Rodriguez-Capitulo-

2. [Último acceso: 10 febrero 2013].

[6] J. M. Vizcaíno, «UPCommons,» 14 septiembre 2006. [En línea]. Available:

http://upcommons.upc.edu/pfc/bitstream/2099.1/3812/1/54629-1.pdf. [Último

acceso: 10 febrero 2013].

[7] D. R. Rodríguez, «busy-tone.org,» agostp 2012. [En línea]. Available:

http://busy-tone.org/wp-content/uploads/2012/10/VoIP-Pentest-Lab-

BusyTone.pdf. [Último acceso: 7 febrero 2013].