3. Ariel Roel – arielroel@gmail.com - @arielroel
AGENDA – Unidad 5
• Introducción al protocolo SIP.
• Arquitectura SIP.
• Metodos y respuestas SIP.
• Formato de los mensajes SIP.
• Flujos de llamadas.
Señalización IP
4. Ariel Roel – arielroel@gmail.com - @arielroel
4
RTCP
RTP
IP
MGCP
Control de llamada y señalización Control de
Señalización y
Gateway
Medios
H.225
Q.931
H.323
H.323 V1 y V2 soportan H.245 sobre TCP, Q.931 sobre TCP y RAS sobre UDP.
H.323 V3 y 4 soportanH.245 sobreUDP/TCP y Q.931 sobre UDP/TCP y RAS sobre UDP.
SIP soporta TCP y UDP.
TCP
RAS
UDP
SIP
H.245
Audio/
Video
RTSP
Señalización IP
5. Ariel Roel – arielroel@gmail.com - @arielroel
¿Qué es SIP?
• SIP (Session Initial Protocol)
• Protocolo de señalización para el establecimiento de
sesiones sobre redes IP
• Datos de muy diversa naturaleza
• Trabaja en sintonía con otros protocolos, pero con
independencia de los mismos
• SIP no provee servicios, sino primitivas para
implementar servicios
6. Ariel Roel – arielroel@gmail.com - @arielroel
¿Qué es SIP?
• 5 funciones relacionadas con el establecimiento de
sesiones :
1. User location: determinación del end system o end point a
ser usado para la comunicación
2. User capabilities: determinación de los medios y los
parámetros de esos medios a ser usados
3. User availability: determinación de la disponibilidad o
voluntad del usuario llamado para entrar en la comunicación
4. Session setup: “ringing”, el establecimiento de los
parametros tanto del llamado como el llamante
5. Session management: incluye la transferencia y la
terminación de la llamada
7. Ariel Roel – arielroel@gmail.com - @arielroel
• SIP puede también iniciar multi-party calls
usando un multipoint control unit (MCU) o
una interconexión mallada en lugar de
multicast.
• Internet telephony gateways que se conectan
a usuarios de la Public Switched Telephone
Network (PSTN) pueden usar SIP para
establecer llamadas entre ellos.
Mas funcionalidades
8. Ariel Roel – arielroel@gmail.com - @arielroel
Desarrollo de SIP
• Desarrollado por Handley, Schulzrinne, Schooler, y
Rosenberg
- Enviado como Draft de Internet en 7/97
• Se asigno la RFC 2543 en 3/99
• Actualmente RFC 3261
• Objetivo: Reuso y máxima interoperabilidad con los
protocolos existentes
9. Ariel Roel – arielroel@gmail.com - @arielroel
Objetivos
• Integración voz (VoIP), web y servicios
multimedia sobre IP
• Soporte a la movilidad: Agentes de Presencia
• Mecanismos de control de llamadas
10. Ariel Roel – arielroel@gmail.com - @arielroel
Filosofía de SIP
• Internet Standard
- IETF - http://www.ietf.org
• Reuso del direccionamiento de Internet (URLs,
DNS, proxies)
- Utiliza el amplio conjunto de funcionalidades de
Internet
• Reuso de código de HTTP
- Basado en texto
• No asume ningún protocolo subyacente:
- TCP, UDP, X.25, FR, ATM, etc.
- Soporte de multicast
11. Ariel Roel – arielroel@gmail.com - @arielroel
Arquitectura SIP
• Utiliza una arquitectura Cliente/Servidor
▫ Cliente – origina los mensajes
▫ Servidor – responde o reenvía los mensajes
• División funcional (no física)
▫ Agente de usuario SIP (USER AGENT)
Teléfonos SIP
▫ Servidor SIP (SIP SERVER)
Utilizados para localizar a los usuarios
1. Servidor Proxy SIP
2. Servidor de redireccionamiento SIP
▫ Registro SIP (SIP REGISTRAR)
▫ Gateways SIP (SIP Gateways)
A PSTN para interacción con telefonía legada
A otros protocolos IP (H.323)
12. Ariel Roel – arielroel@gmail.com - @arielroel
Redirect
Server
Arquitectura de SIP
Location
Server
Registrar
Server
User Agent
Proxy
Server
Gateway
PSTN
Componentes SIP
Proxy
Server
13. Ariel Roel – arielroel@gmail.com - @arielroel
• User Agents
▫ User Agent Client (UAC): Inicia los pedidos SIP
▫ User Agent Server (UAS): Devuelve las respuestas SIP
• Network Servers (pueden estar co-localizados)
▫ Proxy: Decide el proximo salto y reenvía el pedido, hace el
relevo de la señalización de la sesión, opera de una manera
transaccional, y no guarda el estado de la sesión
▫ Redirect: Envía la dirección del próximo salto al cliente y
redirecciona los llamantes a otros servidores
- Registrar: Acepta los pedidos de REGISTER de los
clientes, y mantiene las informaciones de localizacion de los
usuarios en el servidor de ubicación
Entidades SIP
14. Ariel Roel – arielroel@gmail.com - @arielroel
1. SIP Addressing
2. Ubica un SIP Server
3. Envia SIP Requests : SIP Transactions
4. Métodos SIP (Methods)
5. Respuestas SIP (Responses)
6. Requests y Responses subsiguientes
Operación de SIP
15. Ariel Roel – arielroel@gmail.com - @arielroel
Direccionamiento SIP (Addressing)
Uso deURLs de Internet
▫ URL - Uniform Resource Locators
▫ Soporta direccionamiento Internet y PSTN
▫ Forma general: name@domain
▫ Para completar una sesión, se necesita resolver el
User@Host
▫ Ejemplos:
sip:arielroel@gmail.com
sip:A.H. Roel <ariel.roel@wamay.com.ar>
sip:+54-221-609-4066@wamay.com.ar;user=phone
sip:guest@10.64.1.1
sip:790-7360@up.edu.ar;phone-context=VNET
16. Ariel Roel – arielroel@gmail.com - @arielroel
Encontrar un SIP Server
• El llamante primero ubica el servidor apropiado
• Cuando el cliente quiere enviar un request URI, lo
puede hacer tanto al
▫ Proxy server configurado localmente o a la
▫ Dirección IP y puerto correspondiente al request URI
• El cliente debe determinar la dirección IP, puerto
del servidor y protocolo a ser usado.
17. Ariel Roel – arielroel@gmail.com - @arielroel
Encontrar un SIP Server
El cliente:
1. Debe intentar contactar al servidor en el puerto definido en
la request URI. Si no hay especificación, intenta en el
puerto 5060
1. Usa el protocolo especificado si aplica
2. Por ejemplo usar UDP si es soportado
3. Si UDP falla, usar TCP
2. Enviar el pedido a la IP del servidor si la parte host del
request URI es una dirección IP
3. Encontrar una o mas direcciones del servidor por consulta
al DNS
4. Los resultados pueden ser almacenados (cached)
5. Debe existir capacidad de interpretar mensajes ICMP
18. Ariel Roel – arielroel@gmail.com - @arielroel
Mensajes SIP
• Basadas en los mensajes HTTP
▫ Modelo cliente – servidor
• Primitivas:
▫ register: para registrarse ante el proxy
▫ invite, re-invite: negociación de la sesión
▫ options: testea si un terminal soporta los parametros de
sesión
▫ Otros: bye, ack, cancel…
19. Ariel Roel – arielroel@gmail.com - @arielroel
• INVITE: Inicia la sesión
▫ Descripción de la sesión incluída en el cuerpo del
mensaje
• El Re-INVITEs usado para cambiar el estado de la sesión
• ACK confirma el establecimiento de la sesión y sólo puede
ser usado con el INVITE
• BYE termina la sesión (colgar)
• CANCEL cancela el invite pendiente
• REGISTER: ata una dirección permanente a la ubicación
actual, y puede binds a permanent address to current
location, y puede transmitir datos del usuario
• OPTIONS: consulta de capacidades
• INFO: Usado para llevar información “out of band” tal
como DTMF
Métodos
20. Ariel Roel – arielroel@gmail.com - @arielroel
Mensajes SIP
• Códigos de respuesta :
▫ 1xx: en curso
▫ 2xx: finalizada con éxito
▫ 3xx: redirección
▫ 4xx: errores en cliente
▫ 5xx: errores en servidor
▫ 6xx: errores globales
21. Ariel Roel – arielroel@gmail.com - @arielroel
Envío de un SIP Request
• Una vez que la parte host ha sido resuelta para el SIP
server
▫ El cliente envía 1 o más SIP request a ese servidor y
▫ Recibe 1 o más respuestas del servidor
• Ejemplo:
INVITE sip:ariel@wamay.com.ar SIP/2.0
22. Ariel Roel – arielroel@gmail.com - @arielroel
• Paso 1: El llamante envía un INVITE inicial
• Paso 2: El llamado envía una respuesta
• Paso 3: El llamante recibe una respuesta al
pedido inicial
• Paso 4: El llamante o el llamado generan
pedidos subsecuentes
• Paso 5: Se reciben los pedidos subsecuentes
• Paso 6: Se envía un BYE para cerrar la sesión
• Paso x: Puede enviarse un CANCEL
Orden de las operaciones
23. Ariel Roel – arielroel@gmail.com - @arielroel
• 1 El usuario se registra ante el proxy
• 2 Le indica al proxy el destino
• 3 El proxy busca el servidor destino (DNS)
• 4 Servidor destino contacta con destinatario
• 5 Negociación de los parámetros de sesión extremo a extremo
Control de llamadas
25. Ariel Roel – arielroel@gmail.com - @arielroel
Cabeceras de los mensajes
• Estructura: cabecera + cuerpo
▫ Cuerpo: información de niveles superiores
SDP: negociación de parámetros de conexión
• Campos:
▫ Status Line: tipo de mensaje
▫ VIA: identificador de equipo
▫ Max-Forwards: nº máximo de saltos
26. Ariel Roel – arielroel@gmail.com - @arielroel
Cabeceras de los mensajes
▫ To y From: direcciones de origen y destino
Sip:usuario@maquina.dominio
▫ Call-ID: identificador de la conexión
▫ Cseg: número de secuencia del mensaje
▫ Contact: dirección de acceso directo al terminal
▫ Content type y length: descripción y tamaño del
cuerpo del mensaje
28. Ariel Roel – arielroel@gmail.com - @arielroel
Proxy Server
▫ Un programa intermedio que actua tanto como
servidor y cliente que hace pedidos en nobre de otros
clientes.
▫ Los pedidos son atendidos internamente o re enviados
a otros, posiblemente luego de traducción
▫ Interpreta, re-escribe o traduce un mensaje de pedido
antes de reenviarlo.
29. Ariel Roel – arielroel@gmail.com - @arielroel
Location Server
▫ El location server es usado por un SIP redirect o
servidor proxy para obtener información de la posible
ubicación del llamado.
30. Ariel Roel – arielroel@gmail.com - @arielroel
Redirect Server
▫ Un servidor que acepta una solicitud SIP, mapea la
dirección en cero o más direcciones nuevas y devuelve
estas direcciones al cliente.
▫ A diferencia de un servidor proxy, el servidor de
redirección no inicia su propia petición SIP.
▫ A diferencia de un servidor de agente de usuario, el
servidor de redirección no acepta o termina las
llamadas.
31. Ariel Roel – arielroel@gmail.com - @arielroel
Registrar Server
▫ Un servidor que acepta solicitudes de registro
(REGISTER).
▫ El servidor de registro puede admitir la autenticación.
▫ Un servidor de registro suele ser co-ubicada con un
proxy o servidor de redirección y pueden ofrecer
servicios de localización.
32. Ariel Roel – arielroel@gmail.com - @arielroel
Registración
▫ Cada vez que un usuario enciende el
SIP User Client (SIP Phone IP, PC o
dispositivo SIP de otro tipo), el
cliente se registra en el servidor proxy
/ registro.
▫ El registro también puede ocurrir
cuando el usuario del cliente SIP
tiene que informar al servidor proxy /
registro de su ubicación.
▫ La información de registro se
actualiza periódicamente y cada
cliente usuario debe volver a registrar
con el servidor proxy / registro.
▫ Normalmente, el servidor proxy /
registro enviará esta información
para guardarla en el servidor de
ubicación / redirect.
SIP Messages:
REGISTER – Registra la dirección nombrada en el
campo To de la cabecera.
200 – OK.
Proxy/
Registration
Server
SIP Phone
User
Location/
Redirect
Server
REGISTER REGISTER
200
200
33. Ariel Roel – arielroel@gmail.com - @arielroel
302
(Moved Temporarily)
INVITE
200 (OK)
200 (OK)
ACK
INVITE
302
(Moved Temporarily)
ACK
INVITE
180 (Ringing)
180 (Ringing)
180 (Ringing)
200 (OK)
ACK
ACK ACK
RTP MEDIA PATH
BYE
BYE BYE
200 (OK)
200 (OK) 200 (OK)
Descon
exión
Medios
Estable
cimient
o
INVITE
Location/Redirect Server
Proxy Server Proxy Server User Agent
User Agent
INVITE
Flujo de llamada simplificado
34. Ariel Roel – arielroel@gmail.com - @arielroel
Marco de diseño
SIP fue diseñado para:
▫ Ser integrado con los protocolos IETF existentes
▫ Escalabilidad y simplicidad.
▫ Movilidad
▫ Creacion simple de funcionalidades y servicios.
35. Ariel Roel – arielroel@gmail.com - @arielroel
Integración con protocolos IETF
Otros protocolos de la IETF pueden ser usados para construir
una aplicación basada en SIP. SIP puede trabajar con los
protocolos existentes de la siguiente manera:
▫ RSVP - para reservar recursos de red.
▫ RTP Real Time Protocol – para transportar datos en
tiempo real y proveer feedback del QoS.
▫ RTSP Real Time Streaming Protocol – para controlar la
entrega de streaming.
▫ SAP Session Advertisement Protocol – para publicar
sesiones multimedia via multicast.
36. Ariel Roel – arielroel@gmail.com - @arielroel
Integración con protocolos IETF
▫ MIME – Multipurpose Internet Mail Extension – standard
defacto para describir el contenido en Internet.
▫ HTTP – Hypertext Transfer Protocol – HTTP es el
protocolo estandar usado para dar servicio de web pages
sobre Internet.
▫ COPS – Common Open Policy Service.
37. Ariel Roel – arielroel@gmail.com - @arielroel
Escalabilidad
▫ La arquitectura SIP es escalable, flexible y distribuida.
Funcionalidades tales como proxying, redirection,
location, o registration pueden estar en servidores físicos
diferentes.
La funcionalidad distribuida permite el agregado de
nuevos procesos sin afectar otros componentes.
38. Ariel Roel – arielroel@gmail.com - @arielroel
Simplicidad
SIP está diseñado para ser:
▫ “Rápido y simple en el corazón”
▫ “Más inteligente con menos volumen al borde.”
▫ Basado en texto para implementación y debugging
simple.
39. Ariel Roel – arielroel@gmail.com - @arielroel
Movilidad
▫ SIP soporta la movilidad de usuarios por medio del
“proxying” y la redirección de los requests a la
ubicación actual del cliente.
▫ El usuario puede estar usando una PC en el trabajo,
una PC en el hogar, un teléfono celular, un teléfono IP
o un teléfono POTS..
▫ El usuario debe registrar su ubicación actual.
▫ El servidor proxy reenviará las llamadas a la ubicación
actual del usuario.
▫ Ejemplos de aplicaciones de movilidad incluyen
presencia y “call forking”.
40. Ariel Roel – arielroel@gmail.com - @arielroel
Creación de funcionalidades
Un sistema basado en SIP puede soportar la creación
de servicios y funcionalidades de manera rápida y
simple.
Por ejemplo, funcionalidades y servicios pueden ser
creados usando lenguajes de programación estandar.
41. Ariel Roel – arielroel@gmail.com - @arielroel
Creación de funcionalidades
SIP puede soportar esas funcionalidades y aplicaciones:
▫ Funcionalidades básicas (llamada en espera, forwarding de
llamadas, bloqueo de llamadas, etc.)
▫ Mensajería unificada.
▫ Call forking.
▫ Click to talk.
▫ Presencia.
▫ Instant messaging.
▫ Find me / Follow me.