Entidades básicas SIP

VoIP - Telefonía IP
Telefonía IP
Terminales VoIP
SIP, Entidades básicas
Softswitch
Interconexión IP
Numeración para Servicios IP
Enum
ENUM Público
Carrier ENUM
ENUM Privado

El Protocolo SIP (Session Initiation Protocol) inicia, gestiona y termina las sesiones de voz y video entre redes IP. Su origen o procedencia es de técnicas Internet y, consecuentemente, está basado en intercambiar mensajes de texto. Es importante remarcar que SIP es bastante más que un protocolo para establecer llamadas. Se diseñó de modo que fuese un protocolo extensible y sus funciones pudiesen ser ampliadas mediante nuevos mensajes, para de ese modo solucionar algunas características propias de los nuevos servicios de movilidad, presencia, control de llamadas e interoperabilidad con los sistemas telefónicos actuales.

Este artículo describe someramente los principales elementos de SIP. El desarrollo de SIP está normalizado por el SIP Working Group, dentro de Internet Engineering Task Force (IETF). El protocolo comenzó su vida como RFC 3261, pero hoy en día comprende multitud de normas RFC. Si desea conocer el detalle de los mensajes y las acciones que deben corresponder a los mismos, le sugerimos que estudie los RFC correspondientes. Tenga en cuenta que para que los interesados no se pierdan en la maraña de recomendaciones RFC, el propio IETF se ha visto obligado a preparar un documento informal de guía, titulado: SIP Hitchhikers Guide que le recomendamos lea, como también recomendamos que vea las páginas SIP de Tech Invite.

Las especificaciones SIP se agrupan por temas. Los temas son: (en inglés)

Entidades lógicas SIP

Una red basada en señalización SIP tiene al menos cinco tipos de entidades lógicas. Cada entidad tiene una función determinada y participa en las conversaciones SIP como cliente (inicia solicitudes), como servidor (responde a solicitudes) o de ambas formas. Un “dispositivo físico” puede desempeñar las funciones de más de una entidad lógica. Por ejemplo un ordenador que funcione como servidor Proxy puede que simultáneamente tambien esté funcionando como Registrador SIP.

Las entidades lógicas básicas SIP son:

Agente de Usuario

Todos los terminales de Telefonía IP tienen cierta inteligencia que está proporcionada por un Agente de Usuario (UA), que consiste en un programa informático (siempre activo, del tipo demonio). Dicho de otro modo en UA es la entidad final o del extremo, la que dialoga con otras entidades. Los UAs inician y terminan las sesiones mediantes mensajes que solicitan algún servicio, responden a solicitudes o piden respuestas.

La RFC 3261 define el Agente de Usuario como una aplicación, que contiene dos elementos: un Agente de Usuario cliente y un Agente de Usuario servidor, tal como se detalla a continuación:

Cuando un UAC emite una solicitud, esta pasa por algunos proxys y termina en un UAS del corresponsal. Cuando dicho UAS responde, la respuesta se hace llegar al UAC del otro extremo de la conversación.

Los procedimientos UAC y UAS dependen de dos factores. Si la solicitud o respuesta forma parte o no de un Diálogo, y cual es el método invocado por la solicitud. Los Diálogos se explican en la Sección 12 de la RFC 3261, representan una relación peer-to-peer entre los UA y se establecen mediante métodos SIP como INVITE.


Esquema de UA


Algunos de los dispositivos que pueden tener una función de UA son los Teléfonos IP, ordenadores con Softphone, pasarelas telefónicas y sistemas de mensajería automática.

Proxy

El término Proxy tiene un origen jurídico: en inglés quiere decir "Poder de representación, Apoderado o representante para que actúe en mi nombre", por esa razón se ha adoptado ese termino para nombrar a entidades técnicas que desarrollan una función de intermediación. De manera muy sencilla se podría decir que un proxy es "un intermediario que nos hace un recado". Frente a una solicitud nuestra actúa como si fuese un servidor devoldiendonos una respuesta, pero realmente en muchas ocasiones tendrá que consultar a otros proxys, ante quienes será un cliente que solicita datos. Una vez que obtenga lo solicitado, nos lo presentará. Por tanto, en ese momento ha terminado de hacer el recado. Durante el proceso ha actuado tanto como cliente (frente a otros proxys) como servidor (frente a nosotros).

Los servidores proxy se suelen utilizar en funciones de enrutado, por tanto su función principal es conseguir que la solicitud del cliente se remita a la entidad más cercana al usuario de destino. Pero los Proxys también se emplean para verificar las políticas (esto es, comprobar si el usuario está autorizado a efectuar una llamada). El proxy interpreta, y si fuese preciso, reescribe partes del mensaje de solicitud antes de reenviarlo.

Por tanto, de manera sencilla se puede decir que un proxy es un programa que actúa como servidor o accede a otros servidores. Es un punto intermedio que sirve para aumentar la seguridad o la velocidad de acceso (o el anonimato). Suele tener lo que se conoce como cache, que es una copia temporal de los datos que ha obtenido recientemente.

