Академический Документы
Профессиональный Документы
Культура Документы
Introduccin
Direccionamiento en SIP Entidades funcionales Mensajes en SIP Registro de usuarios Control de sesin
Introduccin
Internet, obviamente Redes privadas (corporativas, en centros educativos, en organismos de todo tipo, instalaciones particulares) Utilizando todo tipo de protocolos de enlace: Ethernet, ADSL, WiFi... Habr nuevas en el futuro prximo: IMS de 3GPP
Sobre todas estas redes, cada vez es ms importante/ interesante desarrollar aplicaciones/servicios multimedia:
Protocolos de Sealizacin:
Protocolos para indicar presencia, localizar usuarios, iniciar, modificar y terminar sesiones multimedia
Protocolos de Ayuda:
Protocolos que realizan las funciones de localizacin de servicios, calidad de servicio, autenticacin, autorizacin y accounting, traduccin de direcciones, etc.
Ejemplos de protocolos
Transporte de Medios:
RTP (datos con propiedades en tiempo real) Otros protocolos de Transporte: UDP y TCP. SIP/SDP (IETF) H.323 (ITU-T) Nota: SIP ha sido adoptado por el 3GPP y ETSI, como protocolo de sealizacin para redes 3G/4G DNS RSVP - Resource Reservation Setup Protocol COPS - Common Open Policy Service protocolo para ayudar al control de la QoS Diameter - Authentication, Accounting, Authorization
4
Sealizacin:
Protocolos de Ayuda:
Conjunto de Protocolos
Historia de SIP
Desarrollado inicialmente por el grupo de trabajo MMUSIC (Multi-Party Multimedia Session Control).
Versin 2.0 publicada en 1998. Alcanz status de RFC (2543) en Abril 1999. En Septiembre 1999 se cre el grupo SIP en IETF. En Julio 2000 se public una versin revisada y mejorada del estndar (RFC 2543 bis), finalmente denominada RFC 3261 (completada luego con muchos otros RFCs). Principales gurs de SIP: Henning Schulzrinne (Universidad de Columbia) y Gonzalo Camarillo (Ericsson SE).
Qu es SIP
Proporciona funciones parecidas a las de los protocolos de sealizacin clsicos, pero sobre redes de datos Permite establecer, modificar y terminar sesiones multimedia entre dos o ms participantes, e invitar a participantes en dichas sesiones Funciona al nivel de aplicacin del modelo TCP/IP Es independiente del protocolo de transporte sobre el que se transmite SIP (TCP, UDP u otros) Utiliza mensajes de texto, siguiendo un modelo peticinrespuesta similar al de HTTP o al de SMTP Utiliza un conjunto reducido de entidades que interactan (User Agents y varios tipos de Servers) El encaminamiento de los mensajes de SIP es completamente independiente del de los datos de las sesiones que establece
7
Funciones de SIP
Determinar la localizacin de puntos finales de comunicacin (usuarios) Contactar puntos finales para determinar su disponibilidad para establecer una sesin de comunicacin multimedia Permitir intercambiar las capacidades de comunicacin multimedia de los puntos finales para determinar los parmetros a utilizar en una sesin Establecer sesiones de comunicacin multimedia Modificar sesiones de comunicacin multimedia, incluyendo la transferencia y finalizacin de sesiones, as como la modificacin de los parmetros de la sesin
8
Qu no es SIP
SIP no es un protocolo que proporciona de forma integrada comunicaciones multimedia, y por ello se utiliza en conjuncin con otros protocolos:
SIP no permite la descripcin de sesiones multimedia (qu direcciones IP y puertos utilizar, qu codificadores usar, etc.)
Para ello se pueden usar otros protocolos como RSVP (Reservation Protocol) y extensiones sobre SIP;
Para ello: RTP (Real-time Transport Protocol), RTCP (RTP Control Protocol)o directamente UDP
SIPPING: Session Initiation Proposal Investigation MMUSIC: Multiparty Multimedia Session Control IPTEL: Internet Telephony AVT: Audio Video Transport MIDCOM: Firewall/NAT Traversal SIMPLE: SIP for Instant Messaging and PresenceLeveraging
10
Proxy biloxi.com
Telfono Bob
El telfono de Bob recibe la indicacin de llamada entrante, comienza a sonar y enva una indicacin al telfono de Alice
INVITE
Alice recibe una indicacin de que la llamada est en progreso Alice recibe una indicacin de que la llamada se ha establecido
RINGING
RINGING OK
RINGING OK
OK
ACK
11
Identificacin de usuarios
URI = Uniform Resource Identifier Formato URI SIP: sip: [userinfo] hostport [parameters]
userinfo:
contiene informacion sobre el usuario, seguida de una letra @ contiene un nombre de dominio o una direccin IP. Adicionalmente, puede incluir un numero de puerto contiene parmetros adicionales. Se indican tras el carcter ;
hostport:
Parameters:
Ejemplos:
sip:Alice.Smith@domain.com sip:carol@ws1234.domain2.com;transport=tcp sip:bob@163.117.139.101:5060
12
Aunque lo ms habitual es que los usuarios se comuniquen a travs de un servidor (de los que hay varios tipos): Servidor SIP
13
En realidad, un usuario de SIP utiliza un User Agent para enviar y recibir mensajes SIP:
Muchos dispositivos pueden proporcionar un User Agent: telfonos (fijos o mviles), ordenadores, televisores, sistemas automatizados tipo ACD/VRU, etc. En el User Agent se pueden distinguir un User Agent Client (UAC) y un User Agent Server (UAS):
Un UAC es una aplicacin cliente que crea peticiones SIP (requests) Un UAS es una aplicacin servidor que interacta con el usuario cuando se recibe una peticin SIP, y que contesta a las mismas (genera respuestas)
14
Teldat Di-Voz 50
Thomson ST 2022
Linksys WIP330
15
Un Registrar gestiona la informacin de localizacin de usuarios en un determinado dominio En SIP, los usuarios pueden indicar la asociacin entre su URI SIP pblica y las direcciones en las que desean ser contactados en un momento dado;
Se realiza mediante una solicitud de SIP de tipo REGISTER Los usuarios pueden modificar dichas asociaciones mediante solicitudes de tipo REGISTER
As, un Registrar es un servidor especializado en aceptar y procesar Requests de tipo REGISTER Un Registrar utiliza un servicio de almacenamiento y gestin de la informacin de localizacin, que puede residir en el propio servidor o ser completamente externo (por ejemplo, usando LDAP); aspecto no estandarizado
16
Un Redirect recibe solicitudes de clientes o servidores SIP, obtiene la asociacin entre la URI SIP del usuario al que se intenta contactar y sus direcciones de contacto actualizadas, y devuelve dichas direcciones de contacto al peticionario Los Redirect pueden requerir autentificacin a los peticionarios El funcionamiento de los servidores de tipo Redirect es sencillo, lo que les permite presentar altos rendimientos.
El servidor proporciona informacin sobre la localizacin del destino de la solicitud El servidor no necesita participar en el encaminamiento de la solicitud
17
Un servidor proxy acta siempre encaminando solicitudes hacia UASs, o encaminando respuestas hacia UACs Pueden existir varios proxies a travs de los que una determinada solicitud deba pasar para ir del UAC origen al UAS destino Cualquier proxy puede tomar decisiones sobre el encaminamiento de una solicitud, o incluso puede llegar a modificarla antes de reenviarla al siguiente paso La respuesta a una solicitud determinada sigue exactamente el mismo camino (a la inversa) que sigui la solicitud original; es decir, que atraviesa los mismos proxies; Por lo tanto, la manera ms sencilla de interpretar un proxy es como un router para mensajes SIP, pero adems con capacidad para interpretar, validar, redirigir, duplicar o eliminar dichos mensajes, as como autentificar usuarios y otras funcionalidades avanzadas.
18
Sin embargo, los proxies estn diseados para ser relativamente transparentes a los usuarios, y no pueden actuar de forma arbitraria sobre los mensajes SIP:
Un proxy no puede modificar la parte SDP de un mensaje INVITE (ver ms adelante) En general, los proxies no pueden iniciar solicitudes por si mismos Un proxy no puede terminar una sesin mediante un mensaje BYE
19
Servidores proxy para grandes clientes (enterprise proxies); Servidores para autentificacin de usuarios; Servidores para el control de acceso a la red basados, por ejemplo, en el saldo de los usuarios o en la hora de acceso; Servidores de interfaz con usuarios; Servidores de interfaz con otras redes; Servidores de acceso a otros servicios de la red (como por ejemplo, localizacin); Etc.
20
En la RFC 3261 se definen otros nuevos tipos de servidores SIP, adicionales a los tradicionales examinados hasta el momento; Back-to-back User Agent (B2BUA):
Un B2BUA recibe solicitudes y las procesa como si fuera un UAS Puede generar solicitudes hacia otros servidores o UAs, como un UAC
En muchos aspectos su comportamiento es muy similar al de un proxy (de tipo stateful, como es obvio), pero tienen mayor libertad:
Pueden desconectar un lado de la sesin, y reconectarlo de nuevo con otro usuario, con otros, con el mismo en otra localizacin, etc. Pueden iniciar sesiones por su cuenta, terminarlas sin intervencin de usuarios (prepago), modificar la estructura de la sesin, etc.
21
Es un protocolo solicitud-respuesta (request-response) Todos los mensajes de SIP son legibles (se codifican como texto, al estilo de HTTP SMTP)
Los campos de cabecera tienen el formato <nombre>:<valor> El cuerpo del mensaje es opcional
22
Start-line en una respuesta se denomina Status-Line Cuando un servidor SIP (servidor UAS) recibe una solicitud, siempre debe contestar con una o ms respuestas Formato de la status-line:
SIP-Version:
Versin del protocolo (siempre es SIP/2.0) Es un cdigo de resultado entero de 3 dgitos Indica el resultado de comprender y satisfacer una solicitud Descripcin textual corta del Status-Code (normalmente para los usuarios)
Status Code:
La Reason-Phrase:
Ejemplos:
23
Los Status-Code de SIP son muy similares a los de HTTP (los cinco primeros grupos son los mismos; el sexto es especfico de SIP): Tipo respuesta
Informativa xito Redireccin Error de cliente Error de servidor Fallo global
Rango
100-199 200-299 300-399 400-499 500-599 600-699
Comentarios
De carcter provisional; indica el estado de la sesin antes de completarse; se interpreta como Request recibido y en proceso Definitiva; se interpreta como Request recibido y procesado con xito Definitiva; utilizada para redirigir los Requests a otra direccin Definitiva; el Request ha fallado por error en el cliente; se puede reintentar si se modifica como indica el Response Definitiva; el Request ha fallado por error en el servidor; se puede reintentar en otro servidor Definitiva; el Request no es valido para ningn servidor
24
Method:
Indica el propsito de la solicitud Ej: El mtodo INVITE permite establecer sesiones Es una URI (ej: una URI SIP o URI SIPS) Indica el usuario o servicio destinatario de la solicitud Indica la versin de SIP (SIP/2.0)
Request-URI:
SIPVersion
INVITE, se utiliza para solicitar a un usuario el establecimiento de una sesin ACK, utilizado por el cliente que origin un INVITE para confirmar al servidor que le respondi que ha recibido la respuesta final al mismo CANCEL, utilizado por los clientes para cancelar sesiones que an estn pendientes de establecerse (el servidor an no ha enviado una respuesta final); la recepcin de un CANCEL por parte de un servidor aborta el intento de establecimiento de la sesin, pero no impide que se lleve a cabo el three-way handshake (el servidor enva un 487 Transaction Cancelled) BYE, utilizado por los usuarios para abandonar una sesin en curso; si la sesin estaba integrada por dos usuarios, utilizar BYE equivale a terminar la sesin REGISTER, utilizado por los UAs para informar a un Registrar de la localizacin actual del usuario OPTIONS, utilizado para solicitar las capacidades de un servidor: methods, protocolos y codecs soportados, etc.
26
REFER, utilizado para que un UA pida a otro UA que establezca una sesin con un tercero (otro UA, un servicio HTTP, etc.); el ejemplo de uso ms comn es el de transferencia de llamadas entre usuarios SUBSCRIBE, utilizado por los usuarios para solicitar la recepcin de avisos cuando ocurran determinados eventos; un campo en el cuerpo del mensaje acta como temporizador para la subscripcin (0 indica borrar la subscripcin); ejemplo: subscripcin a informacin de presencia de usuarios NOTIFY, utilizado para notificar la ocurrencia de eventos (por ejemplo, el solicitado por un SUBSCRIBE) MESSAGE, utilizado para transportar mensajes (codificados en MIME) utilizando SIP, por ejemplo para servicios de IM
27
UPDATE, utilizado para modificar el estado de una sesin an pendiente de establecer (sesiones en curso se modifican mediante un nuevo INVITE); por ejemplo, silenciar el sonido de una sesin an pendiente de establecerse INFO, utilizado para enviar informacin extremo a extremo entre usuarios que participan en una sesin; al ser extremo a extremo, ningn servidor SIP interpreta o acta ante methods de tipo INFO; un ejemplo de uso es el envo de informacin de sealizacin entre usuarios (como mensajes tipo USR de ISUP) PRACK, utilizado para confirmar la recepcin de responses provisionales (tipo 1XX), cuando se requiere dicha confirmacin; un ejemplo del uso de PRACK es en el soporte para la reserva de recursos (ver ms adelante).
28
CSeq: contiene un nmero de secuencia decimal y un nombre de mtodo. Permite ordenar e identificar transacciones de SIP, as como diferenciar entre nuevas solicitudes y retransmisiones
Call-ID: identifica de forma nica una solicitud INVITE, as como todos los registros realizados por un cliente particular
Max-Forwards: se usa para evitar bucles de encaminamiento. Cada proxy que gestiona una solicitud decrementa su valor en uno, y si llega a cero la solicitud es descartada
Ejemplo Max-Forwards: 6
Via: la cabecera Via mantiene un registro de los proxies atravesados por una solicitud. La respuesta atraviesa los mismos proxies que la solicitud, slo que en orden inverso
MIME = Multipurpose Internet Mail Extensions (RFC 2045) Content-Disposition, describe como el cuerpo del mensaje debe ser interpretado
El
valor session indica que el cuerpo describe una sesin indica formato SDP
32
Registro (I)
El registro crea asociaciones en un servicio de localizacin de un dominio Cada asociacin enlaza una URI SIP pblica con una o ms direcciones de contacto El registro supone enviar una solicitud REGISTER a un Registrar El Registrar acta como Front-end para el servicio de localizacin El servicio de localizacin es tpicamente consultado por un servidor proxy o redirect
33
Registro (2)
2. Almacenar
Servicio de localizaci n
4. Solicitud
3. INVITE sip:carol@chicago.com
5. Respuesta
4. INVITE sip:cube2214a.chicago.com
34
Registro (3)
Request-URI, incluye el nombre de dominio del servicio de localizacin en el que se desea hacer el registro To, contiene la URI SIP pblica From, contiene la URI SIP pblica de la persona responsable del registro Call-ID, todos los registros realizados por un cliente en un registrar deben tener el mismo Call-ID Cseq, se incrementa en 1 por cada solicitud REGISTER enviada con el mismo Call-ID Contact (opcional), incluye cero o ms direcciones de contacto
35
Registro (4)
REGISTER sip:biloxi.com SIP/2.0 Via: SIP/2.0/UDP bobspc.biloxi.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 To: Bob <sip:bob@biloxi.com> From: Bob <sip:bob@biloxi.com>;tag=456248 Call-ID: 843817637684230@998sdasdh09 CSeq: 1826 REGISTER Contact: <sip:bob@192.0.2.4> Expires: 7200 Content-Length: 0
Registrar biloxi.com
Telfono Bob
REGISTER OK
SIP/2.0 200 OK Via: SIP/2.0/UDP bobspc.biloxi.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.4 To: Bob <sip:bob@biloxi.com>;tag=2493k59kd From: Bob <sip:bob@biloxi.com>;tag=456248 Call-ID: 843817637684230@998sdasdh09 CSeq: 1826 REGISTER Contact: <sip:bob@192.0.2.4> Expires: 7200 Content-Length: 0
36
Un UAC que desea establecer una sesin genera una solicitud INVITE LA solicitud es generalmente encaminada a travs de uno o ms proxies hasta alcanzar un UAS El UAS:
Puede aceptar el establecimiento de la sesin, mediante una respuesta 2xx Puede rechazar el establecimiento de la sesin, mediante una respuesta 3xx, 4xx, 5xx o 6xx Puede enviar respuestas provisionales 1xx para informar al UAC sobre el progreso de contactar al usuario llamado
La primera respuesta (101-199 o 2xx) generada por el UAS resulta en el establecimiento de un dilogo entre el UAC y el UAS
To:
Incluye la URI SIP pblica del usuario o recurso receptor de la solicitud Habitualmente, el valor lo indica el usuario, introducindolo manualmente o seleccionndolo de una libreta de direcciones El campo Request-URI del la solicitud inicialmente se establece al valor de la URI en el campo de cabecera To Tpicamente incluye la URI SIP pblica del usuario iniciador de la solicitud Habitualmente, el valor es preconfigurado en el UA por el usuario o por el administrador del dominio local del usuario Debe contener un parmetro tag elegido por el UAC (el tag debe ser globalmente nico y criptogrficamente aleatorio) Identificador globalmente nico generado por el UAC Debe ser el mismo para todas las solicitudes y respuestas enviadas por cualquier UA en el dilogo
38
From:
Call-ID:
Cseq:
ser expresable como un entero sin signo de 32 bits Debe ser menor que 231
Max-Forwards:
Valor recomendado: 70 El UAC aade su direccin en un campo de cabecera Via, indicando la localizacin donde las respuestas a la solicitud deben ser enviadas Provee una URI SIP que puede ser utilizada para contactar al UA en solicitudes posteriores
39
Via:
Contact:
Los campos From, Call-ID, CSeq y Via de la respuesta coinciden con los correspondientes campos de la solicitud LA URI en el campo de cabecera To de la respuesta es igual a la URI en el campo de cabecera To de la solicitud El UAS debe aadir un parmetro tag en el campo de cabecera To de la respuesta
El tag debe ser globalmente nico y criptogrficamente aleatorio El mismo tag se aade a todas las respuestas a la solicitud INVITE El tag no es obligatorio en respuestas TRYING (100)
El UAS incluye una cabecera Contact, en la que indica la direccin en la que el UAS desea recibir futuras solicitudes en el dilogo (ej: el ACK)
40
El proxy realiza, entre otras, las siguientes funciones para cada solicitud recibida:
Validar la solicitud Determinar el destino o destinos de la solicitud Reenviar la solicitud a cada destino
Cambia
la Request-URI de la solicitud Actualiza el campo de cabecera Max-Forwards Determina la direccin IP, puerto y protocolo de transporte para el siguiente salto Aade un valor al campo de cabecera Via con su propia direccin
Proxy biloxi.com
Telfono Bob
El telfono de Bob recibe la indicacin de llamada entrante, comienza a sonar y enva una indicacin al telfono de Alice
2. TRYING 4. TRYING
5. INVITE
Alice recibe una indicacin de que la llamada est en progreso Alice recibe una indicacin de que la llamada se ha establecido
8. RINGING
7. RINGING 10. OK
6. RINGING 9. OK
11. OK
12. ACK
42
43
44
48
Ejemplo-- OK (9)
SIP/2.0 200 OK Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 ;received=192.0.2.3 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 ;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 ;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:bob@192.0.2.4> Content-Type: application/sdp Content-Length: 131 <Carga SDP>
50
From, incluye la URI y el tag correspondientes al lado local To, incluye la URI y el tag correspondientes al lado remoto Call-ID, incluye el valor previamente especificado en la solicitud INVITE Cseq, incluye:
El
nombre del mtodo de la solicitud El nmero de secuencia se incrementa en 1 para cada solicitud Excepcin: ACK. La solicitud ACK utiliza el mismo valor de nmero de secuencia que el INVITE
Request URI, incluye la URI del campo de cabecera Contact recibido del UA remoto El resto de campos se generan segn se ha comentado previamente para la solicitud INVITE
51
Generacin de la respuesta:
52
Proxy biloxi.com
Telfono Bob
El telfono de Bob recibe la indicacin de llamada entrante, comienza a sonar y enva una indicacin al telfono de Alice
3. TRYING 5. TRYING
4. INVITE
Alice recibe una indicacin de que la llamada est en progreso Alice recibe una indicacin de que la llamada se ha establecido
8. RINGING
7. RINGING 10. OK
6. RINGING 9. OK
11. OK
12. ACK
53
El mtodo BYE permite terminar sesiones La solicitud BYE se construye del mismo modo que solicitudes posteriores al INVITE en un dilogo Consideraciones:
El UA del llamante puede generar una solicitud BYE en cualquier momento El UA del llamado puede generar una solicitud BYE una vez que ha recibido el ACK del 2xx
La solicitud BYE termina el dilogo y la sesin establecidos entre los dos UAs
55
1. BYE
2. OK
56
57
Ejemplo OK (2)
SIP/2.0 200 OK Via: SIP/2.0/UDP 192.0.2.4;branch=z9hG4bKnashds10 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE Content-Length: 0
58
Modificacin de la sesin
Permite cambiar la descripcin de la sesin: cambiar direcciones IP, puertos RTP/RTCP aadir o eliminar sesiones RTP, etc
El llamante y el llamado pueden modificar una sesin existente Si un UA recibe una respuesta final distinta de 2xx a una solicitud RE-invite, los parmetros de la sesin permanecen sin cambiar Un UAS tpicamente no genera respuestas 180 (RINGING) para una solicitud Re-INVITE
59
Cada lnea de una descripcin SDP es de la forma tipo=valor (tipo es un carcter) Formato general de una descripcin SDP
Seccin a nivel de sesin Seccin a nivel de informacin 1 ... Seccin a nivel de informacin N
60
61
El modelo Oferta/Respuesta permite acordar la descripcin de una sesin unicast Un usuario (ofertante) genera una carga SDP (oferta SDP) y la enva al usuario remoto El otro usuario genera una carga SDP (respuesta SDP) y la enva al usuario ofertante
62
Funcionamiento:
8. RINGING
63
v=0 o=bob 2808844564 2808844564 IN IP4 host.biloxi.example.com s= c=IN IP4 host.biloxi.example.com t=0 0 m=audio 49174 RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=video 49170 RTP/AVP 32 a=rtpmap:32 MPV/90000
Respuesta SDP 64
Extensiones a SIP
Definida por el grupo de trabajo SIP del IETF en RFC 3262 Permite enviar de forma fiable respuestas provisionales (ej: RINGING) Se basa en el uso del mtodo PRACK y campos de cabecera adicionales (RAck y RSeq) Definida por el grupo de trabajo SIP del IETF en RFC 3312 Permite retrasar el establecimiento de la sesin mientras los UAs ejecutan un procedimiento de reserva de recursos (e.g,. RSVP) Se basa en la inclusin de cierta informacin (precondiciones) en la carga SDP
65
Conferencia
Resulta obvio, por tanto, establecer una sesin multimedia entre dos usuarios
El grupo de trabajo del IETF SIPPING estudia el uso de SIP para aplicaciones relacionadas con la telefona y multimedia El RFC 4353 presenta una serie de configuraciones que permiten establecer una conferencia basada en SIP entre varios usuarios
66
Aplicaciones de SIP
Pese a su relativamente corta vida, SIP ya est presente en importantes aplicaciones de comunicaciones Adems, muchas de estas aplicaciones probablemente tendrn un muy importante uso en el futuro, lo que hace an ms dorado el futuro de SIP Algunas aplicaciones de SIP:
Telefona sobre IP (VoIP) Sistemas de videoconferencia Sistemas de mensajera instantnea (IM) Core multimedia de la nueva arquitectura de servicios de telefona mvil 3G (IMS de 3GPP y 3GPP2).
67