3 LA VoIP. El protocolo de Voz sobre IP es un estándar desarrollado para poder realizar comunicaciones 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 únicamente, 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 remplazadas por redes de conmutación de paquetes en un futuro. Esta transición supone no 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 conmutación de circuitos tradicionales. En este apartado se describirán los elementos del estándar de VoIP, así como una descricpión de la arquitectura y funcionamiento del software, de carácter libre, utilizado para implementar la central de conmutación. Las enormes posibilidades que tiene la VoIP de convertirse en la opción de telefonía dominante del futuro, debido tanto a su reducido coste como a su exibilidad, será otro tema tratado en este apartado. 3.1. INTRODUCCIÓN. La convergencia de las redes de telecomunicaciones actuales supone encontrar la tecnologí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 datos sobre la misma red. Teniendo en cuenta la importancia y desarrollo de Internet, el desarrollo de una tecnología universal nos lleva a pensar en el protocolo IP (Internet 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 por las redes de conmutación de paquetes tradicionales, se debe a ciertas limitaciones de éstas últimas y a las ventajas aportadas por las redes de conmutación de paquetes: Limitaciones de las redes de conmutación de circuitos: 1. Uso ineciente de los recursos. Cada llamada telefónica utiliza un canal de 64 kbps, independientemente de tráco que haya en cada momento. Además todos los elementos de conmutación se designan para conmutar canales de 64 kbps independiente de la cantidad de tráco que llegue al conmutador en cada instante. 2. Son cerradas e poco exibles. 3. Mantenimiento caro. Ventajas de las redes de conmutación de paquetes: 1. Soportan un mayor volumen de tráco gracias a que aprovechan mejor el ancho de banda disponible. 2. Son redes abiertas. 3. Al no tener que reservar canales exclusivos para cada llamada, permite la reducción drásticas de costes de taricación de llamadas. 4. Integración de nuevos servicios y unicación de la estructura de red. Aunque las redes IP parece aportar excepcionales ventajes al mundo de la telefonía, la 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" mediante ancho de banda compartido, la red telefónica proporciona un servicio garantizado mediante reserva de capacidad. La industria de las telecomunicaciones empezó con 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 aumenta de tamaño. El aumento del tráco tradicional, se ha venido solventando mediante la solución obvia de incrementar la capacidad de los medios de transmisión. Sin embargo, el tráco por la red no sólo ha cambiado en volumen, sino también ha cambiado en naturaleza. Existen muchos nuevos tipos de trácos, de múltiples aplicaciones nuevas, cuyos requirimientos operacionales varían enormemente. Entre estas nuevas aplicaciones, la telefonía se destapa como una de las más exigentes. El mantenimiento de una conversación bidireccional en tiempo real es posiblemente una 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 sentido. De modo que la capacidad no es problema, el problemas más bien es la latencia durante la comunicación. Para la telefonía IP, y en general para muchas otras aplicaciones bidireccionales y en tiempo real, los requisitos de temporización son mucho más restrictivos que los de capacidad. El retardo de tránsito, y las pérdidas de paquetes debido a congestiones momentáneas de la red, resultán en una pérdida apreciable de la calidad de la comunicación. Un incremento del ancho de banda es una primera solución para los problemas de latencia, sin embargo, el tráco en Internet aumenta en la misma proporción que el incremento de 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 tecnología VoIP para transportar la voz sobre redes IP. 3.2. TRANSMICIÓN DE VOZ SOBRE REDES IP. 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 reproducida en el otro extremo. 16 3 LA VoIP. El empaquetamiento de la voz dentro de datagramas IP, la transmisión de la misma a traves de la red, la recepción y la reconstrucción digitalizada de la voz es llevado a cabo dentro de caminos virtuales establecidos entre el origen y el destino a través de la red IP, comunmente conocidos como canales. 3.2.1. MUESTREO Y DIGITALIZACION La técnica por la cual la voz humana es convertida de su forma de onda natural al formato digital nal empleado por la tecnología de VoIP para su transmisión a traves de red, se le conoce como DAC (Digital-to-Analog Conversation). En el mundo de la telefonía tradicional, el proceso es bastante simple, ya que las variaciones de dichas técnicas vienen impuestas según los diferentes tipos de enlaces de datos y dispositivos, y según los estándares regionales empleados. Sin embargo, estos procesos de digitalización en la tecnología VoIP no están exclusivamente ligados al tipo de enlace de dato. Diferentes técnicas de digitalización y compresió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 mundo IP como en la telefonía tradicional, donde los sistemas de comunicación transportan los datos mediante multiplexación de ujos de voz digitalizados. DAC incluye digitalización de la voz, cuantización de la señal digital, ltrado para preservar 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á muestreada a la vez que su amplitud será discretizada y codicada en formato binario. 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 combinada con una resolución de muestreo de 8 bits, da lugar a un régimen binario de 64kbps. 17 3 LA VoIP. En el mundo de la telefonía tradicional cada conversación de voz concurrente, tanto digital como analógica, requirirá un ancho de banda de 64kps, es por ello que este valor representa un dato útil a tener en cuenta en el dimensionamiento de una red VoIP. 3.3. EL PROCESO DE CODIFICACIÓN DE LA VOZ. 3.3.1. EMPAQUETADO El empaquetado de la voz es el proceso, en tiempo real, por el cual un ujo de voz digitalizada es dividida en trozos manejables y de igual tamaño para su adecuado trasnporte sobre la red. Figure 3.1: Señal discretizda. 18 3 LA VoIP. No como ocurre en una línea analógica, en VoIP la señal de sonido es transmitida y recibida mediante terminales IP. Esto hace que la señal sea más manejable para ser transportadas a traves de circuitos tradicionales de voz, tales como E1 o RDSI. Pero a diferencia del sistema de telefonía digital RDSI, la señal de voz en una llamada a través de una red IP es empaquetada, esto signica que dicha información es transportada a través de la red en unidades que también son usadas para transportar otros tipos de datos. En el caso de VoIP, dichas señales se encapsulan en datagramas UDP. 3.3.2. MULTIPLEXACIÓN. La red de telefonía tradicional (RTC) ofrece una forma de proveer una mayor capacidad 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, compuesta por un sólo par de hilos, puede transmitirse hasta 24 llamadas simultáneas. Esta tecnología de alta densidad es llamada E1 y es a menudo usada a modo de enlace para unir centrales telfónicas (PBX). La técnica usada para aprovechar mejor los recursos de la red se llama multiplexación. Diversos niveles de multiplexación de canales de voz, 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 emplearse exclusivamente como enlaces entre centrales telefónicas, o bien, en aplicaciones de datos, suelen ser usados por los proveedores de servicio a Internet (ISP) que necesitan ofrecer una alta capacida de conexión a Internet. 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 para transmitir la misma información. Es posible reducir el régimen binario de 64 kbps, usados en una conversación telefónica tradicional, por debajo de los 44 kbps, sin llegar a notar pérdida de calidad en la señal de voz reconstruida en el extremo receptor. Los algoritmos usados por VoIP para codicar los datos de sonido o para decrementar los requerimientos de ancho de banda son conocidos como codec. 19 3 LA VoIP. 3.3.4. CODECS. Los codecs, llamados así por la función que desempeñan tanto en el transmisor, como codicadores de la señal, como en el receptor, como decodicares de la misma, son algoritmos usados para empaquetar ujos de datos multimedia (voz y/o audio), que posteriormente serán retransmitidos por la red en forma de streaming o bien serán 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 de la ITU-T, áquellas pertenecientes a la variedad G ( Trasmision system and media). 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 música a través de la red, y aquellos que van destinados a la codicación de señales 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 de audio, y aquellos que restructuran la representación digital de la señal PCM en un 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 híbridos, que reunen las ventajas de los anteriores. Codecs PCM o basados en forma de onda: Transmiten información sobre la forma de onda de la señal de voz. Este grupo 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 este tipo de codecs. En este grupo también se encuentran los codecs predictivos, que comparan a codicar 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: Estos codecs aprovechan las características de la señal de voz humana. Toman muestras de intervalos de la señal de voz de diferente duración (10ms , 20ms o 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 estos datos de excitación y ltro se puede reconstruir posteriormente la voz en el receptor. Estos codecs comprimen bastante la información a transmitir y alcazan tasas de transmisión muy bajas, por contra la voz reproducida suena muy sintetizada, poco natural y la calidad es bastante a inferirio a la de PCM. 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 a transmitir, y además poseen las ventajas de los predictivos, en cuanto a que comparan la muestra generada mediante la señal de excitación y ltro calculados, con la original, para así transmitir también el error cometido con muy pocos bits y conseguir más naturalidad en la voz reproducida en el destino. Dicho error puede 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 de escucha bastante buena. Dentro de este grupo, podemos encontrar a los codecs: G.729 y G.723.1, estandarizados por la ITU-T, y a GSM y sus variantes, estandarizados por el ETSI. A continuación se describen brevemente los codecs más comunes usados en la telefonía IP: 21 3 LA VoIP. • G.711. Este codec es un algoritmo de codicación/decodicación de 64 kbps que usa 8 bits para codicar las muestras de señales de audio muestreadas a 8 khz. Se trata de una señal de audio de buena calidad. Este codec presenta un bajo procesamiento para ser implementado y es el esquema de codicación usado por los circuitos de telefonía digital tradicional, como E1. Este codec no provee ninguna compresión. Existen dos variantes de las técnicas de digitalización PCM usadas en el codec G.711: uLaw y ALaw. La primera utiliza una escala de digitalización logarítmica para discretizar los niveles de amplitud, mientras la otra usa una escala lineal. Entre ellos no son compatibles y deben ser transcodicados si cada uno de los extremos de la conversación están utilizando uno de ellos. uLaw suele ser usado en Norte America y parte Asia, mientras que ALaw prevalece en el resto del mundo. • G.721, G.723, G.726, G.728 y G.729A Estos codecs hacen un mejor uso de la capacidad de la red, permitiendo la reproducción de sonido de alta calidad a una tasa de bit de 8 a 32 kbps. Este grupo de codecs usa los algoritmos ADPCM ( Adaptatice dierential Pulse Code Modulation) o CELP ( Code Excited Linear Predition) para reducir los requerimientos de ancho de banda. • G.722. Este codec tiene ocupa un gran ancho de banda, ya que hace un muestreo de la señal de audio al doble de valor normal: 16 Khz. El efecto es que el sonido tiene mucha mayor calidad que el resto de los codecs usados para VoIP. Por lo demás, es idéntico al codec G.711. • GSM. Este codec, usado en el sistema de telefonía movil global, ofrece una tasa de 13 Kbps. Como muchos otros codec salido de las recomendaciones de la ITUT, hace uso del algoritmo CELP para lograr una alta escala de compresión y ,a su vez, presenta un procesamiento mucho menor. 22 3 LA VoIP. • ILBC. El Internet Low Bitrate Code, es un codec de audio que puede adquirirse gratuitamente. Presenta características similares, en cuanto a consumo de ancho de banda e intesidad de procesamiento, a las del codec G.729A, pero con un mejor comportamiento ante la pérdida de paquetes. • Speex. Este codec presenta una tasa de muestreo comprendida entre 8 y 32 kHz, además de una tasa binaria variable. Speex permite cambiar la tasa binaria en medio de la transmisión, sin tener que establecer una nueva llamada, lo que puede ser útil en situaciones de congestión de la red. Se trata de un codec disponible gratuitamente y con implemenataciones bajo código abierto. 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 compresión, lo hacen a costa de degradar la calidad de la señal 3.3.5. TASA DE PAQUETIZACIÓN DE LOS CODECS. 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 niveles inferiores transmitir cabeceras ethernet, cabeceras IP o cualquier otra información necesaria para el transporte del paquete a través de la red. Cuanto mayor sea la cantidad de datos de audio transmitidos por paquete, menos sobrecarga de cabeceras se transmite por la red, ya que hacen falta menos paquetes para transportar el mismo sonido, y por tanto mejor se aprovecha la capacidad del canal. Como se ha comentado anteriormente, la clave para reducir la sobrecarga en una red 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. Así que se necesita llegar a un compromiso entre un valor de sobrecargar aceptable y un aceptable nivel de resistencia a los errores. En esta parte es donde la elección de un determinado codec puede ayudar, ya que cada uno proporciona distintas tasas de transmisión de paquetes por segundo y distintos cantidades de cabeceras. Los diferentes tipos de codecs usan diferentes tasas de paquetes. Al espacio entre los paquetes transmitidos se le conoce como intervalo entre paquetes, y es expresado en relación a la tasa de paquetes. Algunos codecs, especialmente aquellos que usan algoritmos CELP avanzados, requieren una mayor cantidad de audio ( 20 ms, 30 ms) en un mismo tiempo, para poder realiazar la codicación y decodicación. El intervalo entre 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 que éste fue codicado, transportado, decodicado y reproducido en el extremo receptor, 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é totalmente codicado. Esta latencia afecta negativamente a la calidad de la llamada, percibida en el receptor. Pero la latencia no es el único inconveniente que se deriva de tener un intervalo entre paquetes grandes: cuanto mayor sea la duración de sonido transportada por cada paquete, mayor será la porbabilidad de que el extremo receptor note un efecto negativo en el sonido si un paquete es perdido debido a una congestión u error de la red. La pérdida de 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 no serán retransmitidos. El hecho de implementar el protocolo de VoIP sobre el TCP, 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 de secuencia, con la consecuente perdidad de calidad que esto conlleva. Si se considera un muestreo de 8khz para una señal de audio básica con 8 bits por muestra, y se asume un intervalo entre paquetes de 20ms, puede verse que la cantidad de datos de audio, utilizando el codec G.711, transportada es de 1.280 bits. Si a estos se le añade 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. Figure 3.2: Trama de voz sobre tecnología Ethernet. 3.3.6. SISTEMAS DE TRANSIMISIÓN DTX/VAD/CNG. Además de la conversión analógico-digital, el codec intenta comprimir lo máximo posible la información a transmitir, para que así los requerimientos de ancho de banda necesarios para llevar a cabo la comunicación sean los menores posibles. 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 discuntínua ( Discontinous Transmision, DTX), que se emplea conjuntamente con un detector vocal ( Vocal Activity Detector, VAD) y un generador de ruido de fondo ( 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 de la información de las tramas SID, es el generador de ruido de fondo ( CNG). Utilizando el sistema de transmisión discontínua se ahorra mucho ancho de banda. Este algoritmo DTX, también es menos sensible a los errores de transmisión que en un sistema en el que se enviaran las tramas activas de datos constántemente, ya que si se pierden 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 dichos parámetros para su posterior reprodución. Para que este sistema funcione es fundamental el buen funcionamiento de los detectores de actividad vocal. Estos analizan intervalos de conversación de una determinada duració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 se envian si el ruido ha cambiado desde la última trama transmitida. Para determinar si estamos ante un tramo de voz inactica o activa, los VAD's se basan en diferentes medidas, tales como: Los coecientes del ltro LP de esa trama de voz. La energia de la banda de frecuencias completa. La energía de la banda de frecuencias que va desde 0 hasta 1 khz. La tasa de cruces por cero de la señal de voz. 3.4. EL ESTANDAR VoIP. Este apartado describe los estándares de señalización de llamadas en una red de VoIP. También se describe la forma en la que estos estándares compiten y se complementan. 26 3 LA VoIP. 3.4.1. PROTOCOLOS DE SEÑALIZACIÓN DE VoIP. Un protocolo se señalización es un lenguaje común hablado por teléfonos, servidores de administración de llamadas (por ejemplo, centrales telefónicas implementadas via 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 parte de los protocolos de señalización tienen en común una serie características: 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 serie de servicios de telefonía como transferencia de llamada o conferencia. Aunque las llamadas de señalización suelen establecerse usando UDP como protocolo de transporte, no son vistas como tráco en tiempo real, como ocurre con la transmisión de los datos de voz. 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 ser consistente y de larga duración. La mayoría de estos protocolos de señalización no suelen estar implementados simultáneamente en un mismo dispositivo IP. Actualmente, existen dos importantes protocolos de señalización en el mundo de la telefoní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 protocolos de señalización, desarrollado por compañias privadas, como pueden ser: SCCP, desarrollado por Cisco Company, o IAX, propiedad de la empresa Digium. 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 y extensibilidad, ya que se encuentran bajo libre disposición, distribución y modicació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 entre central de conmutación y central de conmutación, entre la RTC y una central de conmutación, y entre terminales y centrales de conmutación. Esto signica que H.323 posee una interfaz que le permite establecer una llamada con los sistemas de telefonía tradicionales, especialmente con la RTC. Comparativamente, SIP es mucho más limitado en cuanto a su alcance dentro de la red. Éste no soporta la comunicación con ningún terminal tradicional, sea analógico o digital. Fue diseñado para permitir una comunicación entre terminales IP. Sin embargo, una gran ventaja de SIP es su exibilidad para soportar aplicaciones de caracter no telefónico, tales como mensajería instantánea, video conferencias, etc. Dicha propiedad es la principal característica de SIP y la mayor carencia de H.323. Familia de protocolos Escenarios de señalizacion Mantenedor H.323 Telefonía y video. ITU-T SIP Telefonía, video y mensajeria instantánea. IETF IAX Telefonía. Digium Inc. SCCP Telefonía( conmutadores<>terminales) Cisco System MEGACO/H.248 Telefonía(control de gateway's) ITU-T MGCP Telefonía(control de gateway's) IETF 3.4.2. EL PROTOCOLO H.323. H.323, actualmente en su versión 2, es una recomendación de la ITU-T para un estilo de señalización basada en PBX que soporta transmición sobre redes de conmutación de paquetes. H.323 no tiene que ser entregado completamente usando una red IP. Ciertas subrecomendaciones de H.323 permiten a las redes de telefonía tradicional ser integradas, 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 tradicionales de la RTC, a través de las recomendaciones H.320 y H.324. Mientras que el estándar H.323 se encuentra en un estado bastante maduro y bien documentado por la ITU-T, éste ha sido implementado en partes especícas por cada fabricante que no son, desafortunadamente, totalmente interoperables. Esta incompatibilidad de las implementaciones de H.323 es un problema cuando se pretende enlazar 28 3 LA VoIP. sistemas de distintos fabricantes. Para conseguir este objetivo, se hace uso de dispositivos trandicionales, tales como E1, como elemento intermediador, ya que la mayoría de las implementaciones de los protocolos de telefonía tradicional de cada fabricante son, casi siempre, compatibles entre sí. 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 transportar la señalización de la llamada, y tanto como sea posible para transporta el sonido. 3.4.2.1. 3.4.2.1.1. ARQUITECTURA . GATEKEEPER H.323. El gatekeeper es un equipo de la red que provee monitorización, centralizada de llamadas y capacidades de señalizacón hacia terminales H.323. El alcance de un gatekeeper puede ser un segmento particular de una LAN o , incluso, todo un continente. 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 gatekeeper H.323 como una central software de conmutación, una softPBX. Tanto los terminales H.323 como los gateways, para que puedan ser accesibles a las aplicaciones de telefonía, deben llevar a cabo un proceso de registro ante el gatekeeper. 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 proceso puede ser autenticado si se desea. En la conguración de cada terminal hay que indicar la dirección IP o el nombre de dominio del gatekeeper de la zona a la que pertenezca el terminal. También existe la posibilidad de descubrir la precencia de un gatekeeper usando un IP multicast a la dirección y puerto: 224.0.1.41:1718. El proceso de registro es llevado a cabo mediante el protocolo RAS: Resgistration, Admission y Status. Este protocolo sólo govierna el proceso de registro y no el establecimiento 29 3 LA VoIP. de llamadas. Sin la presencia de un gatekeeper en una red H.323 no se podría establecer mucho más que canales dedicados con otro terminal, se perderían, entre otras, las funciones de rutaje de mensajes. De acuerdo a las recomendaciones de la ITU-T, un gatekeeper debe proveer: Resolución de direcciones via un estándar llamado E.164. Registro y autenticación. Control de ancho de banda. Zona de administración de registro y llamada. Señalización de las llamadas de control. Monitorización de las llamadas. El proceso que sigue un terminal H.323 cuando se registra, es el siguiente: 1. El terminal envía un mensaje RRQ ( Registration Request) al gatekeeper, que consiste en la dirección IP y puerto del terminal, su dirección E.164 y un alias para ser usado como identicador cuando éste efectue una llamada. 2. El gatekeeper guarda toda la información proveida por el terminal en memoria, para posterior uso cuando autentique al terminal, junto con un hash, que es usado para asegurar la identidad del terminal, evitando posibles suplantaciones de identidad. 3. El gatekeeper responde al terminal con un mensaje RCF ( Registration Request Conrm), indicando que está listo para realizar y recibir llamadas en la red. 30 3 LA VoIP. 3.4.2.1.2. TERMINALES H.323. Cada terminal H.323, ya éste implementado en software o hardware, contiene una pila de elementos software que le permiten cubrir diferentes aspectos del proceso de llamada: H.245, el cual le provee de capacidades de negociación, que le permiten estar seguro de saber si existe en ambos extremos de la comunicación una aplicación y codecs compatibles. H.225, el cual le provee servicios de taricación y monitorización necesarios para el establecimiento able de llamadas y contabilidad de las mismas. RTP, el estándar del IETF para la transmisión de datos mulitmedia en tiempo real. Selección de uno o más codecs de audio. Opcionalmente, un terminal H.323 puede ofrecer T.120, un protocolo para habilitar aplicaciones interactivas. 3.4.2.1.3. GATEWAY H.323. El propósito de un gateway es hacer de interfaz entre los canales de voz basados en IP 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 red de VoIP con una red de telefonía tradicional. Un gateway H.323 ofrece una convergencia especializada de los protocolos de señalización que soportan ciertos tipos de circuitos tradicionales: H.320 soporta paquetización de la voz sobre circuitos RDSI y E1. H.324 soporta paquetización de la voz sobre líneas de teléfono analógicas usando el codec G.711. Los gateways también deben registrarse con el gatekeeper para la zona en la que ellos sirven, si las llamadas van a ser rutadas a través de sus interfaces. 31 3 LA VoIP. 3.4.2.1.4. UNIDAD DE CONTROL MULTIPUNTO. Una MCU, es un dispositivo H.323 que tiene un único propósito: poder establecer una multiconferencia entre tres o más canales de voz. Ésta puede ser implementada en un servidor dedicado, o bien, ser integrada como parte de un terminal H.323. Una MCU está formada por dos componentes fundamentales: MP (mulipoint processing) y MC (multipoint controller). La primera de ellas, es el elemento software dentro de la MCU encargado de llevar a cabo las accciones de un DSP, para agregar canales multimedia a una multiconferencia. El controlador multipunto o MC, es el encargado 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 conferencia, indicando los modos en los que pueden transmitir. 3.4.2.2. TORRE DE PROTOCOLOS . H.323, es recomendación que impone los protocolos a utilizar para la comunicación. Figure 3.3: Torre de protocolos H.323 32 3 LA VoIP. Algunos protocolos, como RTP ( Real Time Protocolo) y RTCP (Real Time Control Protocol), ya existían cuando se denió la recomendación y fueron reutilizados directamente. 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 objetivo ofrecer un servicio a las capas superiores: Direccionamiento. RAS: protocolo utilizado para la búsqueda de un gatekeeper por parte de un terminal, para establecer un registro en la zona que éste controla. Señalización: H.225.0: protocolo que describe cómo el audio, los datos y la información de control, en una red de conmutación de paquetes, pueden ser usados para proporcionar servicios telefónicos. Se encarga de la señalización de las llamadas. Los mensajes H.225.0 siguen el estándar Q.931 y son del tipo: mensaje de establecimiento de llamadas, mensajes de información de la fase de la llamada, mensajes de terminación de la llamada y otros. H.245: protocolo de control para especicar mensajes de apertura y cierre de cánales lógicos para comunicaciones de voz, para realizar las negociaciones de los parámetros y establecer conexiones UDP. Los mensajes siguen la sintaxis ASN.1. Consisten en un intercambio de mensajes 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 cualquiera de los codecs G.7xx estandarizados por la ITU-T. 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 ujos de videos utilizando RTP. 33 3 LA VoIP. Envio de datos entre terminales H.323. Funcionaliadad opcional, que en el que caso de que sea soportada será implementada por los protocolos de la familia T.12x. Transporte de los paquetes: UDP: la transimición de los paquetes de datos en VoIP se suele realizar sobre paquetes UDP, que aunque no ofrezca integridad a los datos, el aprovechamiento del ancho de banda es mayor que con TCP. RTC: protocolo que proporciona funciones de transporte convenientes para aplicaciones que transmiten en tiempo real. Maneja los aspectos relativos a la temporización, marcando los paquetes UDP para un reordenamiento de los mismo en el receptor. Control de la transmisión: RTCP: protocolo de control de RTP. Se utiliza principalmente para detectar situaciones de congestión en la red y tomar acciones correctoras. Se basa en la transmisión periódica de paquetes de control a todos los participantes en la sesión, usando el mismo mecanismo de distribución que los paquetes de datos. Servicios suplementarios. A través de los protocolos de la familia H.450.x se ofrence servicios tales como: llamada en espera, intrusión de la llamada, etc. 3.4.2.2.1. INTERCAMBIO DE MENSAJES DURANTE EL PROCESO DE SEÑALIZACIÓN. Hay cinco pasos generales, a seguir por cada extremo de la llamada, para llevar a cabo el proceso de señalización de la misma: establecimiento/nalización, negociación de 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 terminal involucrado en la llamada es puesto al día del estado en que se encuentra la llamada, a través de uno de los posibles estados que dene H.225: En proceso: esto signica que el terminal de origen está intentando establecer una conexión de red con el terminal de destino. Alerta: esto signica que el extremo receptor está siendo noticado de que alguién está intentando alcanzarle. En otras palabras, que el extremo receptor está sonando, y que el terminal que originó la llamada está recibiendo una indicación de ello. Conectar: esto signica que el receptor ha aceptado la llamada y que un canal de audio/video puede ser establecido. Liberar: esto signica que uno de los extremos de la llamada ha señalizado en nal de la misma. Cuando este estado es indicado, la llamada pasa a ser nalizada. 2. Negociación de capacidades Después de establecer la llamada, se hace uso del protocolo H.245 para negociar los requerimientos de aplicación de la llamada y seleccionar el codec apropiado. H.245 determina: Qué tipo de apliacación multimedia puede cada terminal soportar: audio, video u otras. Cuáles son los codecs disponibles para cada terminal y cuáles son sus preferencias. Cómo los canales serán estructurados y qué tipo de intervalo será usado. Qué terminal jugará el papel de maestro y cuál de esclavo durante la duración de la llamada. Los papeles de maestro y esclavo hacen referencia a quién actuará como cliente o servidor en el proceso de envio de señales durante la llamada, se trata exclusivamente de una formalidad del protocolo. 35 3 LA VoIP. Cómo debe noticarse al terminal que inició la llamada si la negociación falla. Normalmente, el terminal mostrará un mensaje de error mientras suena una señal de ocupado. 3. Establecer canales de audio/video. Una vez que se ha llevado a cabo la negociación de capacidades, RTCP ( RTP Control Protocol) es utilizado para establecer un canal UDP donde tendrá lugar la transmisión de audio/video. Tras abrir el canal UDP, un ujo de paquetes UDP, que encapsulan al protocolo RTP, atravesará a la red usando el codec e intervalo entre paquetes negociados anteriormente. 4. Llevar a cabo la llamada. 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 permanecerán intactas hasta el n de la llamada. 5. Liberación Al nalizar la llamada, H.225 entra en su estado de liberación, señalizando el nal a los canales multimedia, a la sesión H.245 de negociación de capacidades y al proceso de taricación llevado a cabo por el gatekeeper. Dependiendo de los terminales, ambos podrán oir un tono o una señal de ocupado. Figure 3.4: Señalización directa, sin Gatekeeer. 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: 1. El llamante envía un mensaje de petición de admisión, ARQ, al gatekeeper de su zona, identicándose a sí mismo y a la dirección E.164 del terminal con el que quiere establecer la llamada. Este mensaje es parte del protocolo RAS. 2. El gatekeeper contesta con una conrmación ARQ (ACF). Esto conrma al llamante que la petición de sesión ha sido recibida por el gatekeeper. 3. El llamante envía un mensaje de establecimiento de llamada al otro extremo de la llamada. 4. El receptor envía un mensaje provisional H.225 "Call Proceeding". Se trata de un mensaje provisional porque el receptor debe vericar la autenticidad del llamante antes de proseguir con la llamada. 5. El receptor envía un mensaje "Called Party ARQ Adminsion Request" al gatekeeper, preguntándole si la llamada es legítima. En este punto, el gatekeeper debería 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 ACF" al receptor, dando paso a que el receptor comienze a sonar. 7. El receptor, una vez que comienza a sonar, envía en mensaje H.225 "Alerting", indicando al extremo que originó la llamada que el receptor está sonando. 8. Una vez que el receptor conteste a la llamada, éste envía un mensaje H.225 "Connect" al otro extremo de la comunicación. Esto deja paso a que el proceso H.245, de negociación de capacidades, comienze. La diferencia entre señalización basada en gatekeeper y señalización directa entre terminales, es el papel que juega éste en las sesiones H.225, sin inuir en el camino que seguirán los datos multimedia a través de la red. 37 3 LA VoIP. Figure 3.5: Señalización a través gatekeeper. 3.4.2.3. ESQUEMA DE DIRECCIONES E.164 . 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 dirección E.164: dicultad a la hora de memorizarlas e imposibilidad de cambiar su valor. Existen mejores formas de manejar la asignación de alias a los terminales H.323, ya que basarse en este método, es intrínsicamente basarse en la tecnología Ethernet. Esto es unos de los grandes inconvenientes de H.323 en comparación a SIP. 38 3 LA VoIP. 3.4.3. EL PROTOCOLO SIP. El Protocolo de Inicio de Sesión, fue desarrollado por el IETF, como una forma de señalización multiusuario de telefonía distribuida y de aplicaciones de mensajerias en una red IP. Los deberes y escenarios de SIP son los mismos que los de H.323. Es decir, hay terminales de VoIP de distintas capacidades y servidores que participan en el proceso de señalización 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 mensajes, desde aplicaciones de telefonía hasta mensajería instantánea u otros servicios. SIP, en vez de usar una estructura de mensajes compacta y orientada a la máquina, 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 y una mayor aceptación. SIP, se encuentra acutalmente en su versión 2.0 y su denición completa se encuentra recogida en las RFC's 3261-3265. El propósito denido de SIP es coordinar y facilitar la monitorización de sesiones multimedia en la red. Éste soporta una variedad de esquemas de direccionamiento y es diseñado tanto para una topología centralizada como distribuida. 39 3 LA VoIP. Figure 3.6: Torre de protocolos SIP. 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 registrarse, una vez que empiecen a funcionar. Los elementos funcionales en la arquitectura SIP son: 1. Agentes de Usuario ( User Agent, AU).ññ 2. Servidores de red. Los agentes de usuario son aplicaciones que residen en los nodos terminales SIP, y contienen 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 TCP como UDP. 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 de red, se clasican desde el punto de vista logico, de la siguiente manera: Servidores de redirección. Servidores Proxy. Servidores de Registro. 3.4.3.1.1. SERVIDORES DE REDIRECCIÓN. Se encargan de procesar mensajes INVITE, que son solicitudes SIP emitidas por la parte que origina la llamada, y retornan la dirección , o direcciones, de la parte llamada, es decir la URL de la parte llamada, o cómo contactar con ella. En caso contrario, rechazan la llamada enviando una respuesta de error. Análogamente a H.323, juegan el 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 redes exclusivamente SIP. 3.4.3.1.2. SERVIDORES PROXY. Ejecutan un programa intermediario que actúa como servidor y cliente: desde al punto 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 efectuar cambio alguno en ellas, o cambiar alguna parámetro si se requiere. 41 3 LA VoIP. Los servidores proxy desarrollan el rutaje de los mensajes de solicitudes y respuestas SIP, y pueden ser del tipo "stateful" o "stateless". 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 mensaje asociado a la misma. Las implementaciones stateless proveen buena escalabilidad, pues los servidores no requieren mantener información referente al estado de la 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 stateless, algunas como: contabilización, taricación de llamadas,etc, pueden requerir que se le sigua el rastro a todos los mensajes y estado de una comunicación. 3.4.3.1.3. SERVIDORES DE REGISTRO. Se encargan de registrar las direcciones SIP, formato URL, y sus direcciones IP asociadas. Es decir, se encargan de mappear direcciones SIP en direcciones IP, y típicamente se encuentran implementados junto con los servidores proxy o servidores de redirección. También se les denominan servidores de localización ( Location Server), pues son utilizados por los servidores proxy y de redirección para obtener información de la localización de la parte llamada. Realmente los servidores de localización, no son entidades propias 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, como por ejemplo LDAP. La información registrada en los servidores de registros, no es permanente, sino que requiere ser refrescada periódicamente, de lo contrario el registro correspondiente será borrado. Usualmente, un servidor SIP implementa una combinación de los diferentes tipos de servidores SIP ya comentados. 42 3 LA VoIP. Figure 3.7: Escenario SIP. 3.4.3.2. DIRECCIONAMIENTO SIP: SIP-URI. 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" en la descripción de sus URI's. La encriptación de dichas señales hará uso de la capa de transporte seguro (SSL). 3.4.3.3. MÉTODOS SIP Y RESPUESTAS. Los mensajes de señalización SIP, solicitudes y respuestas, emplean el formato de mensaje genérico establecido en la RFC 822, esto es: 43 3 LA VoIP. Una línea de inicio. Uno o más campos de cabeceras (header). Una línea vacía indicando el nal del campo cabeceras. Cuerpo del mensaje. Figure 3.8: Formato de un mensaje SIP. Mientras que H.323 usa la sintaxis ASN.1 para la descripción del formato de los mensajes, SIP se basa en texto plano. Las solicitudes SIP se clasican dentro de diez categorías, llamadas métodos. Cada método lleva a cabo una función diferente dentro de la arquitectura SIP: 1. INVITE: este método es usado para establecer sesiones y anunciar las capacidades de los nodos SIP. 2. ACK: es usado para conrmar que el cliente solicitante ha recibido una respuesta nal desde un servidor a una solicitud INVITE, reconociendo la respuesta como armativa. 3. OPTIONS: es usado para preguntar a un nodo SIP por sus capacidades, sin que ningún canal multimedia haya sido establecido aún. 4. BYE: este método ocurre cuando la llamada es completada, es decir, cuando alguna de los extremos involucrados en la comuniacación desea nalizar la llamada. 5. CANCEL: cancela una solicitud pendiente, pero no afecta a una solicitud ya completada. Este método naliza una solicitud de llamada incompleta. 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 que se está estableciendo una llamada. 9. SUBSCRIBE: este método provee una forma de establecer manejadores de eventos dentro de aplicaciones de telefonía SIP. 10. NOTIFY: este método entrega mensajes entre estremos SIP, tales como eventos ocurridos durante la llamada. Cuando una llamada debe ser establecida, nalizada o alterada, un evento SIP es empleado. 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 es enviado. Los códigos de respuestas SIP son clasicados en seis categorias: 1xx: informativo. Solicitud recibida, se continua para procesar la solicitud. 2xx:solicitud exitosa. La solicitud fue recibida de forma adecuada, procesada y aceptada. 3xx: re-direccionamiento. Más acciones deben ser consideradas para completar la solicitud. 4xx: error del cliente. La solicitud contiene mal la sintaxis o no puede ser resuelta en este servidor. 5xx: error de servidor. El servidor no ha podido resolver una solicitud aparentemente válida. 6xx: fallo global. La solicitud no puede ser resuelta en servidor alguno. Los mensajes 1xx, son respuestas provisionales y no terminan la transacción SIP, a diferencia de lo que ocurre en el resto de las categorias. 45 3 LA VoIP. Figure 3.9: Intercambio de mensajes SIP. 3.4.4. EL PROTOCOLO IAX. IAX, Inter-Asterisk Exchange Protocol, actualmente en su segunda versión, es un protocolo 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 paquetezación, sino que éste tiene su propia forma de empaquetar los datos de voz codicada. IAX es un protocolo a prueba de NAT, donde cientos de llamadas simultáneas origindas desde detrás de un rewall con enmascaramiento funcionarán correctamente, como ocurre con HTTP. 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. Mientras que un ciclo completo de registro, señalización de llamada, transmisión de 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 llamada es establecida o se trasnmite tramas de voz, se utiliza el mismo puerto UDP. La forma que IAX utiliza para distinguir las distintas funcionalidades llevadas a cabo 46 3 LA VoIP. durante la llamada, es la inclusión de cabeceras y meta-datos en cada paquete, que denen cuál es el propósito de éste y si lleva datos adjuntos. La documentación del protocolo IAX describe el orden de estas cabeceras y los metadatos, 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, en vez de esto, usa un esquema propietario de codicado binario más orientado a la 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 especicación de IAX es abierta y ha sido aceptada por la comunidad VoIP. Funciones/Características SIP 47 H.323 IAX 3 LA VoIP. Localización de terminales Método SIP y admisión REGISTER Establecimiento y Método SIP INVITE Protocolo RAS Tramas de control IAX REG Protocolo H.225 liberación de llamada Tramas de control IAX NEW y HANGUP Negociación de capacidades, Protocolo de codecs y puertos para datos Denición de Sesión Protocolo H.245 Información de multimedias Paquetización y transmisión Meta-trama de Capacidades IAX Protocolos de muestras de sonido RTP/RTCP Streaming de video y Protocolo RTSP audio grabado Protocolos Tramas IAX RTP/RTCP VOICE/DATA Ninguno Ninguno recomendado recomendado Codicación de trama ASCII ASN.1 Binario Simulitud de mensajes HTTP RDSI/Q.931 Propietario Rutaje de llamada descrito Proxy Gatekeeper- Software PBX como Dipositivo de referencia rutado Registrar Gatekeeper Servidor Redirect Señalización Señalización directa directa Gateway H.323 Ninguna para el rutaje de llamadas Ruta de llamada independiente Interfaz RDSI Ninguna recomendada Identicación de terminales SIP-URI, dirección recomendada Dirección E.164 de email, dirección SIP-URI, dirección de E.164 o alias email, dirección E.164 o alias Conexión a traves de cortafuegos Redirección a través de Proxy/softPBX Redirección a No se necesita traves de Gate- Proxy keeper/SoftPBX Puertos UDP 5060/5061 48 1503,1720,1731 5036 3 LA VoIP. 3.4.5. LOS PROTOCOLOS MEGACO Y SIGTRAN Estos dos protocolos surgieron con la aparición, como consecuencia de la liberación del servicio telefónico, de escenarios que permiten el tránsito de llamadas entre terminales telefónicos de la RTC, a través de una red IP. En estos escenarios no exiten terminales VoIP nativos conectados directamente a la red IP. La solución se basa en el empleo de pasarelas VoIP conectadas entre sí a través de una red dorsal IP, y localmente, a una o más centrales telefónicas. 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 de la señalización se realizan en un servidor de llamadas (controlador de pasarelas). De esta forma, las pasarelas sólo tienen que encargarse del manipulado físico de los ujos de voz: codecs, empaquetado, control de jitter, cancelación de ecos, etc. Pasarela de medios (MG): 1. Conmutación de ujos de voz, bajo las órdenes de su controlador. 2. Conversión de medios: codecs a usar, cancelación de ecos, etc. Controlado por el MGC 3. Detección de eventos básicos: colgar, descolgar, marcación de dígitos, etc. Controlador de pasarelas (MGC): 1. Procesos de llamadas: encaminamiento, etc. 2. Controlar a las pasarelas de medios (MG): codecs a utilizar, establecer conexiones, etc 3. Recibir noticaciones de diversos eventos desde las pasarelas. Esta arquitectura da lugar a dos protocolos, que deben coexistir: 1. MEGACO/H.248: protocolo del tipo cliente/servidor denido conjuntamente por el IETF y la ITU-T, para el control remoto de las pasarelas de medios desde el 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. 2. SIGTRAN: familia de protocolos del IETF que permite el transporte de la señalización telefónica sobre la red IP hasta el servidor de llamadas, MGC Figure 3.10: Integración de las redes RTC e IP. 50