En la señalización SIP los elementos extremos se conocen como "User Agents" (UA) o "Agentes de Usuario", y los elementos intermedios como "Servidores Proxy". En la Figura se muestra la típica configuración SIP, que se conoce como el "trapezoide" SIP. En el ejemplo del esquema, un llamante en el dominio A (UA1) quiere llamar a Pepe en el dominio B (pepe@B). Para hacerlo, se comunica con el proxy 1 de su dominio (dominio A). El Proxy 1 remite la solicitud al proxy del dominio de la persona llamada (dominio B), que es el proxy 2. Y el Proxy 2 remite la llamada al Agente de Usuario de la persona llamada, UA 2.


Trapezoide SIP


Para conseguir realizar dicho proceso de llamada, el proxy 1 necesita determinar cual es el servidor SIP del dominio B. Para conseguir saberlo emplea procedimientos DNS, obteniendo registros SRV y NAPTR que apuntan al servidor SIP del dominio B.[1]

Por tanto, los proxys SIP son elementos que envián las solicitudes SIP al agente de usuario en el servidor y devuelven las respuestas al agente de usuario en el cliente. Una solicitud, en su progreso hacia un agente de usuario en un servidor, puede pasar por varios proxys, cada uno de los cuales puede tomar decisiones de enrutado y modificar la solicitud antes de remitirlo al siguiente proxy. Las respuestas recorrerán el camino inverso.

El proxy nunca es el punto de terminación de una llamada, ni es el UA final, por tanto no se ocupa del estado o progreso de la llamada, lo cual desconoce. Para esta función de conocer el progreso de la llamada, es preciso tener un "back-to-back user agent" (B2BUA), por ejemplo en el Session Border Controller, o en una centralita IP.[2]

Proxys de uso más frecuente

Localización: Servidor de Redirección

En algunas arquitecturas es conveniente reducir la carga del Servidor Proxy y mejorar la robustez de la señalización mediante un servidor de redirección.[3]

Un Servidor de Redirección acepta solicitudes SIP y mapea o convierte la dirección SIP de la persona llamada a cero[4] o mas direcciones y las devuelve al cliente que las solicitó. A diferencias de los servidores Proxy, los Servidores de Redirección no pasan la solicitud a otros servidores.

El servidor de Redirección contestará a una consulta del cliente devolviendo la información de enrutado sin atender más mensajes de la transacción. Cuando quien haya originado la solicitud reciba la redirección, hará una nueva solicitud basada en la URI que ha recibido. De este mdodo las URI se propagan del nucleo del softswitch hacia los bordes con lo que se mejora la escalabilidad y redimiento del sistema.

Servidor Registrador

SIP es capaz de localizar donde está el destinatario de la llamada. Si un usuario quiere iniciar una sesion con otro usuario, SIP ha de descubrir en qué host está el destinatario. En este proceso intervienen Proxys y servidores de redirección que al recibir la solicitud han de averiguar donde está el usuario, para llamarle y conectar los medios (Voz, imágenes o mensajes) a intercambiar. Para ello el proxy consulta a un servicio de localización que devolverá una o varias URI.

El servidor de Registro o Registrador, que en inglés se conoce como SIP Registrar, es quien asocia una (o varias) dirección SIP a una URI.

Por tanto, el Servidor Registrador es un elemento cuya función es atender las solicitudes SIP REGISTER y en consecuencia actualiza una base de datos de localización, con la información de contacto del usuario que se registre. El Registrador SIP suele estar ubicado junto al proxy, si bien no es algo obligatorio. Su función consiste en asociar una URI con una o varias direcciones IP, que generalmente serán del tipo sip: pero que también pueden ser del tipo tel:. La relación se realiza mediante una tabla. Téngase en cuenta que cuando en la tabla que relaciona una URI haya correspondencia con múltiples direcciones IP, todas ellas sonarán simultáneamente cuando sean llamadas.

A continuación se muestran diversos ejemplos de las acciones básicas en SIP, con las secuencias de mensajes que intercambian con el Registrar. Si desea más información sobre el contenido de los mensajes, puede verla de forma esquemática, en inglés, en esta página de Tech Invite o con pleno detalle en la propia norma RFC 3665 .




Agente de Usuario Inverso, Back-to-Back User Agent (B2BUA)

Los B2BUA se emplean en aquellas funciones donde es preciso controlar el saldo remanente del usuario o el tiempo que le queda de conversación, como es el caso de los locutorios y de los sistemas de llamadas prepagadas.

Un B2BUA es una entidad lógica que recibe una solicitud, la procesa como si fuese un Servidor Agente de Usuario (UAS) y, para determinar cómo contestar al mensaje de solicitud, actúa como un Cliente Agente de Usuario (UAC) y genera mensajes de solicitud. El B2BUA debe seguir el estado de la llamada para lo cual ha de dialogar mediante solicitudes y respuestas con los UA que intervienen en la llamada. El B2BUA controla la llamada mucho mejor que un proxy que ni puede desconectar la llamada ni cambiar los mensajes.[5]

Mensajes básicos SIP

Los clientes SIP invocan métodos (de modo similar a como se hace en HTTP) al servidor, quien responderá con mensajes al estilo HTTP. Los métodos definidos en la especificación SIP básica son:


  1. Tomado de RFC3263
  2. Ese es el caso de Asterisk
  3. Basado en RFC 3261
  4. Cuando no se conoce esa dirección SIP
  5. En esta página puede ver la documentación técnica de un B2BUA, que detalla como funciona.


Normativa

Más información



TERACOM VIDEOTUTORIAL V10: SIP and Location Service

Artículos de Wikitel pertenecientes a esta misma categoría




Baja
Esbozo
Global