41
https://www.facebook.com/ahroel - @arielroel Diplomatura en Telecomunicaciones Multimedia Módulo Core Fijo – Unidad 5 Ariel Roel

Core Fijo - Diplomatura en Telecomunicaciones Multimedia - Unidad 4.3

Embed Size (px)

Citation preview

https://www.facebook.com/ahroel - @arielroel

Diplomatura en

Telecomunicaciones Multimedia Módulo Core Fijo – Unidad 5

Ariel Roel

Ariel Roel – [email protected] - @arielroel

Unidad Temática 5

Ariel Roel – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @arielroel

Redirect

Server

Arquitectura de SIP

Location

Server

Registrar

Server

User Agent

Proxy

Server

Gateway

PSTN

Componentes SIP

Proxy

Server

Ariel Roel – [email protected] - @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 – [email protected] - @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 – [email protected] - @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:[email protected]

sip:A.H. Roel <[email protected]>

sip:[email protected];user=phone

sip:[email protected]

sip:[email protected];phone-context=VNET

Ariel Roel – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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:[email protected] SIP/2.0

Ariel Roel – [email protected] - @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 – [email protected] - @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 – [email protected] - @arielroel

Mensajes SIP

[email protected] [email protected]

[email protected]

Proxy wamay.com.ar

Proxy up.edu.ar

Ariel Roel – [email protected] - @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 – [email protected] - @arielroel

Cabeceras de los mensajes

▫ To y From: direcciones de origen y destino

Sip:[email protected]

▫ 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 – [email protected] - @arielroel

Cabeceras de los mensajes

INVITE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP pc33.esi.us.es;branch=z9hG4bK776asdhds Max-Forwards: 70 To: Javi <sip:[email protected]> From: Ariel <sip:[email protected]>;tag=1928301774 Call-ID: [email protected] CSeq: 314159 INVITE Contact: <sip:[email protected]> Content-Type: application/sdp Content-Length: 142

Ariel Roel – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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 – [email protected] - @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.