SIP puede establecer sesiones entre dos participantes, entre múltiples
participantes (donde todos pueden hablar y escuchar) y en modo multidifusión
(donde uno habla y los demás escuchan). De la misma forma, las sesiones
pueden contener audio, vídeo o datos. Esta última opción permite que se
pueda ejecutar cualquier tipo de aplicaciones simultáneamente a la
comunicación de voz y vídeo (por ejemplo, para realizar presentaciones,
compartir documentos o trabajar en grupo).
LA ARQUITECTURA SIP
SIP se basa en un modelo cliente-servidor en el que el cliente realiza
solicitudes (requests) al servidor, quien le responde (response) para aceptar,
rechazar o redirigir dichas solicitudes
Componentes
Terminales y Servidores de red
Los equipos terminales disponen de dos componentes fundamentales que son :
Agente de usuario cliente o UAC (User Agent Client)
Se trata de la aplicación que
permite que el terminal
pueda realizar o iniciar una
llamada. El UAC se utiliza
para enviar solicitudes SIP.
Agente de usuario servidor o UAS (User Agent Server).
Se trata de la aplicación que
permite que el terminal pueda
recibir o responder a una
llamada realizada por el UAC. El
UAS recibe solicitudes SIP y
devuelve las respuestas
correspondientes en nombre
del usuario
En cuanto a los servidores de red, existen tres tipos:
o Servidor proxy (proxy server) : Se trata de un equipo que recibe solicitudes
del cliente, las analiza y decide el servidor al que debe reenviarlas. Si es
necesario, el proxy puede modificar el mensaje de solicitud antes de
reenviarlo.
o Servidor de redireccionamiento (Redirect Server). Estos servidores no reenvían los
mensajes de solicitud, sino que le responde al cliente con la dirección, o direcciones, del
servidor al que le tienen que enviar la solicitud.
o Servidor de registro (Registrar Server). Este servidor mantiene un registro de la
dirección SIP de un usuario y de su dirección IP correspondiente. Esto permite tener
localizado a un usuario en todo momento.
URI. Las direcciones SIP
El formato de URI está definido en la recomendación RFC2396 y se basa en
la estructura de direccionamiento empleada en Internet y conocida como
URL (Uniform Resource Locators, ‘Localizador universal de recursos’).
LOS MENSAJES SIP
Los mensajes se basan en el envío de textos utilizando la tabla de
caracteres ISO 10646 y conocido como conjunto universal de
caracteres (UCS, Universal Character Set). Esta tabla, al igual que
la tabla ASCII, define el conjunto de ceros y unos que debe
representar a cada carácter.
El formato general de los mensajes (de solicitud
y respuesta) está definido en la recomendación
RFC822, y se compone de:
o Una línea de inicio (start-line). Esta línea
define el tipo de mensaje de que se trata.
Existen dos tipos: línea de solicitud,
utilizada por los mensajes de solicitud, y
línea de respuesta, utilizada por los
mensajes de respuesta.
o Una cabecera formada por uno o más campos de cabecera
(headers). La cabecera se utiliza para incluir información adicional
relativa a la solicitud o la respuesta.
o Una línea en blanco para indicar el final de la cabecera.
o El cuerpo del mensaje (message-body). SIP no define la estructura
del cuerpo del mensaje ni se ocupa de su contenido.
La Iínea de soIicitud
La línea de inicio recibe el nombre de línea de solicitud
(request-line)
En la versión 2.0 de SIP se incluyen seis tipos de solicitudes o métodos:
o INVITE (invitar).
o ACE (aceptación).
o OPTIONS (opciones).
oBYE (adiós).
o CANCEL (cancelar).
o REGISTER (registrar).
La Iínea de respuesta
Este informará del estado en el que se encuentra el servidor
o si la solicitud se ha aceptado o rechazado
Los códigos de estado tienen tres dígitos, donde el primero
define la clase de respuesta y los otros dos el mensaje concreto
dentro de la clase. Actualmente existen seis clases diferentes de
mensajes de respuestas:
o 1xx. De información (Informational).
o 2xx. De aceptación (Successful).
o 3xx. Redirección (Redirection).
o 4xx. Fallo en la solicitud (Request Failure).
o 5xx. Fallo en el servidor (Server Failure).
o 6xx. Fallo general (Global Failure).
La cabecera
Son utilizados en todos los tipos de mensajes, mientras que otros son específicos de un
tipo de mensaje particular. Tan bien Por otro lado, existen campos de cabecera que pueden
ser modificados o añadidos por los servidores proxy que intervienen en la comunicación,
mientras que otros van dirigidos directamente a ser interpretados por el agente de usuario.
Estos campos están divididos en cuatro grupos diferentes:
o Campos generales (general headers).
o Campos de entidad (entity headers).
o Campos de solicitud (request headers).
o Campos de respuesta (response headers).
EI cuerpo deI mensaje. SDP
Los mensajes SIP no están obligados a incluir un cuerpo, sin embargo, cuando lo
hacen, puede tratarse de información dirigida a cualquier aplicación del usuario o
información de señalización.
Cuando intervienen servidores
Veamos ahora un ejemplo en el que intervienen servidores intermedios.
Como en el ejemplo anterior, el usuario llamante, Juan, desea invitar a Luis
a una comunicación. Al enviar esta invitación, el mensaje llega al servidor
proxy del dominio de Luis. El proxy acepta este mensaje de invitación y
contacta con el servidor de registro para conocer cuál es la localización
exacta de Luis. El servidor de registro le informa al proxy de la dirección de
Luis en este momento (la que previamente Luis había registrado). El proxy
le envía al terminal de Luis una invitación, este terminal le avisa al usuario,
quien descuelga. El terminal de Luis le envía una respuesta de aceptación
al proxy, quien se lo retransmite al terminal de Juan. El terminal de Juan
confirma la comunicación al proxy y éste se la retransmite al terminal de
Luis, dando comienzo al intercambio de información multimedia.
MEJORAS REALIZADAS A SIP
La recomendación que define SIP, RFC2543, se publicó en
marzo de 1999. Desde entonces, se ha ido implementando en
distintos entornos y desarrollando sus aplicaciones. En muchas
ocasiones se ha visto que, con pequeñas mejoras, se podría
aumentar considerablemente el potencial de SIP. Todas estas
mejoras están siendo estudiadas por el IETF, pero, hasta la
fecha, no se ha publicado una nueva versión de SIP, aunque sí
se dispone de recomendaciones independientes que recogen
estas extensiones del protocolo.