Post on 11-Jul-2015
https://www.facebook.com/ahroel - @arielroel
Diplomatura en
Telecomunicaciones Multimedia Módulo Core Fijo – Unidad 5
Ariel Roel
Ariel Roel – arielroel@gmail.com - @arielroel
Unidad Temática 5
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
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
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
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
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
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
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
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
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)
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
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
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
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
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.
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
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…
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
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
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
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
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
Ariel Roel – arielroel@gmail.com - @arielroel
Mensajes SIP
ariel@wamay.com.ar luis@up.edu.ar
luis@up.edu.ar
Proxy wamay.com.ar
Proxy up.edu.ar
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
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
Ariel Roel – arielroel@gmail.com - @arielroel
Cabeceras de los mensajes
INVITE sip:luis@up.edu.ar SIP/2.0 Via: SIP/2.0/UDP pc33.esi.us.es;branch=z9hG4bK776asdhds Max-Forwards: 70 To: Javi <sip:luis@up.edu.ar> From: Ariel <sip:ariel.roel@wamay.com.ar>;tag=1928301774 Call-ID: a84b4c76e66710@pc33.wamay.com.ar CSeq: 314159 INVITE Contact: <sip:gonzalo@pc33.wamay.com.ar> Content-Type: application/sdp Content-Length: 142
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.
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.
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.
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.
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
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) Desconexión
Medios
Establecimiento
INVITE
Location/Redirect Server Proxy Server Proxy Server User Agent User Agent
INVITE
Flujo de llamada simplificado
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.
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.
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.
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.
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.
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”.
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.
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.