Beruflich Dokumente
Kultur Dokumente
Departamento de Telemática de la
E.S.I de Sevilla.
22 de febrero de 2007
Índice general
1. INTRODUCCIÓN. 5
1.1. TELEFONÍA TRADICIONAL. . . . . . . . . . . . . . . . . . . . . . . . 5
2. MOTIVACIONES Y OBJETIVOS. 11
2.1. MOTIVACIONES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2. OBJETIVOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3. LA VoIP. 14
3.1. INTRODUCCIÓN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3.1. EMPAQUETADO . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.2. MULTIPLEXACIÓN. . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3.3. COMPRESIÓN. . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3.4. CODECS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.2.1. ARQUITECTURA . . . . . . . . . . . . . . . . . . . . . 29
2
Índice general
3.4.3.1. ARQUITECTURA. . . . . . . . . . . . . . . . . . . . . 40
4. ASTERISK. 51
4.1. INTRODUCCIÓN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2. ARQUITECTURA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3. CONFIGURACIÓN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.2. INTERFACES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5. DESARROLLO. 67
5.1. DESCRIPCIÓN DETALLADA DE LA SOLUCIÓN. . . . . . . . . . . . 67
FONIA IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3
Índice general
7. BIBLIOGRAFIA 135
4
1 INTRODUCCIÓN.
Desde sus inicios, las redes empleadas para transmitir nuestras conversaciones tele-
comunicación.
El uso de sistemas de conmutación de circuitos estaba justicado por una buena razón:
hasta los años sesenta, el único tipo de tráco que circulaba por estas redes era trá-
forma algo forzada. Apareció el módem analógico, que durante años ha sido el principal
método para transmitir datos sobre la red pública. Al contrario que la comunicación de
ráfagas (secuencias cortas de alta intensidad), estando el canal desocupado durante una
en forma de un ujo digital hasta llegar a las centrales locales, donde se realizaba una
digitalización por motivos de coste. Puesto que el bucle local seguía siendo analógico,
nismo. Este esquema estaba bastante aceptado y funcionó razonablemente bien, hasta
5
1 INTRODUCCIÓN.
que cantidades de carga crecientes comenzaron a inundar la red pública debido al rápido
La solución proporcionada hasta ahora ha sido la evolución de una nueva red digital de
local, desde módems de cable a xDSL, que aparte de la ventaja del mayor ancho de
banda, ofrecen acceso directo a Internet sin necesidad de ocupar recursos destinados a
voz.
estos momentos con dos redes: una para voz, y otra para datos.
taba como una alternativa económica e integradora a la red de voz tradicional, mediante
de volver a utilizar una única red para el transporte de ambos tipos de tráco se torne
banda, permite un uso óptimo de los recursos disponibles. Por lo tanto, la alternativa al
empleo de dos redes separadas pasa por el transporte de voz sobre una arquitectura de
este tipo.
A todo esto, se le une una serie de inconvenientes presentes en los sistemas de telefonía
tradicional, junto a las ventajas complementarias que ofrecen los sistemas basados en
VoIP:
6
1 INTRODUCCIÓN.
tencia en el mercado ha hecho caer los precios, las PBX tradicionales se han
algún otro nuevo servicio, deberá hacer una fuerte inversión de dinero para
hecho de que el circuito esstablecido debe ser exclusivo para una llamada du-
rante el tiempo que esta dure, hace que se subutilicen los recursos y no se
de paquetes.
1. Los dispositivos de VoIP son más fáciles y menos costosos de mantener ya que
para voz.
IP.
movilidad y ahorro.
7
1 INTRODUCCIÓN.
son los principales inconvenientes que presenta la VoIP. Todo ello resulta en una pérdida
primer paso esencial en el camino hacia la resolución de los problemas de latencia, sin
incremento de ancho de banda tan pronto como éste es añadido, de manera que esto no
Las compañías han estado frustradas en el pasado debido a inversiones en sistemas PBX
de propiedad, que las han atrapado en una tecnología que se convierte obsoleta.
Este hecho también ha frenado la innovación de servicios por parte de los usuarios al ser
plataformas completamente cerradas. Son sistemas caros en los que el usuario no solo
paga por el hardware sino que también debe pagar por licencias de uso por usuario de
cada aplicación.
Las compañías pueden evadir los obstáculos que presentan los sistemas PBX basados
IP, que se basan en una arquitectura abierta y exible, implementada en software, que
permite a las empresas escalar de sitios únicos y pequeños a sitios grandes y múltiples.
Las compañías no tienen que invertir en una nueva infraestructura, pero, en su lugar,
aumentan la red de datos que ya tienen para sus sistemas de información y computación.
Los sistemas privados de telefonía IP ( IP PBX) cada vez obtienen una mayor cota de
8
1 INTRODUCCIÓN.
con un bajo coste para adaptarse a las necesidades de la empresa. Otros servicios con las
impulsados principalmente por los propios usuarios. También facilita la interacción con
otros sistemas software existentes. Todo ello recibe el nombre de CTI (Computer Telep-
productividad.
En 1991 Linus Tolvards hizo público un kernel basado en el sistema operativo UNIX
para ordenadores con procesadores 386 de Intel. No tardó en unirse al proyecto GNU de
la Free Software Foundation adoptando una licencia GPL (Generic Public License). El
kernel es el núcleo del sistema operativo, pero por sí solo no forma un sistema operati-
operativo Linux junto al aprovechamiento del software libre existente para Unix.
des propias.
Libertad que permite mejorar el programa y hacer públicas las mejoras en benecio
libertad
La licencia GPL pone por escrito esta losofía. Promover la copia y conocimiento del
9
1 INTRODUCCIÓN.
ello es que algunas administraciones públicas han sustituido sus sistemas Microsoft por
sistemas Linux. En el mercado de los servidores web Apache (open source) tiene el 60 %
propietario es un producto por el que se debe pagar mientras que el libre se adquiere de
modo gratuito. La primera impresión es que no es posible hacer negocio con él. La losofía
open source es que el software no es un producto sino un servicio. Está idea además
coincide con las necesidades de una empresa, ya que generalmente no desea comprar
simplemente una caja en la que viene empaquetado un software, sino que también quiere
obtener un servicio.
10
2 MOTIVACIONES Y
OBJETIVOS.
2.1. MOTIVACIONES.
donde sea necesario la comunicación entre múltiples ocinas o donde se necesite reem-
que no presente limitaciones de ancho de banda, como es el caso de una red área local.
profesores, con la posibilidad de marcado al exterior, así como la gestión de dicho sistema
a través de una interfaz gráca de fácil acceso para el usuario. De esta forma se hace
comunicaciones sea puesto en marcha sin modicar la infraestructura existente y sin que
suponga coste alguno. Además el sistema pretende ser una herramienta de trabajo para
De esta forma, una vez implantado el sistema de comunicaciones, permitirá que un ad-
ministrador de red, vía interfaz web, congure los distintos parámetro propios de una
centralita IP: codecs, videoconferencias, llamada en espera, buzón de voz, etc. Permi-
tiendo así recrear distintos escenarios de comunicación y evaluar la calidad del sistema
en cada situación:
11
2 MOTIVACIONES Y OBJETIVOS.
Se podrá evaluar la calidad de diferentes codecs de voz, así como permitir que los
cación.
de telefonía IP, se presenta como una herramienta válida para poner de maniesto las
ventajas e inconvenientes de la tecnología IP, así como ofrecer una base sobre la cual se
la tecnología de VoIP.
2.2. OBJETIVOS.
basada en el software libre Asterisk y dotada con una interfaz gráca que permite su ad-
Para lograr tal objetivo, el desarrollo del proyecto de ha dividido en varias fases:
los terminales telefónicos o "softphones", que operaran bajo los protocolos SIP y IAX.
12
2 MOTIVACIONES Y OBJETIVOS.
una parte del proyecto de software libre FreePBX version 2.1.1, que implementa una
uso de un "media gateway" ( dispositivo que permite la integración entre redes de distinta
Una vez implantado el sistema, el funcionamiento del mismo seguirá los siguientes pasos:
1. Los usuarios estableceran una llamada para contactar con otro usuario, o bien una
llamadas establecidas.
13
3 LA VoIP.
caciones de voz en tiempo real a través de redes IP, inicialmente desarrolladas para el
transporte de datos. Las redes IP han evolucionado desde la transmisión de datos única-
mente, hasta realizar las funciones de una red tradicional de conmutación de circuitos.
La mayor parte de las redes de conmutación que existen en la actualidad serán rempla-
sólo una reducción de los costes, sino que proporcionará también el desarrollo de una
serie de nuevos servicios para voz y datos que no hubiesen sido posible con las redes de
En este apartado se describirán los elementos del estándar de VoIP, así como una des-
dominante del futuro, debido tanto a su reducido coste como a su exibilidad, será otro
3.1. INTRODUCCIÓN.
logía que permita hacer convivir en la misma red voz y datos. Esto obliga a establecer
un modelo o sistema que permita encapsular la voz para ser transmitida junto con los
Protocol) y a encontrar un método que nos permita la transmisión de voz sobre dicho
protocolo. Esto se consigue con el estándar VoIP (Voice Over Internet Protocol).
14
3 LA VoIP.
Dicho estándar, regula el transporte de los datos de voz a través de redes IP en forma
de paquetes de datos. El interés de transportar la voz por este tipo de redes, en lugar
de éstas últimas y a las ventajas aportadas por las redes de conmutación de paquetes:
3. Mantenimiento caro.
banda disponible.
3. Al no tener que reservar canales exclusivos para cada llamada, permite la reducción
integración de éstas con las redes de telefonía tradicional es un reto difícil y ,actualmente,
presentan ciertas limitaciones. Hay que tener en cuenta que los principios de diseño que
dieron lugar a la red de telefonía que actualmente conocemos, son casi los opuestos a los
que originaron la red IP. Mientras que IP proporciona un servicio de tipo "Best-Eort"
15
3 LA VoIP.
una aplicación especíca: la telefonía, y construyó una red adaptada a sus necesidades.
Internet, por otro lado, comenzó exactamente en el extremo opuesto: creó una nueva
tecnología de red y buscó, con éxito, aplicaciones que pudieran hacer uso del servicio
ofrecido.
IP cuenta con varias limitaciones, que se han hecho más evidente conforme la red au-
go, el tráco por la red no sólo ha cambiado en volumen, sino también ha cambiado en
Entre estas nuevas aplicaciones, la telefonía se destapa como una de las más exigentes.
de las aplicaciones más difíciles de satisfacer. A pesar de ser una aplicación multimedia,
sus requisitos de ancho de banda son muy escasos, apenas 8 Kbytes por segundo en cada
durante la comunicación.
tiempo real, los requisitos de temporización son mucho más restrictivos que los de capa-
incremento del ancho de banda es una primera solución para los problemas de latencia,
ancho de banda una vez que éste es añadido, de manera que esto no supone una salida.
Son imprescindibles nuevas medidas que aseguren cierta calidad del servicio prestado.
En los siguientes apartados se irán viendo los elementos necesarios utilizados por la
Este capítulo describe los pasos necesarios llevados a cabo para transmitir la voz a través
de redes IP, desde que ésta es capturada en el origen de la comunicación hasta que es
16
3 LA VoIP.
formato digital nal empleado por la tecnología de VoIP para su transmisión a traves
técnicas vienen impuestas según los diferentes tipos de enlaces de datos y dispositivos,
sión son usadas en circunstancias diferentes. No siempre las propiedades de los enlaces
de datos, tales como capacidad o latencia, son factores decisivos en la elección de estas
técnicas. Esta conversión de la señal a formato digital es llevada a cabo tanto en el mun-
DAC incluye digitalización de la voz, cuantización de la señal digital, ltrado para pre-
servar el ancho de banda y compresión de la señal para una mejor eciencia del ancho
de banda. La técnica de muestreo más común para convertir señales audibles a señales
digitales es la Modulación por Implusos Codicados (MIC), donde la señal analógica será
Para establecer una llamada telefónica, un teléfono tradicional, sea analógico o digital,
requirirá un enlace con suciente capacidad como para transportar un ujo de datos de
64 Kbps. Ésta es la velocidad jada para cualquier línea de teléfono tradicional. Tanto
sistemas de telefonía analógica como digital ofrecen una claridad del sonido similar, ya
que operan en el mismo rango de muestreo de la señal de voz: 8000 Hz. Esta frecuencia
64kbps.
17
3 LA VoIP.
digital como analógica, requirirá un ancho de banda de 64kps, es por ello que este valor
VOZ.
3.3.1. EMPAQUETADO
El empaquetado de la voz es el proceso, en tiempo real, por el cual un ujo de voz digi-
sobre la red.
18
3 LA VoIP.
recibida mediante terminales IP. Esto hace que la señal sea más manejable para ser
diferencia del sistema de telefonía digital RDSI, la señal de voz en una llamada a través
través de la red en unidades que también son usadas para transportar otros tipos de
3.3.2. MULTIPLEXACIÓN.
La red de telefonía tradicional (RTC) ofrece una forma de proveer una mayor capaci-
dad de llamadas que la que provee la linea telefónica tradicional. A través de una línea
compuesta por dos pares de hilos conductores, a diferencia de la línea tradicional, com-
puesta por un sólo par de hilos, puede transmitirse hasta 24 llamadas simultáneas. Esta
unir centrales telfónicas (PBX). La técnica usada para aprovechar mejor los recursos
proveen una mayor densidad de llamadas a través de un mismo medio. Por contra, la
adquisición de estos cirtcuitos tiende a ser bastante cara y es por ello que suelen em-
de datos, suelen ser usados por los proveedores de servicio a Internet (ISP) que necesitan
3.3.3. COMPRESIÓN.
VoIP provee una forma más económica de compartir el medio de transmisión. Para ello
emplea técnicas de compresión sobre las muestras de sonido usadas para representar la
voz en la red, de tal forma que una menor cantidad de enlaces físicos son requeridos
usados en una conversación telefónica tradicional, por debajo de los 44 kbps, sin llegar
algoritmos usados por VoIP para codicar los datos de sonido o para decrementar los
19
3 LA VoIP.
3.3.4. CODECS.
Los codecs, llamados así por la función que desempeñan tanto en el transmisor, como
algoritmos usados para empaquetar ujos de datos multimedia (voz y/o audio), que
transportados en tiempo real sobre la misma. Existen docenas de codecs para audio
y video, pero aqui sólo describiremos los que son más comunes en las redes VoIP.
La mayoría de estos codecs usados en redes VoIP son denidos por recomendaciones
Dentro del grupo de codec denidos por la ITU-T, pueden distinguirse dos tipos: los que
van destinados a aplicaciones que requieren una alta delidad como puede ser la difusión
de voz que serán transmitidas en tiempo real. Será sobre estos últimos sobre los que nos
centraremos posteriormente.
Los codecs de audio para aplicaciones de telefonía, así mismo, se dividen en dos grupos:
aquellos que se basan en la modulación por impulsos codicados para transmitir la señal
formato más adecuado. Así estos dos grupos de codecs de telefonía son los codec PCM,
que son los codecs básicos de 64 kbps, y los vocoders, los cuales van un paso más alla del
algoritmo PCM. Por último, puede considerarse un tercer grupo de codecs, los codecs
de codecs se caracterizan por tener una tasa de bit de 64 kbps, siendo el más
representativos de todos ellos el codec G.711. Esta tasa es muy elevada para las
posibilidades de algunas partes de la red, por lo que cada vez se utilizan menos
En este grupo también se encuentran los codecs predictivos, que comparan a codi-
car con las anteriores y codican sólo la señal de error, con una menor cantidad
de bits y también mediante forma de onda. Se usan menos bits ya que la señal de
error es más pequeña que la muestra en sí, tiene un menor rango dinámico. Con
20
3 LA VoIP.
estos codecs se puede reducir la tasa de error hasta los 18 kbps, a cambio de perder
un poco de calidad.
Vocoders:
30ms), según el tipo de codec. Una vez con estas muestras, la analizan mediante
determinados algoritmos para sacar los coecientes del ltro vocal ( que hará el
papel del tracto vocal de la persona que habla) y para crear la señal de excitación
( que simula el impulso del aire que pasa por las cuerdas vocales al hablar). Con
receptor.
transmisión muy bajas, por contra la voz reproducida suena muy sintetizada, poco
Codecs híbridos:
Estos codecs tienen las ventajas de los vocoders, en cuanto a que se basan en
el modelo de excitación, más un ltro vocal para conseguir bajas tasas de bit
con la original, para así transmitir también el error cometido con muy pocos bits y
ser codicado bien mediante índices o por forma de onda, según el codec, y se
transmite junto con los coecientes del ltro vocal y la señal de excitación. Con
esto se consiguen tasas de transmisión también muy bajas y además una calidad
Dentro de este grupo, podemos encontrar a los codecs: G.729 y G.723.1, estan-
telefonía IP:
21
3 LA VoIP.
• G.711.
usado por los circuitos de telefonía digital tradicional, como E1. Este codec
logarítmica para discretizar los niveles de amplitud, mientras la otra usa una
uLaw suele ser usado en Norte America y parte Asia, mientras que ALaw
Code Modulation) o CELP ( Code Excited Linear Predition) para reducir los
• G.722.
Este codec tiene ocupa un gran ancho de banda, ya que hace un muestreo de
tiene mucha mayor calidad que el resto de los codecs usados para VoIP. Por
• GSM.
Este codec, usado en el sistema de telefonía movil global, ofrece una tasa de
T, hace uso del algoritmo CELP para lograr una alta escala de compresión y
22
3 LA VoIP.
• ILBC.
• Speex.
además de una tasa binaria variable. Speex permite cambiar la tasa binaria
Cada uno de estos codecs tiene sus ventajas e inconvenientes. G.711 es adecuado en
enlaces donde hay suciente capacidad y presentan poca latencia, como es el caso de
Ethernet. Éste presenta un buen comportamiento ante los errores, pero, por ejemplo, no
sería adecuado su uso en un enlace Frame Relay de 56 kbps, ya que no se dispondría del
suciente ancho de banda. Recíprocamente, los codecs que proveen una algún tipo de
Además de los bits que representan los datos de audio, todos los paquetes transportan
otros bits usados para funciones de rutaje, corrección de errores, etc. Esta sobre carga de
bits no representa ningún benecio para la aplicación de VoIP, más que permirtir a los
necesaria para el transporte del paquete a través de la red. Cuanto mayor sea la cantidad
por la red, ya que hacen falta menos paquetes para transportar el mismo sonido, y por
de VoIP es reducir el número de paquetes por segundo usado para transmitir la señal
de audio. Pero esto incrementa el impacto de los errores sobre la llamada telefónica.
23
3 LA VoIP.
un determinado codec puede ayudar, ya que cada uno proporciona distintas tasas de
Los diferentes tipos de codecs usan diferentes tasas de paquetes. Al espacio entre los
relación a la tasa de paquetes. Algunos codecs, especialmente aquellos que usan algorit-
mos CELP avanzados, requieren una mayor cantidad de audio ( 20 ms, 30 ms) en un
paquetes tiene un efecto directo sobre la sobrecarga. Cuanto mayor es éste, menor será
la sobrecarga requerida para transmitir los datos de audio, y viceversa. Pero por contra,
el aumento del mismo provoca un aumento directo de la latencia o retraso de los datos,
es decir, la diferencia de tiempo entre el momento en el que el sonido fue originado hasta
será mayor. Ya que un paquete IP no será transmitido hasta que éste sea totalmente
construido, una trama de audio no podrá viajar a través de la red hasta que éste esté
percibida en el receptor.
paquetes grandes: cuanto mayor sea la duración de sonido transportada por cada paque-
te, mayor será la porbabilidad de que el extremo receptor note un efecto negativo en el
un paquete que transporta 20ms de audio es apenas imperceptible con el codec G.711,
pero no así la pérdida de 60 ms de audio, que puede ser bastante molesto. El principal
motivo por el que el sonido es transmitido bajo datagramas UDP, es porque ofrece un
servicion no able y no orientado a conexión, de tal forma que aquellos paquetes perdido
implicaría que todos los paquetes que se notiquen como perdidos serían retrasmitidos.
Este efecto haría que los paquetes en el extremo receptor llegasen completamente fuera
Si se considera un muestreo de 8khz para una señal de audio básica con 8 bits por mues-
tra, y se asume un intervalo entre paquetes de 20ms, puede verse que la cantidad de datos
24
3 LA VoIP.
los bit de cabecera introducidos por cada protocolo que encapsula el mensaje, resulta
1.904 por trama, suponiendo que se utiliza ethernet como tecnología de transimisión.
la información a transmitir, para que así los requerimientos de ancho de banda necesarios
Una forma importante de reducir ancho banda, además del que se consigue al comprimir
la señal, es el uso del sistema DTX / VAD / CNG. Se trata de un sisitema de transmisión
Confort Noise Generator, CNG). Dicho sistema consiste en no enviar paquetes de datos
durante los silencios de las conversaciones. En estos silencios, aunque no se hable, seguirá
habiendo ruido de fondo, por lo que será necesario transmitir algún tipo de información
que sirva para reproducir el ruido de fondo en el receptor y no perder así la naturaleza
25
3 LA VoIP.
de la conversación. Este tipo de tramas con información para el ruido se conocen como
tramas SID ( Silence Insertion Descriptor) y son de poco tamaño comparadas con las
tramas de datos. El elemento del codec encargado de generar el ruido de fondo a partir
algoritmo DTX, también es menos sensible a los errores de transmisión que en un sistema
tramas tramas SID, se cogen los parámetros de las anteriores para generar el ruido
actual, de manera que afecte poco esa pérdida. En el caso en que se pierda la primera
trama SID de un tramo de silencio, durante la fases de habla se van estimando también
Para que este sistema funcione es fundamental el buen funcionamiento de los detectores
ción y concluyen si en este fragmento analizado ha habido voz ( tramo de "active voice"),
o no ( tramo de "inactive voice"). En los tramos de voz activa se envia información útil,
y en los tramos de voz inactiva, se mandan tramas SID, para que el decodicador pueda
generar un ruido de fondo adecuado, o , incluso, no se envía nada. Las tramas SID sólo
Para determinar si estamos ante un tramo de voz inactica o activa, los VAD's se basan
Este apartado describe los estándares de señalización de llamadas en una red de VoIP.
26
3 LA VoIP.
software), PBX tradicionales y por cualquier otro elemento que pueda interferir en una
comunicación telefónica, a través del cual pueden comunicarse para establecer, negociar
y nalizar llamadas.
La tecnología de voz sobre IP, provee una familia de protocolos de señalización. La mayor
Sus propósitos son señalizar, registrar y facilitar los eventos claves de una llamada:
el comienzo, el nal de llamada y cuándo los usuarios están intentando usar una
Aunque las llamadas de señalización suelen establecerse usando UDP como proto-
colo de transporte, no son vistas como tráco en tiempo real, como ocurre con la
El patrón de tráco que sigue la señalización cuando ésta es transmitida por la red,
suele ser de poca duración y a ráfagas, en oposición al tráco de voz que tiende a
lefonía IP: el Protocolo de Inicio de Sesión (SIP), desarrollado por el IETF ( Internet
Engeneering Task Force); y H.323, desarrollado por la ITU-T. Existen otra serie de pro-
tocolos de señalización, desarrollado por compañias privadas, como pueden ser: SCCP,
Entre todos los estándar de señalización que existen, aquellos que han sido elaborados
por organismos públicos, como son SIP y H.323, nos aportarán una mayor exibilidad
ción para toda la comunidad de Internet. Entre estos dos principales éstandares existen
27
3 LA VoIP.
sustanciales diferencias, en cuanto a los distintos tipos de caminos por donde pueden
establecer las llamadas telefónicas. H.323, hace posible establecer una comunicación en-
posee una interfaz que le permite establecer una llamada con los sistemas de telefonía
terminal tradicional, sea analógico o digital. Fue diseñado para permitir una comunica-
ción entre terminales IP. Sin embargo, una gran ventaja de SIP es su exibilidad para
carencia de H.323.
paquetes. H.323 no tiene que ser entregado completamente usando una red IP. Ciertas
das, por medio de la señalización, con todos los dispositivos que intervienen en una
comunicación. Por ejemplo, H.323 permite la señalización sobre las líneas de teléfonos
Mientras que el estándar H.323 se encuentra en un estado bastante maduro y bien do-
cumentado por la ITU-T, éste ha sido implementado en partes especícas por cada
28
3 LA VoIP.
sistemas de distintos fabricantes. Para conseguir este objetivo, se hace uso de dispositi-
vos trandicionales, tales como E1, como elemento intermediador, ya que la mayoría de
Los paquetes de mensajes H.323 son compactos, y la señalización H.323 es muy rápida,
especialmente comparada con SIP, el cual usa mensajes más largos y basados en texto
plano. El diseño de H.323 está basado en los fundamentos del diseño de la Red Telefónica
Conmutada: brevedad y disponibilidad. La red es usada tan poco como sea posible para
sonido.
3.4.2.1. ARQUITECTURA .
Al alcance de red dentro del cual un gatekeeper opera se le denomina "zona". Puede
haber sólo un gatekeeper por zona y una zona por gatekeeper. Es normal referirse a un
Tanto los terminales H.323 como los gateways, para que puedan ser accesibles a las
Esto quiere decir que cada terminal H.323 debe informar al gatekeeper de cuáles son
sus características únicas que lo identican: número de telefóno, dirección IP, etc. Este
29
3 LA VoIP.
cer mucho más que canales dedicados con otro terminal, se perderían, entre otras, las
Registro y autenticación.
para ser usado como identicador cuando éste efectue una llamada.
para posterior uso cuando autentique al terminal, junto con un hash, que es
identidad.
Conrm), indicando que está listo para realizar y recibir llamadas en la red.
30
3 LA VoIP.
de elementos software que le permiten cubrir diferentes aspectos del proceso de llamada:
compatibles.
real.
aplicaciones interactivas.
y las tecnología tradicionales de señalización y transportes tales como FXO, FXS, RDSI,
E1, etc. Este elemento es requerido sólamente cuando se pretende hacer interoperar la
el codec G.711.
Los gateways también deben registrarse con el gatekeeper para la zona en la que ellos
31
3 LA VoIP.
multiconferencia entre tres o más canales de voz. Ésta puede ser implementada en un
Una MCU está formada por dos componentes fundamentales: MP (mulipoint processing)
la MCU encargado de llevar a cabo las accciones de un DSP, para agregar canales
de gestionar las negociaciones H.245 entre todos los terminales para determinar las
capacidades comunes para el procesado de audio y datos. También controla los recursos
de la conferencia para determinar cuáles de los ujos, si hay alguno, serán multipunto
(multicast). Las capacidades son enviadas por el MC hacia todos los extremos de la
32
3 LA VoIP.
Algunos protocolos, como RTP ( Real Time Protocolo) y RTCP (Real Time Control
tamente. Otros, como H.225.0 y H.245, derivarón del ITU-T H.320, H.221 y H.242, y
algunos otros, como el protocolo RAS, fue diseñado especícamente para H.323.
Como se describe más adelante, cada protocolo o conjunto de ellos en H.323 tiene como
Direccionamiento.
Señalización:
H.225.0: protocolo que describe cómo el audio, los datos y la información de con-
trol, en una red de conmutación de paquetes, pueden ser usados para proporcionar
H.225.0 siguen el estándar Q.931 y son del tipo: mensaje de establecimiento de lla-
de la llamada y otros.
nales lógicos para comunicaciones de voz, para realizar las negociaciones de los
que pueden ser del tipo: peticiones, respuestas, comandos y mensajes de indicación.
Información de audio:
Todos los terminales deben soportar el codec G.711. También pueden utilizarse
Información de vídeo:
En el caso que los terminales H.323 soporten vídeo llamada o vídeo conferencia,
serán utilizados los protocolos H.261 y H.263, que dene la manera de transportar
33
3 LA VoIP.
Funcionaliadad opcional, que en el que caso de que sea soportada será implemen-
caciones que transmiten en tiempo real. Maneja los aspectos relativos a la tempo-
receptor.
Control de la transmisión:
Servicios suplementarios.
capacidades, establecer canales de audio y/o video, llevar a cabo la llamada y liberación
de la llamada.
1. Establecimiento/nalización:
34
3 LA VoIP.
Para iniciar una llamada se hace uso del protocolo H.225. Durante este paso, cada
Alerta: esto signica que el extremo receptor está siendo noticado de que
está sonando, y que el terminal que originó la llamada está recibiendo una
indicación de ello.
nalizada.
2. Negociación de capacidades
Después de establecer la llamada, se hace uso del protocolo H.245 para negociar
H.245 determina:
video u otras.
Cuáles son los codecs disponibles para cada terminal y cuáles son sus prefe-
rencias.
Cómo los canales serán estructurados y qué tipo de intervalo será usado.
35
3 LA VoIP.
señal de ocupado.
Control Protocol) es utilizado para establecer un canal UDP donde tendrá lugar
Una vez que la llamada esté en progreso, RTCP, que se ejecuta junto a RTP en
puertos UDP consecutivos, puede guardar ventanas del canal de comunicación, que
5. Liberación
36
3 LA VoIP.
En la anterior gura puede verse el proceso de señalización que tiene lugar cuando un
terminal H.323 intenta establecer una llamada con otro terminal via un gatekeeper:
2. El gatekeeper contesta con una conrmación ARQ (ACF). Esto conrma al lla-
llamada.
tener una copia de la petición de registro del llamante para validar la llamada.
6. Si el gatekeeper tiene una copia de este registro, devuelve el mensaje "Called Party
7. El receptor, una vez que comienza a sonar, envía en mensaje H.225 "Alerting",
8. Una vez que el receptor conteste a la llamada, éste envía un mensaje H.225 "Con-
nect" al otro extremo de la comunicación. Esto deja paso a que el proceso H.245,
minales, es el papel que juega éste en las sesiones H.225, sin inuir en el camino que
37
3 LA VoIP.
E.164 es una convención para asignar números de teléfonos a terminales en una red de
VoIP. E.164, permite a los terminales de una red de VoIP registrar dinámicamente sus
números de direcciones E.164 desde una lista de números almacenados en una base de
datos en el gatekeeper.
Esta base de datos es una lista de direcciones MAC Ethernet, cada una de las cuales
corresponden a una o más direcciones E.164. De esta forma se controla que terminal va
a usar un determinado número, permitiéndo así una fácil movilidad de los terminales en
la red: no importará a qué lugar vaya el terminal H.323, su dirección E.164 siempre será
la misma.
Pero exiten una serie de incovenientes usando direcciones MAC como enlaces hacia una
Existen mejores formas de manejar la asignación de alias a los terminales H.323, ya que
38
3 LA VoIP.
El Protocolo de Inicio de Sesión, fue desarrollado por el IETF, como una forma de
Los deberes y escenarios de SIP son los mismos que los de H.323. Es decir, hay terminales
y establecen políticas para la red de VoIP. Sin embargo, SIP es más exible que H.323,
puede considerarse más que un conjunto de protocolos de telefonía para audio y video. Se
trata entorno de trabajo para todos los tipos de aplicaciones basadas en el intercambio de
como H.323, usa cabeceras de gran longitud y codicadas en texto plano, como es el
caso de SMTP o HTTP, lo que permite, de forma más cómoda, la solución de problemas
distribuida.
39
3 LA VoIP.
3.4.3.1. ARQUITECTURA.
SIP sigue el modelo cliente/servidor. En el entorno SIP, tanto servidores como los puntos
nales de una comunicación, son llamados "nodos". Un telefóno SIP, es un nodo, y como
cada nodo, puede comunicarse directamente con cualquier otro para, de esta forma,
poder establecer sesiones multimedias, tal y como los terminales H.323 pueden establecer
canales directos entre ellos. Pero la conguración más usual es usar servidores SIP, a los
cuales el resto de los teléfonos SIP deberán noticar su presencian, es decir, deberán
2. Servidores de red.
Los agentes de usuario son aplicaciones que residen en los nodos terminales SIP, y contie-
nen dos componentes: Agentes de Usuario Clientes ( User Agent Client, UAC) y Agentes
40
3 LA VoIP.
de Usuario Servidores ( User Agent Server, UAS). Los UAC originan las peticiones SIP
, y los UAS responden a estas peticiones, es decir, originan respuestas SIP asociadas al
extremo que recibe la llamada. Los UA's deben implementar el transporte tanto sobre
Los UA's y UAS's pueden establecer, por sí solos, una comunicación. No obstante, la
potencialidad de SIP se aprovecha con el empleo de los servidores de red. Los servidores
Servidores de redirección.
Servidores Proxy.
Servidores de Registro.
es decir la URL de la parte llamada, o cómo contactar con ella. En caso contrario,
papel de gatekeeper.
Cuando un servidor SIP responde a la solicitud INVITE, enviada por la parte que origina
la llamada, con una respuesta 3xx, el servidor SIP está redireccionando a dicha parte
hacia otro servidor SIP. Posteriormente, el nodo SIP debe contactar con el nuevo servidor
SIP a través de otra solicitud SIP. Esta característica no está implementada en todos
los sistemas que soportan SIP, y suele ser propia de entornos extensos que operan bajo
de vista del llamante se comporta como un servidor y desde el punto de vista del receptor
como un cliente. Un servidor proxy puede reenviar solicitudes hasta el destino nal sin
41
3 LA VoIP.
Los servidores proxy statefull retienen información dela llamada durante el proceso que
dure el establecimiento de ésta, no así los servidores stateless, que procesan un mensaje
SIP y entonces olvidan todo lo referente a la llamada hasta que vuelvan a recibir otro
llamada una vez que la transacción ha sido procesada. Además, esta relación es muy
rubusta, dado que el servicio no necesita recordar nada en relación a la llamada. Sin
embargo, no todas las funcionalidades pueden ser implementadas por un servidor state-
También se les denominan servidores de localización ( Location Server), pues son utiliza-
dos por los servidores proxy y de redirección para obtener información de la localización
del sistema SIP, sino más bien, base de datos que pueden formar parte de arquitecturas
que utilicen SIP. Entre éstos y cualquier servidor SIP, sea proxy o de redirección, no se
utiliza el protocolo SIP, sino protolos típicos de bases de datos o servicios de directorio,
borrado.
42
3 LA VoIP.
Los nodos SIP son referenciado usando URI ( Uniform Resources Indicator), con la
siguiente estructura
sip:usuario@servidor_sip
Esta convención indica tanto el usuario al que quiere alcanzarse como el servidor SIP ,
que se espera que conozca la dirección SIP del usuario nal. Aquellas conecciónes que
requieren una encriptación para la señalización usaran el prejo "sips", en lugar de "sip"
43
3 LA VoIP.
Mientras que H.323 usa la sintaxis ASN.1 para la descripción del formato de los mensajes,
Las solicitudes SIP se clasican dentro de diez categorías, llamadas métodos. Cada mé-
1. INVITE: este método es usado para establecer sesiones y anunciar las capacidades
2. ACK: es usado para conrmar que el cliente solicitante ha recibido una respuesta
armativa.
3. OPTIONS: es usado para preguntar a un nodo SIP por sus capacidades, sin que
4. BYE: este método ocurre cuando la llamada es completada, es decir, cuando alguna
5. CANCEL: cancela una solicitud pendiente, pero no afecta a una solicitud ya com-
44
3 LA VoIP.
6. REGISTER: notica al servidor SIP en qué terminal SIP un usuario puede ser
alcanzado.
7. INFO: es usado para trnasmitir señales de aplicación de telefonía a través del canal
usado por la señalización SIP. Tales señales pueden ser dígitos marcados, etc.
8. PRACK: este método es usado en lugar de ACK para noticar al otro extremo
10. NOTIFY: este método entrega mensajes entre estremos SIP, tales como eventos
Cuando una llamada debe ser establecida, nalizada o alterada, un evento SIP es em-
pleado. Los eventos precedentes son similares en concepto a los métodos de HTTP:
GET y POST; y como en HTTP, SIP espera códigos de respuestas cuando un método
aceptada.
solicitud.
4xx: error del cliente. La solicitud contiene mal la sintaxis o no puede ser resuelta
en este servidor.
mente válida.
45
3 LA VoIP.
tocolo de señalización para redes VoIP, tal y como ocurre con H.323 y SIP. La principal
diferencia con estos últimos es que IAX no implementa RTP como mecanismo de paque-
tezación, sino que éste tiene su propia forma de empaquetar los datos de voz codicada.
IAX es implementado de forma más simple y menos exhaustiva que SIP o H.323. A
diferencia de estos últimos, que son más extensibles, IAX va dirigido exclusivamente a
aplicaciones de telefonía.
voz y nalización, puede usar varios puertos TCP y UDP, en el caso de SIP o H.323, el
protocolo IAX maneja todas estas funciones usando un único puerto UDP. Tanto cuando
el cliente IAX, terminal, se registra con el servidor o proxy IAX, así como cuando una
La forma que IAX utiliza para distinguir las distintas funcionalidades llevadas a cabo
46
3 LA VoIP.
La documentación del protocolo IAX describe el orden de estas cabeceras y los meta-
datos, tales como tramas de control, meta-tramas y elementos de información, cada uno
de los cuales tiene su propia sintaxis. IAX no está codicado usando ASCII, ni ASN.1,
interfaz máquina-máquina.
Al contrario que ocurre con H.323 y SIP, IAX no es una recomendación estándar, sino
más bien un protocolo independiente creado por Mark Spencer. Aunque propietario, la
47
3 LA VoIP.
HANGUP
como rutado
recomendada recomendada
E.164 o alias
keeper/SoftPBX
48
3 LA VoIP.
Estos dos protocolos surgieron con la aparición, como consecuencia de la liberación del
telefónicos de la RTC, a través de una red IP. En estos escenarios no exiten terminales
pasarelas VoIP conectadas entre sí a través de una red dorsal IP, y localmente, a una o
Con objeto de que las pasarelas que proporcionan el inter-funcionamiento entre la red la
red telefónica y la red IP sean lo más sencillas posibles, el proceso de llamada y el manejo
esta forma, las pasarelas sólo tienen que encargarse del manipulado físico de los ujos
el MGC
xiones, etc
controlador de las mismas. Una MGC controlará a varios MC a través del protocolo
H.248, y se comunicará con otras MGC a través del protocolo SIP o H.323.
49
3 LA VoIP.
50
4 ASTERISK.
4.1. INTRODUCCIÓN.
Asterisk, es una implementación "open source" de una centralita telefónica (PBX: Pri-
vate Branch Exchange). Como cualquier PBX, Asterisk permite a un cierto número de
teléfonos conectados a él realizar llamadas entre ellos y conectarse a otros servicios tele-
fónicos, incluido la RTC. Su nombre viene del símbolo '*', que tanto en entornos UNIX
Asterisk es editado bajo una doble licencia, por una parte posee una licencia de software
libre, GNU Public License (GPL), y por el otro lado posee una licencia comercial, para
permitirle ejecutar código cerrado o patentado, tal y como ocurre con el codec G.729 (
aunque el codec G.729 puede trabajar tanto con versiones comerciales o libres). Mark
de software libre, existen una docena de programadores que han contribuido con nuevas
sistema operativo Linux, Asterisk ahora también se ejecuta sobre OpenBSD, FreeBSD,
Mac OS X , Sun Solaris y Microsoft Windows, aunque como plataforma nativa, Linux
nibles en sistemas PBX propietarios, tales como: buzón de voz, conferencia de llamadas,
respuesta interactiva y distribución automática, entre otras. Los usuarios pueden añadir
Asterisk, que posteriormente serán interpretados por éste; añadiendo módulos persona-
otros lenguajes.
51
4 ASTERISK.
tener acceso a la RTC, el servidor deber ser equipado con cierto hardware ( un simple
módem no será suciente). Digium y otras rmas venden tarjetas PCI para conectar
servidor.
Puede decirse que, hoy en día, el mayor interés que recibe Asterisk, se debe en parte,
al soporte que presenta ante un amplio rango de protocolos de VoIP, incluyendo SIP
y H.323. Asterisk, puede interoperar con teléfonos SIP, actuando como un servidor de
registro y como Gateway entre los teléfonos IP y la RTC. Los desarrolladores de Asterisk,
también han diseñado un nuevo protocolo, IAX, para una eciente comunicación entre
servidores Asterisk.
migrar sistemas tradicionales hacia nuevas tecnologías. Algunas empresas están usando
servidores Asterisk para reemplazar sistemas PBX propietarios; otras para proveer ca-
de Internet.
llamada planta o central por los usuarios. Es un servicio ofrecido por una empresa de
telecomunicaciones, por el cual una cantidad n de líneas o números son agrupadas en un
único número que se publica o muestra al público y al cual pueden llamar. La empresa
proveedora se encarga de distribuir las llamadas entrantes por las líneas disponibles
El cliente que compra este servicio puede contratar 10 líneas jas y tener 10 teléfonos
en su ocina y aunque los 10 números son diferentes y pueden ser accedidos de forma
independiente, el servicio PBX le permite tener un solo numero y así facilitar a sus
clientes la marcación del mismo. Cuando entra una llamada, ésta es asignada a la primera
52
4 ASTERISK.
línea disponible, y lo mismo sucede con el resto de llamadas entrantes que se cursen
En los orígenes de la telefonía era necesario conectar manualmente cables para establecer
la comunicación. Este sistema era conocido como PMBX (PBX Manual). Este dispositivo
de conmutación llamado PABX (PBX automático) que desplazó al PMBX hasta hacerlo
El uso de un PBX evita conectar todos los teléfonos de una empresa de manera separada
a la red de telefonía local pública RTC, evitando a su vez que se tenga que tener una
línea propia con cargos mensuales y salidas de llamadas hacia la central telefónica que
ción pueden ser conectados a un PBX (aunque el módem puede degradar la calidad de
y conecta llamadas entre los teléfonos instalados en ella. Cuenta además con un número
limitado de líneas externas disponibles para hacer llamadas al sitio. Las compañías con
múltiples sedes pueden conectar juntos sus PBX a través de líneas troncales. El servicio
Las llamadas hacia el exterior en un PBX son hechas marcando un número seguido del
Al igual que las PBX, Asterisk provee interoperabilidad entre un sistema local de tele-
fonía y la RTC. Muchas de las características en una PBX tradicional son raramente
usadas, incluso algunas de ellas han sido desarrolladas exclusivamente para un único
cliente. Es por esto que Asterisk no posee todas las características de las PBX de todos
53
4 ASTERISK.
los fabricantes, sin embargo, debido a que se trata de un proyecto de software libre, pue-
4.2. ARQUITECTURA.
Asterisk ha sido cuidadosamente desarrollado para obtener una máxima exibilidad. Al-
tocolos especícos, codecs e interfaces hardware utilizadas para las distintos servicios de
telefonía. Esto permite que Asterisk utilize cualquier hardware y tecnología convenientes,
54
4 ASTERISK.
carga.
Módulos API's:
API de canal (channel API): esta API maneja el tipo de conexión por la que se
VoIP, RTC, RDSI o de cualquier otra tecnología. Distintos módulos serán carga-
dos dinámicamente para manejar los detalles de la capa de bajo nivel de estos
componentes.
API de aplicación (Aplication API): esta API permite que varias aplicaciones sean
listado de directorios y , en general, cualquier otra tarea que los sistemas PBX
API de traducción de codecs (Codec translator API): se encarga de cargar los dis-
tintos módulos de codecs para poder codicar y decodicar los distintos formatos
de datos.
55
4 ASTERISK.
Usando estas API's, Asterisk logra una abstracción entre sus funciones bases, propias de
permite soportar transmisiones de voz a través de conexiones lentas, tales como las
conexiones a través de módems telefónicos, así como proveer una alta calidad de audio
El API de aplicación, provee un exible uso de los módulos de aplicación para ejecutar
necesidades y situaciones únicas. Además, cargar todas las aplicaciones como módulos
hace que el sistema sea un sistema exible, permitiendo a los administradores diseñar
la mejor trayectoria para las llamadas entrantes en el sistema PBX, así como modicar
las trayectorias de las llamadas para satisfacer las necesidades de la comunicación, que
56
4 ASTERISK.
Es necesario saber qué interfaces están disponibles y cómo éstas trabajan para ser capaz
una interfaz, ya sea SIP, Zaptel, H.323, IAX, etc. Cada llamada es colocada o recibida
canal físico como una línea POST ( Plain Old Telephone Service) , o a un canal lógico
Es muy importante diferenciar la llegada de una llamada en el canal desde la que fue
realizada. Cuando una llamada llega a Asterisk a través de un canal, el plan de marcado
determina qué es lo que hay que hacer con ella. Por ejemplo, una llamada puede llegar a
través de un canal SIP, siendo su origen bien un teléfono SIP o un SIP "softphone" eje-
Asterisk provee varias aplicaciones, las cuales pueden ejecutarse en el plan de marcado
Diferentes tipos de interfaces son asociadas con diferentes tipos de hardware o protocolos.
Por ejemplo, los canales SIP son usados para rutar llamadas, tanto hacia dentro como
hacia fuera de Asterisk, a través de IP usando el protocolo SIP. Una llamada puede llegar
al servidor Asterisk a través de un canal SIP o dejar Asterisk, saliendo hacia Internet, a
Todas las llamadas llegan al sistemas a través de un canal, incluso las llamadas internas.
usuario uye a través del canal activo y el plan de marcado decide qué es lo que hay que
Asterisk usa un driver ( típicamente llamado chan_xxx.so) para soportar cada tipo de
canal.
La siguiente tabla muestra los archivos donde se guarda información relacionada con
57
4 ASTERISK.
hardware.
Asterisk.
aplicación AGI.
de Asterisk.
la administración remota.
58
4 ASTERISK.
4.3. CONFIGURACIÓN.
más importantes:
asterisk.conf
extensions.conf
features.conf
Le cuenta a Asterisk cómo manejar algunas características tales como las llamadas
h323.conf
59
4 ASTERISK.
iax.conf
Le cuenta a Asterisk cómo manejar el protocolo IAX para interactuar con otros
clientes.
manager.conf
modules.conf
se ejecute.
sip.conf
logger.conf
deben ser.
voicemail.conf
Mail"
zapata.conf y zaptel.conf
Le cuenta a los módulos de señalización del kernel y a Asterisk qué tipo de interfaz
60
4 ASTERISK.
Todas las llamadas realizadas desde, hacia y a través de Asterisk, son manejadas por
medios de circuitos lógicos de voz, que puede consistir en una línea telefónica a través de
la cual sólo se establecerá una conexión o en una única conexión física donde cientos de
comunicaciones comparten la conexión, como ocurre con los teléfonos SIP conectados a
se les conoce como canales, y el propósito de Asterisk es manejar su tráco de voz acorde
a un conjunto de reglas conocidas como plan de marcado, dial-plan. El efecto que el plan
Muchos si temas PBX convencionales usan el plan de marcado para tratar con llamadas
que sólo podrán ser realizadas o contestadas cuando alguna persona se encuentre presente
en el otro extremo del terminal. Esto requiere ampliar el sistema añadiendo un nuevo
módulo hardware que actuará como servidor de correos y contestador automático, para
atender las llamadas cuando nadie se encuentre en las ocinas. Ante esto, se puede
decir que Asterisk utiliza el plan de marcado con un propósito más general: completar
encuentre presente como cuando no haya nadie. El plan de marcado de Asterisk incluyen
usuario.
Una llamada se recibe a una determinada hora del día, de la semana, etc
tiempo.
La persona que realiza la llamada presiona ciertos dígitos tras escuchar un menú.
La persona que realiza la llamada es dejada en espera o necesita entrar en una cola
61
4 ASTERISK.
En este archivo podemos distinguir tres secciones, cada una encabezada por una palabra
entre corchetes que dene el nombre de la sección. La primera sección, llamada [gene-
ral], te permite establecer el valor de dos opciones usadas para controlar que el plan
Asterisk. La segunda sección, llamada [globals], se utiliza para denir variables cuyos
sección de este archivo de conguración, son los llamados contextos. Mientras que sola-
mente pueden existir una sección llamada "general" y otra "globals", en el caso de los
contextos pueden existir tantos como se quiera. Un contexto, dene diferentes modos de
Por ejemplo, una llamada entrante al sistema puede escuchar un menú donde se le diga:
"Pulse 1 para contactar con el Departamento de Marketing, Pulse 2 para contactar con
el departamento de Ventas, etc". Tras ésto se marcarán los dígitos del departamento (
contexto) que con el se quiera hablar, y una vez allí sólo serán alcanzables un conjunto
de extensiones propias de ese departamento, de tal forma que si se marca otra extensión
la llamada. Es una forma de controlar el conjunto de servicios a los que una llamada
62
4 ASTERISK.
4.3.2. INTERFACES.
de marcado, otros archivos son necesarios para congurar las interfaces VoIP y TDM
necesarias para permitir al servidor Asterisk comunicarse con el mundo exterior. Estos
El chero "zaptel.conf" contiene información usada por Asterisk para determinar qué
interfaces para interactuar con los módulos o drivers, van a usarse con el hardware
que se tiene instalado. Este archivo se divide en secciones, en cada una de las cuales
se congura una única interfaz. Dichas interfaces permiten una abstracción entre el
hardware, el driver usado para controlarlo, y el código de Asterisk, de tal forma que si el
driver es actualizado no tenga que modicarse el código de Asterisk, ya que las llamadas
Mientras "zaptel.conf" establece la elección del tipo de señalización para cada pieza
espera, tono de llamada, etc). La conguración de cada canal se hace antes que el canal
sea designado con un número, y heredará aquellas propiedades que hayan sido denidas
63
4 ASTERISK.
Asterisk implementa el protocolo SIP sólo parcialmente. Aunque el protocolo SIP dene
para conectar teléfonos SIP y para conectarse a otros sistemas que también utilizan SIP.
Asterisk trata con SIP en términos de canales: extremos de una llamada. Se necesitan
dos canales para completar una llamada entre dos teléfonos SIP, de igual manera que si
canal es establecido cuando una llamada es recibida desde, o redirigida hacia, un SIP-
peer. Los teléfonos SIP, al igual que los servidores SIP y cualquier terminal que tenga
exclusivo, seguida por secciones especícas para cada SIP-peer que esté conectado di-
forma global al módulo SIP de Asterisk, mientras que cada sección especíca trata sólo
En la sección general se pueden establecer qué codecs pueden usar o les está permitido
usar a los terminales SIP, el contexto por defecto hacia el que se redigirán las llamadas
entrantes hechas por los terminales SIP, si los terminales serán autenticados, etc. Una
vez que se hayan establecido las funcionalidades globales en esta sección, se pasa a esta-
blecer la conguración individual de cada dispositivo SIP que esté conectado a Asterisk.
para crear y gestionar canales iax. Al igual que los anteriores está divido en secciones,
denidas por una palabra entre corchetes indicando el nombre del canal al que hace
referencia, salvo la sección general que será donde se establecerán las parámetros globales
la sección general: [general]. Los parámetros de esta sección se aplicarán a todas las
64
4 ASTERISK.
conexiones que usen este protocolo, salvo a aquellos canales que sobreescriban el valor
de este parámetro.
A través del protocolo IAX, Asterisk puede compartir su plan de marcado, permitiendo
que otros servidores Asterisk lean este archivo, así como poder leer el plan de marcado
de un servidor remoto. Cuando esto sucede, el driver del canal IAX debe quedarse a la
espera de una contestación proveniente del servidor remoto antes de poder continuar con
otro proceso IAX relacionado. Ésto puede especialmente problemático cuando tenemos
múltiples planes de marcados anidados entre servidores remotos, con lo cual se podrá
apreciar un retraso razonable hasta que el resultado sea devuelto. Para evitar este com-
portamiento, existe una parámetro que le indica a Asterisk que cree un proceso separado
cuando se ejecute un plan de marcado remoto. El uso de este hilo permite que el driver
del canal IAX continúe con otro proceso mientras el hilo espera la respuesta.
IAX provee mecanismos de autenticación que permite un nivel de seguridad able entre
decodicada , sino que puedes tener un mayor control de a quién le está permitido
establecer conexiones con tu sistema. Existen tres niveles de seguridad soportados por
los canales IAX, que será indicado en la variable "auth": texto plano, md5 y RSA.
Cuando varias llamadas van destinadas hacia el mismo terminal o nodo de la red, po-
demos agruparlas para reducir el ancho de banda usado por las cabeceras del paquete
IAX. Esta propiedad es propia exclusivamente del protocolo IAX y está diseñada para
sacar partido de las múltiples conexiones de larga distancia que pueden ser establecidas
entre dos nodos de la red. La reducción de carga se hace permitiendo que la señalización
65
4 ASTERISK.
66
5 DESARROLLO.
En este apartado se va a describir el proceso llevado acabo para el desarrollo del proyecto.
a desarrollarse, y se especicarán cada una de las etapas o fases en las que se divide el
SOLUCIÓN.
El proyecto será llevado a cabo en una de las aulas del laboratorio de VoIP del departa-
los cuales uno de ellos jugará el papel de servidor dedicado, donde se ejecutará el servidor
a través de una interfaz web y servidor de base de datos Mysql, donde se almacenan los
usuarios del sistema. El resto de ordenadores serán utilizados como clientes telefónicos,
es decir, desde un punto de vista lógico, actuarán como teléfonos IP, ya sea operando
La interconexión entre los ordenadores se realiza a través la red de área local del la-
trabaja, opera bajo un rango de IP's dadas por los siguientes valores:
Máscara: 255.255.255.0
67
5 DESARROLLO.
del laboratorio con la red pública donde se encuentran conectados los ordenadores de
los profesores del Departamento de Telemática. En el router se llevaran a cabo las me-
didas oportunas para permitir la comunicación entre la subred privada donde se aloja la
centralita IP y la red pública del departamento, donde los ordenadores de los profesores
también actuarán, desde el punto de vista la PBX, como teléfonos IP conectados a dicha
centralita.
implantar, es la siguiente:
68
5 DESARROLLO.
Esta arquitectura responde a uno de los requisitos del proyecto, donde se pide que tanto
los ordenadores de los profesores como los que se encuentren situados en el aula del
laboratorio de VoIP, deben formar parte del mismo sistema de telefonía IP, es decir,
centralita IP, no deben existir diferencias entre los ordenadores que residen en la misma
subred que Asterisk, la red del laboratorio, y los ordenadores de la red del Departamento.
uno de los requisitos del proyecto, pero realmente la arquitectura que sobre la que se ha
69
5 DESARROLLO.
permitirán compartir el medio físico entre las estaciones conectadas a una misma subred.
La interconexión de las dos redes se realiza mediante el router, donde será necesario
congurarlo de tal modo que permita el ujo de datos en ambas direcciones, permitiendo
así publicar servicios alojados en la subred privada, como es el caso del servidor Asterisk
Como parte del sistema de telefonía IP, pueden distinguirse los siguientes entidades,
gramas, en nuestro caso, software libre, con soporte para alguno o varios de los
siguientes protocolos de señalización: SIP, IAX y H.323). Desde este punto de vis-
ta, cada ordenador puede representar a más de un teléfono IP, siendo alcanzado
70
5 DESARROLLO.
podía haber optado por utilizar teléfonos IP hardware, que presentan una calidad
mayor, pero por contra suponen un coste innecesario en este proyecto, ya que con
los clientes empleados se alcanza la funcionalidad deseada del sistema. Los modelos
protocolo IAX.
función será llevada a cabo por el servidor Asterisk, en su versión estable 1.2.
Media Gateway: hace la función de pasarela de medios, entre redes que operan
bajo distinta tecnología. Permite interconectar la red RDSI con la red IP. En este
caso, se hace uso de un hardware dedicado modelo Teldat, que permite tanto la
bajo el protocolo SIP o IAX, debe poseer una cuenta con la que autenticarse
ante la centralita. Asterisk, jugará también este papel, actuando como registrador,
de vista del protocolo SIP, Asterisk actuará como SIP Registra, controlando el
acceso al sistema, y como SIP Server, con el que se comunicará un usuario cada
71
5 DESARROLLO.
proyecto. Se detallarán las distintas tareas que las componen y se dará un a visión de
conforme al desarrollo real, comenzando por la fase de puesta implantación del sistema
de telefonía IP base, donde se describe, partiendo desde cero, cómo llegar al entorno de
trabajo deseado: terminales telefónicos gestionados por una central telefónica; siguiendo
propio nombre indica señalará los cambios realizados sobre dicha interfaz para dotar al
los pasos llevados a cabo para conseguir una correcta comunicación entre ambas.
TELEFONIA IP.
La versiones usadas durante el desarrollo del proyecto del servidor Asterisk y del resto
Módulo del kernel que presenta una capa de abstracción entre el driver del hardware
externos.
72
5 DESARROLLO.
Librería opcional que será útil cuando se este usando interfaces RDSI Primarias.
ya que esta es usada por otros hardware basados en TDM ( Multiplexación por
División en el Tiempo).
Contiene programas útiles para poder almacenar CDR's (Call Detail Records) en
bases de datos MySQL, ejecutar archivos MP3 y también un intérprete para cargar
Para poder compilar Asterisk en nuestro sistema, hace falta satisfacer una serie de de-
pendencias, es decir, deben instalarse previos al software base, formado por los paquetes
principales Asterisk, Zaptel y Libpri, una serie de librerías sobre las que se apoya Aste-
risk:
1. bison
3. termcap
distintos colores.
73
5 DESARROLLO.
4. ncurses-dev
5. zlib
Requerido para el el protocolo Dundi. Protocolo usado para buscar en una base
de datos que actúa como listín telefónico, donde partir del nombre de usuario la
6. libnewt
en el servidor Asterisk.
7. sendmail
Software utilizado por Asterisk para el envío de correos electrónicos cuando se hace
8. libspeex
Va a comentarse las dos formas que existen de obtener el código fuente del sistemas
posteriormente se dirá cuál de las dos formas es la más adecuada según el caso. Estas
formas atienden a la naturaleza del software, es decir, por tratarse de un software libre,
los procedimientos de descarga, compilación e instalación, así como la gestión del mismo,
dieren en gran medida de los de un software bajo licencia propietaria, donde la fase de
La primera forma es a través del servidor FTP ocial de Asterisk, alojado en la siguiente
74
5 DESARROLLO.
desarrollo o de pruebas, y donde la mayoría de los fallos hayan sido reparados, así como
La otra forma de obtener el código fuente, es a través del sistema CVS (Concurrent
Cuando se hace alguna modicación sobre el código fuente, éste es enviado al servidor
CVS, de tal forma que la nueva modicación queda disponible para su descarga. En este
sistema existen varias ramas de desarrollo del programa, entre ellas la rama estable y
la rama inestable. Realmente, la rama estable, no es puramente una rama estable, sino
que va sufriendo una serie de modicaciones menores hasta convertirse en una edición
totalmente estable, momento en el cual pasará a alojarse bajo el servidor FTP. Esta
forma es la más adecuada cuando se quiere probar nuevas características del sistema,
aún no muy maduras, o se quiere realizar alguna modicación al código fuente del
programa.
En nuestro caso, se ha optado por descargar el código desde el servidor FTP, ya que
público del mismo, por lo que no quiere comprometerse la seguridad, ni estabilidad del
sistema.
En los siguientes apartados se describen los pasos seguidos en la compilación del códi-
vas interfaces hardware del tipo FXS, FXO, o de conexión a RDSI. Además, el hecho
de haber compilado previamente este software, evitará tener que recompilar Asterisk en
caso de querer añadir dicho soporte una vez que Asterisk haya sido compilado.
Zaptel-1.2.11
75
5 DESARROLLO.
Módulo del kernel que presenta una capa de abstracción entre el driver del hardware
externos.
Mientras que Asterisk puede compilarse en diversas plataformas, los drivers Zaptel
Antes de compilar los drivers Zaptel en un sistema Linux, debe vericarse que
dentro del directorio /usr/src (directorio donde será almacenado el código fuente
a las cabeceras del kernel que estemos usando. En caso de que no existiera habría
que crearlo:
# cd /usr/src
Una vez hecho esto, la compilación de los drivers "Zapata telephony" consiste
# cd /usr/src/zaptel-1.2.11
# make clean
# make
# make install
Los dos programas que serán instalados junto con "zaptel-1.2.11", son: ztfcg y
zttool. El programa ztcfg es usado para leer la conguración del hardware del ar-
El driver zaptel debe ser el primero en cargarse en el sistema, una vez se halla
distintos software que tenga nuestro sistema. Las siguientes instrucciones pueden
# modprobe zaptel
76
5 DESARROLLO.
Libpri-1.2.4
# cd /usr/src/libpri-1.2.4
# make clean
# make
# make install
"libpri" será usado por varios dispositivos hardware basados en multiplexación por
La librería "libpri" no necesita ser cargada como un driver o módulo del sistema,
su uso.
Asterisk-1.2.11
través del programa make. En este caso, no se necesita ejecutar previamente ningún
# cd /usr/src/asterisk-1.2.11
# make clean
# make
# make install
Asterisk, se hizo uso de otras opciones de compilación que permitían añadir nuevas
utilidades al sistema:
# make samples
77
5 DESARROLLO.
detallada información sobre la opciones soportadas por las aplicaciones, así como
# make webvmail
Se trata de un script, Asterisk Web Voicemail, que ofrece una interfaz gráca a tu
# make progdocs
Este comando crea documentación acerca del código fuente de Asterisk, usando la
hechos en el código fuente. Para obtener con éxito la documentación, se necesita te-
ner instalado en nuestro sistema dicha herramienta antes de que este sea invocado.
# cd /usr/src/asterisk-sounds
# make install
Una vez instalado el sistema, se ejecuta el servidor Asterisk para comprobar que funciona
# asterisk -cgvvvvv
# /usr/sbin/safe_asterisk
78
5 DESARROLLO.
El objetivo principal del script "safe_asterisk" es, en caso de que el servidor falle, guardar
en un archivo los motivos que provocaron la caída de éste, útil para una posterior fase
Con respecto a la seguridad ante ataques de red y casos similares, se ha evitado que
el servidor Asterisk se ejecute como usuario root, ya que esto puede comprometer la
seguridad del sistema si alguien logra acceso a él. Para ello se ha creado un nuevo
usuario, llamado "asterisk", cuyo grupo asociado poseerá el mismo nombre, y el cual se
(para permitirle el manejo de la tarjeta de sonido) y dialout (para poder tener acceso
El siguiente paso, una vez instalado el núcleo principal del sistema de telefonía IP,
consiste en la conguración tanto de los parámetros del servidor como de los terminales
telefónicos que vayan a usarse, para permitir que estos últimos puedan comunicarse entre
sí, así como hacer uso de las numerosas aplicaciones que Asterisk ofrece.
exclusivamente con el protocolo SIP, ya que esta parece ser la tendencia dominante en los
protocolo propietario IAX, protocolo desarrollado únicamente para su uso con el servidor
Asterisk, por su capacidad para evitar los problemas derivados de los entornos donde se
realiza NAT (Network Address Translation). Esta característica del protocolo IAX, en
nuestro caso es muy interesante, ya que se pretende la intercomunicación entre una red
pública y otra privada, donde además los servicios que deben publicarse se alojan dentro
de la red privada, con la consecuente reconguración de los parámetros del router que
esto conlleva. Es por ello, que se tenderá a la utilización de clientes que implementen el
protocolo IAX, ya que gracias a que éste transporta todo el ujo de datos a través de
la misma conexión, sólo será necesario abrir el puerto del router destinado a este efecto,
puertos.
79
5 DESARROLLO.
Todos los ordenadores del sistema que actúen como terminal telefónico, es decir aquellos
que posean soporte para los protocolos de señalización nombrados anteriormente, ten-
drán instalados tres clientes diferentes: uno de ellos implementa el protocolo IAX y los
los protocolos SIP y H.323. Está disponible para varios sistemas operativos: MS
open source,GPL. Soporta ambos protocolos, SIP y H.323, así como la transmisión
80
5 DESARROLLO.
PBX.
2. Nombre de usuario (debe coincidir con el nombre de alguna cuenta que hayamos
con el software Asterisk, se describirán los distintos módulos que componen la inter-
faz, la conguración del servidor Apache necesaria para que la interfaz sea accesible vía
web, la integración del sistema con el servidor de base de datos MySQL versión XXX y
,por último, se explicarán las modicaciones hechas sobre el código fuente para añadirle
81
5 DESARROLLO.
FreePBX (Asterisk Manager Portal) es un interfaz gráca de usuario que permite con-
original fue la empresa Coalescent Systems Inc, aunque como la mayor parte de los pro-
yectos de software bajo licencia GPL, cuenta hoy día con una amplia comunidad de
Alguna de las características más importantes que facilita la administración del servidor
Record).
Grabación de llamadas.
82
5 DESARROLLO.
que integre FreePBX, viene implementada por un módulo, que debe ser activado
para poder usarse. Por defecto la interfaz trae la mayor parte de los módulos des-
activado, siendo tarea del usuario nal activar aquellas funcionalidades que más le
interesen.
éstas recibidas.
sión.
83
5 DESARROLLO.
Backup & Restore : Añade una herramienta que permite hacer copia de segu-
ridad o restaurar los archivos de conguración de la interfaz.
• Informes diarios o mensuales sobre los detalles de las llamadas procesadas por
el servidor Asterisk.
• Tráco mensual.
• Carga diaria.
• Exportación de los detalles de las llamadas bajo el formato de archivos 'pdf '.
Por defecto, Asterisk guarda los detalles de las llamadas procesadas en archivos con
84
5 DESARROLLO.
FOP:
Éste es otro proyecto independiente de software libre que viene integrado con la
través del puerto TCP 5038, mientras que el cliente establece una comunicación
con el servidor a través del puerto TCP 4445. El servidor se conecta al Manager
como de informar a todos aquellos que mantengan una conexión con él de todos
ash y Asterisk.
85
5 DESARROLLO.
En el panel se reejan:
• Colgar un canal.
mada.
86
5 DESARROLLO.
ARI:
tware libre que se integra bajo la interfaz FreePBX. Éste provee acceso vía interfaz
web al sistema de buzón de voz de Asterisk, así como a las grabaciones de las
llamadas monitorizadas.
87
5 DESARROLLO.
ya que ésta hace uso de un gran número de paquetes software. El mayor problema se
presenta a la hora de determinar qué paquetes hace falta tener instalados en el sistema
para que la compilación pueda llevarse a cabo de forma exitosa. A continuación se da una
descripción de la línea que hay que seguir para instalar la interfaz, para más información
Para poder compilar la interfaz, hace falta que en el sistema donde va a instalarse
libxml2
libxml2-devel
88
5 DESARROLLO.
libti
libti-devel
lame
Apache
mysql-server
php4
libapache2-mod-php4
php4-pear
php-gd
perl
perl-CPAN
curl
sox
Una vez instaladas todas las dependencias, se prestará especial atención a la congu-
paquete LAMPP (Linux Apache Mysql PHP Perl), se trata de un paquete software pre-
compilado que permite una fácil instalación y conguración de los módulos anteriores.
Una vez ejecutadas las aplicaciones anteriores, sólo quedaría ejecutar el siguiente script:
89
5 DESARROLLO.
# amportal start
web:
http://localhost/
5.2.2.3.1. INTRODUCCIÓN.
Como se dijo anteriormente el FOP, consiste en dos partes, un servidor y un cliente. El
servidor establece una conexión con el Asterisk Manager en el puerto TCP/5038 y actúa
de proxy entre el cliente ash y Asterisk. El cliente ash se comunica con el servidor
panel ash reeja los cambios de estado y envía comandos de control a Asterisk.
Mientras que la comunicación entre cliente y servidor se lleva a cabo mediante un pro-
tocolo cerrado desarrollado por el creador del FOP, la comunicación entre el servidor y
Asterisk Manager, se basa en una interfaz abierta denida dentro del proyecto Asterisk,
dentro de un mismo mensaje, delimitadas entre ellas por el carácter CRLF y utilizando
el doble carácter CRLF CRFL, para delimitar los mensajes entre sí:
90
5 DESARROLLO.
...
Dial: Ejecuta la aplicación "Dial", utilizada para iniciar una llamada con una extensión.
Event: Dial
Privilege: call,all
Source: Local/900@default-2dbf,2
Destination: SIP/900-4c21
CallerID: <unknown>
CallerIDName: default
SrcUniqueID: 1149161705.2
DestUniqueID: 1149161705.4
cicado.
Event: Hangup
Channel: SIP/101-3f3f
Uniqueid: 1094154427.10
Cause: 0
Originate: Establece una llamada entre un canal y una extensión, ambas indicadas como
parámetros.
91
5 DESARROLLO.
ACTION: Originate
Channel: SIP/12345
Exten: 1234
Priority: 1
Context: default
Asterisk Manager.
Los mensajes podrán ser enviados en cualquier dirección una vez que el otro ex-
de que el mensaje sea enviado hacia el Asterisk Manager, y con la clave "Event"
92
5 DESARROLLO.
Cuando un canal está ocupado, o hay alguien en una conferencia, el círculo de dicho
botón se volverá rojo. Si éste está disponible el circulo se volverá verde, y ,por último,
si éste parpadea continuamente, indicará que el canal está la extensión está sonando.
Antes de que los usuario del FOP pueda realizar cualquier acción sobre el panel, es
necesario que éstos introduzcan el código de seguridad, sin dicho código, cualquier acción
será ignorada. Una vez se hayan registrado en el sistema, los usuarios podrán:
93
5 DESARROLLO.
1. En vez de existir un código de seguridad único para todos los usuarios del panel,
debe asociarse un código de seguridad a cada extensión, de tal forma que , indirec-
2. Ligado con lo anterior, un usuario sólo podrá establecer una llamada desde el FOP
si la extensión origene es la suya. De esta forma se limita que los usuarios puedan
originar llamadas entre extensiones de terceros o forzar a que sea ellos el extremo
receptor de la llamada.
5. Comprobar, una vez que se ha iniciado el servidor proxy del FOP, cuál era el estado
de los usuarios registrados en el sistema Asterisk, de tal forma que el panel reeje
el estado actual de los usuarios del sistema. Por defecto, cuando el FOP se inicia
En el apartado siguiente, se verá como para dotar al sistema de estas nuevas funcionali-
dades será necesario modicar el núcleo del FOP, es decir, el código fuente del servidor
Entorno de desarrollo Eclipse, basado en software libre, con soporte para multitud
94
5 DESARROLLO.
FASE 1
ma. Para ello, nos hemos valido de las herramientas de análisis del entorno
html, de tal forma que se han obtenido varios archivos html, que permiten
una página html a modo de índice, donde se puede navegar por las distintas
secciones del código, es decir, se muestra un listado de las funciones que posee
el código, del conjunto de variables globales del mismo y del bucle principal,
FASE 2
Estudio de cada sección del código en detalle. En esta fase se hace un estudio,
forma que pueda llevarse a cabo la modicación del mismo. Como resultado
FASE 3
Esta será un fase iterativa, junto con la anterior, que se encargará de depurar
95
5 DESARROLLO.
ción, lo que permitirá analizar la salida del programa ante los eventos de
interés.
grama de ujo del bucle principal. El bucle principal, representa a grandes rasgos cual
es la dinámica del programa ante determinados eventos. Para una mayor compresión del
programa haría falta indagar en las distintas funciones de las que se hace uso tanto en
el bucle principal, como ,a su vez, en otras funciones. Lo que se pretende dar en este
apartado es una visión general del programa, de tal forma que pueda mostrarse cuáles
96
5 DESARROLLO.
o
Figure 5.10: Bucle principal: 1 parte.
97
5 DESARROLLO.
o
Figure 5.11: Bucle principal: 2 parte.
Requisito 1 y 2:
En vez de existir un código de seguridad único para todos los usuarios del panel,
debe asociarse un código de seguridad a cada extensión, de tal forma que , indirec-
Ligado con lo anterior, un usuario sólo podrá establecer una llamada desde el FOP
si la extensión origene es la suya. De esta forma se limita que los usuarios puedan
98
5 DESARROLLO.
originar llamadas entre extensiones de terceros o forzar a que sea ellos el extremo
receptor de la llamada.
• Funciones implicadas:
◦ "read_password"
◦ "process_ash_command"
Descripción:
"read_password( )"
comando que el cliente ash envía al servidor para que este lo ejecute y
99
5 DESARROLLO.
Posteriormente, esta variable global será utilizada por la segunda función para
determinar si el canal que está ejecutando la acción tiene permiso para ello.
Requisito 3:
• Funciones implicadas:
◦ "procesa_bloque"
• Descripción:
sar los eventos enviados por el Asterisk Manager y crear las respuestas
caso que se esté usando, la conexión hacia el servidor proxy que maneja
La función devuelve una lista con las respuestas que ese evento origina,
y que deberán ser enviadas a los clientes ash que tengan conexión con
que envía el Asterisk Manager. Cuando el valor de dicha variable coincida con
caso haremos caso omiso, evitando así enviar un comando al cliente ash para que
canal sólo estará desactivada ( botón en modo transparente) cuando dicho cliente
100
5 DESARROLLO.
monitorizado .
Requisito 4:
• Funciones implicadas:
◦ script "retrieve_op_conf_from_mysql.pl"
• Descripción
Este script es ejecutado cada vez que creamos un nuevo usuario en el siste-
una vez se hayan escritos los archivos de conguración del FOP, leer el cam-
vale para almacenar los datos de los usuarios, y una vez leído éste junto al
"op_password.cfg".
Requisito 5:
Comprobar, una vez que se ha iniciado el servidor proxy del FOP, cuál era el estado
de los usuarios registrados en el sistema Asterisk, de tal forma que el panel reeje
el estado actual de los usuarios del sistema. Por defecto, cuando el FOP se inicia
• Funciones implicadas:
◦ "procesa_bloque"
◦ "request_astdb_status"
101
5 DESARROLLO.
◦ "process_cli_command"
• Descripción:
interfaz ( que a su vez deben coincidir con una parte o la totalidad de los
y este sea del tipo "astdb", analizar el valor de la variable, que forma
parte del evento, "valor". En el caso en que esta variable tenga el valor
102
5 DESARROLLO.
iniciar el FOP.
"process_cli_command( evento_manager)"
En este apartado va a describirse el proceso llevado a cabo para dotar de soporte H.323
a nuestro sistema de telefonía de voz sobre IP. En principio, nuestro sistema estaba
teniendo una amplia aceptación en el campo de la VoIP, pero las facilidades que nos ofrece
nos permite aprovechar las ventajas de ambas, además de poder aprovechar dispositivos
que en un principio fueron pensados, exclusivamente, para operar bajo el dominio H.323.
una centralita tradicional RDSI, a través de un gateway, que actuará de pasarela entre
103
5 DESARROLLO.
DAT, la arquitectura de red del sistema resultante, así como algunos problemas derivados
5.3.1. OBJETIVOS.
3. Añadir soporte para telefonía analógica, por medio de una de las interfaces que
presenta el gateway.
presentan los sistemas de VoIP actualmente. Puede verse cómo se sobrepasan las fron-
teras propietarias propias de los sistemas cerrados, donde la interoperabilidad suele ser
te:
104
5 DESARROLLO.
entre los elementos, pudiendo diferir de la arquitectura física de conexión que siguen
se detallan el papel que juega y las funciones de cada uno de los nuevos dispositivos
añadidos al sistema y de aquellos que se han visto inuenciados por esta integración:
tiendo que los datos multimedia codicados con diferentes codecs puedan pasar de
un entorno de red basado en H.323 hacia una red de telefonía tradicional, ya sea
analógica o digital (RDSI). Posee, por tanto, tres interfaces: interfaz de red H.323
telefonía digital RDSI. Dentro de la arquitecturas H.323 y SIP, éste actúa como ga-
cada caso.
105
5 DESARROLLO.
Asterisk: este elemento, punto clave del sistema de telefonía, ha adquirido nuevas
cional y telefonía H.323, de tal forma que los terminales SIP no tendrán constancia
el gateway. Esto permitirá que Asterisk pueda contactar con todos aquellos termi-
nales que puedan ser manejados por su gateway vecino. Para permitir este tipo de
comunicación, que se aloja bajo el estándar H.323, ha habido que dotar a Asterisk
dos al gateway TELDAT a través de una de las cuatro interfaces analógicas que
Central telefónica RDSI: a través del gateway TELDAT, se podrán pasar llamadas
podrá permitir una comunicación directa y sin coste alguno entre los usuarios de
Los routers NUCLEOX PLUS están orientados también hacia el mercado de acceso de
ocinas remotas, aunque dadas sus mayores prestaciones y número de interfaces, pueden
ser utilizados también como gateway o pasarela en una red H.323. Están dotados de los
siguientes interfaces:
106
5 DESARROLLO.
diante una conexión local al puerto serie de consola o de forma remota mediante una
conexión vía Telnet. En caso de utilizar el puerto de consola del router (situado en el
frontal del mismo), es necesario conectar éste al puerto serie de un PC, utilizando un
cable serie RS-232 (cable plano negro y adaptador RJ-45/Cannon9 proporcionado con
la conexión con las siguientes características: terminal asíncrono a 9600 bps, 8 bits de
Para acceder de forma remota utilizando Telnet, es necesario haber congurado previa-
mente los parámetros TCP/IP del router (dirección, máscara, etc). Para ello se deben
2. Congurar los parámetros de IP del interfaz LAN (dirección IP, máscara, dirección
IP interna, etc) siguiendo los procedimientos descritos más adelante en este manual.
4. Establecer una sesión Telnet contra la dirección IP del router desde algún ordena-
dor TCP/IP.
La interfaz de conguración está basada en cinco procesos diferentes, cada uno de los
activa nada más acceder al router. Desde él puede accederse al resto de procesos me-
diante la ejecución del comando "process x" (o de forma abreviada p x), siendo x el
107
5 DESARROLLO.
número del proceso deseado. Para volver al proceso 1 desde cualquier otro proceso se
Proceso 2.
Se utiliza para monitorizar el funcionamiento del router (por ejemplo, para ver las
re-arranque el router.
108
5 DESARROLLO.
Cong>PROTOCOL IP
IP cong>
El comando ADD ADDRESS se debe utilizar para asignar direcciones IP a los interfaces
hardware de la red. Los argumentos de este comando incluyen el número del interfaz har-
dware (obtenido con el comando LIST DEVICES ), la dirección IP así como su máscara
asociada.
mente, del mismo modo que se haría en la consola de modo local. También incluyen un
cliente Telnet para poder conectarse a cualquier servidor Telnet de un servidor remoto.
109
5 DESARROLLO.
4, o bien P 4.
TABLA DE LINEAS.
Agregar una entrada a la tabla de líneas. Estas entradas asocian un número de teléfono
(o un prejo) a una línea física del equipo. Al recibirse una llamada se busca la línea a
partir del número llamado y si se encuentra en la tabla se encamina la llamada hacia esa
una línea libre de acuerdo con las prioridades que se hayan congurado.
resulta útil poder marcar un número diferente al número llamante H323 original. Para
aparición en la tabla es importante dado que se procesan de acuerdo con éste: una vez
que encuentra una entrada que se ajusta, deja de comprobar las siguientes. Las entradas
que se agregan con este comando se ponen al nal de la tabla; si desea que ocupen otra
Sintaxis:
Line?[1]? 1
Digits to Strip[0]? 2
Dial-Out Prex? 0
H323 Cong>
110
5 DESARROLLO.
TABLA DE DIRECCIONES.
direcciones IP. Se utiliza para saber cómo acceder a un número de teléfono remoto. El
orden de aparición en la tabla es importante dado que se procesan de acuerdo con éste:
una vez que encuentra una entrada que se ajusta al número de teléfono llamado, deja
de comprobar las siguientes. Las entradas que se agregan con este comando se ponen al
nal de la tabla; si desea que ocupen otra posición hay que utilizar el comando MOVE
ADDRESS.
Sintaxis:
Codec-class Id[0]?
6 abbreviated,7 reserved)[0]? 2
Translation ID[0]? 3
Digits to Strip[0]? 1
Tech-prex[]?
H323 Cong>
111
5 DESARROLLO.
5.3.3.1.5. CODECS.
La placa de VoIP permite la transmisión de voz y fax vía una red de tipo Internet. Con
de acuerdo con diferentes normas (codecs), que en el caso de la placa VoxNet pueden
Ante estos dos tipos de codecs es necesario dotar a Asterisk de un módulo adicional que
de licencia, por tratarse estos de un estándar cerrado que no posee una implementación
libre.
tekeeper de zona H.323, por lo que de momento no será posible tener terminales H.323
gestionados directamente por Asterisk. El esquema actual permitirá, sin embargo, una
comunicación puramente H.323 entre Asterisk y otro terminal propio H.323: gatekeeper,
usarse la versión estable de este módulo, ya que su código está siendo actualizado, sino
mente se encuentra en una fase de desarrollo estable. Ha sido este último, el módulo
112
5 DESARROLLO.
guración del módulo OpenH323, que deben ser leídos por Asterisk para poder actuar
como un gateway:
Sección General
" context " - Contexto por defecto donde irán dirigidas todas aquellas llamadas
entrantes que no tengan un contexto asociado.
Sección Register
-
context =...
alias =...
alias =...
...
" context " - Señala el contexto del archivo "extensions.conf" donde irán las
llamadas entrantes cuya número marcado se relacione con alguno de los alias
113
5 DESARROLLO.
" alias " - Especica el alias H.323 asociado a Asterisk. Si este parámetro
contiene sólo números, entonces será usado para registrarse con el gatekeeper
Sección codecs.
-
codec =...
frames =...
" codec " - Especica un codec a ser usado por el canal H.323. Actualmente
los valores posibles son: G711U, G711A, G7231, G729, GSM o G726.
" frames " - Especica el número de tramas de voz codicada por cada paquete
RTP.
El entorno de trabajo está compuesto, por un lado, por: el aula de VoIP, situada en
ordenadores personales, de los cuales uno de ellos jugará el papel de servidor dedicado,
donde se ejecutará la centralita Asterisk, un servidor web Apache que permitirá la con-
datos Mysql, donde se almacenan los usuarios del sistema. El resto de ordenadores serán
utilizados como clientes telefónicos, es decir, desde un punto de vista lógico, actuarán
como teléfonos IP, ya sea operando bajo el protocolo señalización SIP o IAX; Y por
instalarán, sobre cada ordenador personal, los clientes necesarios para poder interactuar
siguiente:
114
5 DESARROLLO.
de pruebas:
Xlite version 1105d : Utiliza señalización SIP y soporta los codecs: G.711u,G.711a,
Ekiga version 2.0.1: Utiliza señalización SIP (aunque también puede utilizar seña-
Moziax version 0.9.14: Utiliza señalización IAX y soporta los codecs: ilbc, gsm,
speex y G.711u/a.
Kiax version 0.85: Utiliza señalización IAX y soporta los codecs: ilbc, GSM, Speex
y G.711u/a.
Las pruebas que se van a detellar a continuación se llevaron a cabo en dos modalidades,
Camino directo:
115
5 DESARROLLO.
Camino indirecto:
destino sin que los datos de voz y audio tengan que atravesar la centralita Asterisk,
directamente entre los clientes. Para ello, los clientes fueron congurados con la
opción "canreinvite=yes".
A modo de resumen, comentar principales ventajas de uno y otro modo son las siguientes:
el retardo de los datos, pero a su vez, no permite que clientes con distinto juegos de
También impide que pueda establecerse una multiconferencia entre tres o más usuarios,
indirecta, comentar que permite contrarrestar las ventajas del modo anteriror, pero a su
vez aumenta el retardo del ujo, así como sobre carga a la centralita que debe procesar
los ujos de todas las llamadas que se estén cursando en un momento dado.
tengan un conjunto de codecs en común. En este caso, si estamos operando bajo el modo
es hacer que la comunicación pase a través de Asterisk, haciendo que éste actúe como
A continuación se detallan las pruebas realizadas. Las tablas que se muestrán indican,
con una x en el lado "Origen", el codec utilizado por el cliente que inicia la llamada;
y laz "x" en la correspondiente la, en el lado "Destino", indican que las pruebas se
116
5 DESARROLLO.
llevarón a cabo con cada uno de estos codecs en el destino. Por ejemplo, la siguiente
conguración:
Cliente1 X
Cliente2 X X X X
, muestra que se hicieron pruebas con cada una de las parejas de codecs formadas por:
el codec de origen ilbc y cada uno de los codecs disponibles en el destino. De esta forma,
la conguración:
Cliente1 X X X X
Cliente2 X X X X
, indica que se hicieron tantas pruebas como posibles combinaciones de codecs entre
ambos grupos.
117
5 DESARROLLO.
Ekiga X X X X
Xlite X X X X
Resultado
el mismo conjunto de codecs, con lo cual pueden negociar on cualquier de ellos para
leve y la conversación no sufre cortes de voz, sino que se desarrolla de forma continua y
clara.
MozIAX X X X X
Kiax X X X X
118
5 DESARROLLO.
Resultado.
nivel que la prueba anteriror: leve. Este comportamiento puede venir causado por la
Ekiga/Xlite X X X X
Kiax/MozIAX X X X X
Resultado:
practicable. A priori no hay ninguna causa aparente que justique este resultado, ya
que en principio, no se tenia ninguna limitación: ancho de banda suciente, poco tráco
en la red y poca carga en la centralita. Hay que decir que la comunicación entre clien-
tes que usan distinto esquema de señalización, sólo es posible si la centralita hace de
Ekiga/Xlite X X X X
119
5 DESARROLLO.
G.729A
H.323 X
Resultado:
perceptible. La única salvedad es que debe añadirse un módulo a Asterisk para que
puede hacer transcodicación entre el codec G.729 y el resto. Sin esta módulo, sería
imposible establecer una comunicación, ya que a priori, Asterisk, no soporta este codec,
Kiax/MozIAX X X X X
G.729A
H.323 X
Resultado:
adicional en la centralita, para poder realizar transcodicación con este tipo de codec.
Resaltar que al igual que Asterisk no soporta este codec, tampoco lo hacen los clientes
utilizados, ya que estos están bajo los terminos legales de la licencia GNU GPL, la cual
120
5 DESARROLLO.
TELEFONIA IP EN EL AIT.
En los siguientes apartados se detallarán los procesos llevados a cabo para desplegar el
TELEFÓNICOS.
los despachos de profesores y de las salas de práctica. Aquellos despachos y salas que
aquéllos cuyas direcciones IP no sean privadas, estarán equipados con un software cuyas
caracterizados son:
Parámetros de conguración:
121
5 DESARROLLO.
la utilización del protocolo IAX en redes donde se utilize NAT (Network Address Trans-
lation). Es el caso de nuestro sistema de telefonía IP, donde debe existir una interacción
entre las redes privadas del laboratorio y la red pública del departamento de Telemática.
El protocolo IAX, gracias a que tanto la señalización como el transporte de datos se lleva
a cabo a trave? de la misma conexión, nos asegura que una vez que la fase de registro
del cliente con la centralita se realice, se va a poder establecer una sesión multimedia sin
que haya que preocuparse por abrir determinados puertos en el router para permitir la
122
5 DESARROLLO.
comunicación. También cabe resaltar, la facilidad con que se instala dicho software, ya
Por otro lado, se tendrá cierta libertad en la elección de los clientes que se instalarán en
los PC's conectados a la red privada de la sala de VoIP del laboratorio de Telemática.
En principio se hará uso de los clientes Ekiga y Moziax, lo cual nos permitirá comprobar
como afecta a la calidad de la voz el uso de uno u otro software. Los parámetros de
123
5 DESARROLLO.
Para nalizar con la conguración de cara al usuario, cabe señalar la utilidad de la apli-
cación FOP, integrada como parte de la interfaz gráca. Ésta permitirá ver el conjunto
de usuarios disponibles en cada momento en la red, así como los datos relativos a su
localización.
Para permitir una completa integración entre las redes privadas y públicas, hará ata
publicar varios servicios que se sitúan en la red privada, los cuales deben ser accesibles
desde el exterior. Se trata del servicio web a través del cual los usuarios podrán acceder
ASTERISK.
Una vez que ya se ha visto cómo van a congurarse los clientes telefónicos, hace falta
crear las respectivas cuentas a las que van a estar asociados cada uno de ellos. Es decir,
haciendo uso de la interfaz gráca, concretamente del módulo de gestión, hay que creear
tantas cuentas como usuarios haya en el sistema. Cada una de ellas guardará información
sobre la conguración de los usuarios, los permisos que le son otogados y el conjunto de
codecs disponible que pueden usar. El proceso a seguir para dar de alta dichas cuentas
se detalla a continuación:
124
5 DESARROLLO.
125
5 DESARROLLO.
Cabe resaltar, que cada vez que se cree una nueva cuenta, se creará la correspondiente
el FOP, permitiendo de esta forma que los cambios sean observados inmediatamente.
Por último, haremos uso de los servicios ofrecidos por un operador de VoIP para es-
tablecer llamadas internacionales, ya que son estos los que cuentan con las tarifas más
126
5 DESARROLLO.
127
5 DESARROLLO.
(foto3: captura de pantalla de los pasos necesarios desde la interfaz gráca para establecer
una ruta saliente hacia un operador, así como para aceptar las llamadas que nos lleguen
a través de éste.)
que componen la red de VoIP, así como los prejos que permitirán distinguir los tipos
Los terminales situados en los despachos de los profesores tendrán asignados núme-
ros que empiecen por el dígito "1", seguido de tantos otros como fuesen necesario
para agrupar a todos los usuarios de esa zona, de tal forma que la longitud de los
128
5 DESARROLLO.
jados por el caracter "0". Sin distinguir entre números de teléfonos móviles y
tralita cómo manejar el ujo de la llamada. Está compuesto por distintos "contextos",
donde cada uno de ellos se encarga de llevar a cabo ciertas funciones y de restringir otras
[internas]
Este contexto sólo permitirá realizar llamadas entre los usuarios denidos en el sistema.
El esquema que seguirán las mismas, será el siguiente: primeramente, durante diez se-
voz donde se le podrá dejar un mensaje, el cual será enviado a su dirección de correo
[nacionales]
de que no existirá un buzón de voz asociado a ningún número externo al sistema y que
será el usuario que origine la llamada el encargado de nalizar la misma cuando crea
[internacionales]
Como su propio nombre indica, este contexto maneja el ujo de las llamadas cursadas
al extranjero.
[entrantes]
Este contexto manejará todas aquellas llamadas que sea entrantes al sistema. Es decir,
no aquellas hecha por un usuario perteneciente al mismo, sino las que son realizadas
129
5 DESARROLLO.
por usuarios ajenos al sistema. En prinicipio serán llamadas que nuestro operador de
VoIP nos enviará, y a las que mostraremos un menú interactivo donde el que llama
éste mediante un mensaje y se nalizará la llamada. Las llamadas entrantes sólo pueden
alcanzar a extensiones internas, nunca podrán iniciar una llamada al exterior desde
nuestro sistema.
[salientes_restringidas]
[salientes]
de su localización.
Por simplicidad y para una mayor claridad, no mostraremos cada uno de los pasos que
[general]
static=yes
writeprotect=yes
language=es
[internas]
;Llamadas dirigidas a los departamentos.
exten =>_1.,1,Macro(llamadas,${EXTEN:1})
;Llamadas dirigidas al laboratorio.
exten =>_2.,1,Macro(llamadas,${EXTEN:1})
[nacionales]
;Proveedor con tarifas más baratas a teléfonos jos nacionales.
exten =>_09XXXXXXXX,1,Dial(SIP/0034${EXTEN:1}@proveedor1_voip)
exten =>_09XXXXXXXX,n,Hangup
;Proveedor con tarifas más baratas en llamadas a telfonos móviles nacionales.
130
5 DESARROLLO.
exten =>_06XXXXXXXX,1,Dial(SIP/0034${EXTEN:1}@proveedor2_voip)
exten =>_06XXXXXXXX,n,Hangup
[internacionales]
;Proveedor con tarifas más baratas en llamadas internacionales.
exten =>_*1.,1,Dial(SIP/${ENTEN:1}@proveedor3_voip)
exten =>_*1.,n,Hangup
[entrantes]
;Llamadas provenientes de la red de los proveedores de VoIP
;con los que nos hemos registrado.Serán redirigidas al contexto "internas"
exten =>s,1,Background(Mensaje de Bienvenida)
exten =>_1.,1,Goto(internas,${EXTEN},1)
exten =>_2.,1,Goto(internas,${ENTEN},1)
exten =>i,1,Playground(Mensaje_error)
exten =>t,1,Playground(Exceso_tiempo)
exten =>h,1,Hangup
[salientes_restringidas]
include =>internas
[salientes]
include =>internas
include =>nacionales
include =>internacionales
[macro-llamadas]
;En caso de no poder establecerse la llamada, se deja un mensaje de voz.
exten =>s,1,Dial(${ARG1},20)
exten =>s,n,Goto(${DIALSTATUS})
exten =>s,n(CHANUNAVAIL),Voicemail(u${ARG1}@default)
exten =>s,n,Hangup
exten =>s,n(BUSY),Voicemail(b${ARG1}@default)
exten =>s,n,Hangup
131
6 CONCLUSIONES Y LÍNEAS
FUTURAS.
6.1. CONCLUSIONES.
en un entorno centralizado donde todas las comunicaciones son gestionadas por una
Como complemento al sistema, se le pretende dotar de una interfaz gráca que permita
una de las fases decir que ha sido óptimo, aproximándose bastante el resultado nal al
que se deseaba.
despliegue del sistema base: centralita y clientes operando bajo un entorno de red IP; la
amplia variedad de clientes telefónicos existentes, que nos ha permitido optar por aquél
que mejor respondía a nuestras exigencias; y por último, la falta de exigencias respecto
132
6 CONCLUSIONES Y LÍNEAS FUTURAS.
En la segunda fase, cabe destacar el papel fundamental que ha jugado el software Eclipse,
por terceros, nos ha permitido de forma rápida y poco costosa la integración de dos
gran potencialidad que éste posee, nos ha brindado la posibilidad de adaptar el software
cionales que nos han facilitado y posibilitado ciertas labores y ahorrar costes en licencias
abusivas para el usuario nal. Sin este hecho abordar dicho proyecto habría sido una
El producto está basado en el sistema operativo Linux para uso docente o empresarial
,junto con el software PBX Asterisk. Este software se caracteriza principalmente por su
exibilidad y ser totalmente abierto. Se pueden añadir con un bajo coste de desarrollo
a tener en cuenta para obtener una mayor expansión y madurez del sistema de telefonía
propuesto:
133
6 CONCLUSIONES Y LÍNEAS FUTURAS.
por terceros.
y la red IP. Para ello puede dotarse al servidor Asterisk de un gateway GSM, dis-
puesto para tal n. Además ésto permitiría al sistema integrar centrales telefónicas
móviles.
Por último, dada la previsible expansión del sistema, sería aconsejable alojar el
134
7 BIBLIOGRAFIA
VoIP
Asterisk
[4] Asterisk: The Future of Telephony. Leif Madsen, Jared Smith, Jim Van Meggelen.
[11] http://linuxdevices.com/articles/AT8678310302.html
Software
135
7 BIBLIOGRAFIA
Programación
136