introduccion al protocolo sip

28
Introducción al protocolo SIP Juan Salvador Escobar CS Core [email protected]

Upload: 325262

Post on 26-Mar-2015

822 views

Category:

Documents


26 download

TRANSCRIPT

Page 1: Introduccion al protocolo SIP

Introducción al protocolo SIP

Juan Salvador Escobar

CS Core

[email protected]

Page 2: Introduccion al protocolo SIP

Protocolo SIP

• SIP es un protocolo basado en requerimientos y respuestas tipo texto similar al protocolo HTTP en su diseño.

• SIP se encarga principalmente de la iniciación y terminación de sesiones incluyendo multiparty, multimedia o transferencia de archivos, adicionalmente también se usa para diferentes propósitos como mensajería instantánea y servicios de valor agregado.

• Los usuarios son identificados usando una estructura tipo email llamada SIP URL, como por ejemplo sip:[email protected]

Page 3: Introduccion al protocolo SIP

Protocolo SIP (cont.)

• Un mensaje SIP es bien una petición desde un cliente hacia un servidor o una respuesta desde un servidor hacia un cliente. Ambos mensajes están compuestos de una línea de inicio (Start Line), uno o mas encabezados (Headers) y un contenido opcional (Message Body).

SIP Message structure

Request/Response Line

Header Field

Empty Line

Message Body (opcional)

Page 4: Introduccion al protocolo SIP

SIP Request

• Las peticiones en SIP tienen una línea de inicio Request que contiene un método, un Request-URI y una versión de protocolo.

Page 5: Introduccion al protocolo SIP

SIP Request (cont)

Mensaje Función

INVITE Inicia un nuevo dialogo o sesión

ACK Respuesta a un mensaje INVITE

BYE Fin de sesión

CANCEL Cancela una petición no terminada

REGISTER Registrarse

OPTIONS Preguntar sobre los atributos del servidor

INFO Opciones interactivos para una llamada

MESSAGE Short Message

SUBSCRIBE Suscribirse a un evento

NOTIFY Envío de un evento

Page 6: Introduccion al protocolo SIP

SIP Request (cont.)

• INVITEINVITE sip:[email protected] SIP/2.0

Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

Max-Forwards: 70 To: Bob <sip:[email protected]>

From: Alice <sip:[email protected]>;tag=1928301774

Call-ID: a84b4c76e66710 CSeq: 314159

INVITE Contact: sip:[email protected]

Content-Type: application/sdp

Content-Length: 142

• REGISTERREGISTER sip:registrar.biloxi.com SIP/2.0

Via: SIP/2.0/UDP bobspc.biloxi.com:5060;branch=z9hG4bKnashds7

Max-Forwards: 70

To: Bob sip:[email protected]

From: Bob <sip:[email protected]>;tag=456248

Call-ID: 843817637684230@998sdasdh09

CSeq: 1826 REGISTER

Contact: sip:[email protected]

Expires: 7200 Content-Length: 0

Page 7: Introduccion al protocolo SIP

SIP Response

• Las respuestas SIP se diferencian de las peticiones por que tienen un Status-Line como línea de inicio. El Status-Line consiste de una versión de protocolo seguida por un Status-Code numérico y su respectiva frase de explicación Reason.

Page 8: Introduccion al protocolo SIP

SIP Response (cont.)

• El primer digito de los mensajes define el tipo de respuesta, los dos dígitos siguientes no tienen labor de categorización especifica, únicamente complementan el tipo de respuesta.

Status Codes

1xx Respuesta provisional

2xx Respuesta Exitosa

3xx Redirección

4xx Error del cliente

5xx Error del Servidor

6xx Falla Global

Page 9: Introduccion al protocolo SIP

SIP Response (cont.)

1xx Respuesta Temporal

100 Trying

180 Ringing

2xx Respuesta Exitosa

200 OK

202 Accepted

3xx Redireccion

301 Moved Permanently

302 Moved Temporarily

4xx Error del Cliente

480 Temporarily Unavailable

486 Busy Here

5xx Error del Servidor

500 Server Internal Error

503 Server Unavailable

6xx Falla Global

600 Busy Everywhere

606 Not Acceptable

Page 10: Introduccion al protocolo SIP

SIP Response (cont)

• 100 TryingSIP/2.0 100 Trying

Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

To: Bob sip:[email protected]

From: Alice <sip:[email protected]>;tag=1928301774

Call-ID: a84b4c76e66710

CSeq: 314159 INVITE Content-Length: 0

• 180 RingingSIP/2.0 180 Ringing

Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8

To: Bob <sip:[email protected]>;tag=a6c85cf

From: Alice <sip:[email protected]>;tag=1928301774

Call-ID: a84b4c76e66710

Contact: sip:[email protected]

CSeq: 314159 INVITE Content-Length: 0

Page 11: Introduccion al protocolo SIP

Flujo de llamada

• En este ejemplo se muestra un flujo de llamada resumido incluyendo únicamente los mensajes básicos.

Page 12: Introduccion al protocolo SIP

Transacciones

• En general, una transacción incluye todos los mensajes asociados con una petición (SIP Request) y su fin con un mensaje 2xx. Cuando el mensaje ACK se refiere a una respuesta 2xx se considera como una transacción independiente.

Page 13: Introduccion al protocolo SIP

Dialogo SIP

• Múltiples transacciones relacionan un dialogo. Un Dialogo implica una relación punto a punto entre dos usuarios. De acuerdo con los estándares, un dialogo únicamente puede ser establecido usando una petición INVITE.

Page 14: Introduccion al protocolo SIP

SIP-T y SIP-I

• Debido a ciertas limitantes de interoperabilidad que presenta SIP al interactuar con la PSTN se desarrollan los protocolos SIP-T y SIP-I para proveer parámetros específicos de ISUP.

SIP-T SIP-I

• Definido por la RFC3372 de la IETF.• Es una extensión de SIP, por lo que contiene la misma flexibilidad.• Proporciona compatibilidad con telefonía tradicional lo que le hace adecuado para redes IP.• Permite a los mensajes SIP llevar información de señalización ISUP.• Solo se concentra en la interoperabilidad de llamadas básicas y no incluye servicios suplementarios.

• Definido por TRQ.2815 y Q.1912.5 de la ITU.• Contiene requerimientos técnicos de interoperabilidad entre 3GPPSIP y BICC/ISUP, SIP y BICC/ISUP y SIP-I y BICC/ISUP en detalle.• SIP-I hace uso de numerosos estándares y drafts del IETF que contienen no solo llamadas básicas sino también la interoperabilidad de los servicios suplementarios de BICC/SIP.

Page 15: Introduccion al protocolo SIP

Relación entre SIP y ISUP

Mensaje ISUP Mensaje SIP

Initial address message (IAM)Subsecuent address message (SAM)Address complete message (ACM)Answer message (ANM)Connect message (CON)Call progress message(CPG) Release message (REL)Release complete message (RLC)Reset circuit (RSC) Circuit group reset message(GRS)Circuit group blocking message(CGB)Suspend message (SUS)Resume message (RES)

INVITEINVITE180 RINGING / 183 PROGRESS200 OK200 OK183 CALL PROGRESSBYE/CANCELN/A BYE/CANCEL (only for a call)BYE/CANCEL (only for a call)BYE/CANCEL (only for a call)Re-Invite or INFORe-Invite or INFO

• De acuerdo a los estándares mencionados anteriormente existe un mapeo de mensajes y parámetros entre SIP y ISUP.

Page 16: Introduccion al protocolo SIP

Relación entre SIP y ISUP (cont)

Causa ISUP Causa SIP

1 unallocated number 2 no route to network 3 no route to destination 16 normal call clearing 17 user busy 18 no user responding 19 no answer from the user 20 subscriber absent 21 call rejected 22 number changed (w/o diagnostic)22 number changed (w/ diagnostic) 23 redirection to new destination 26 non-selected user clearing 27 destination out of order 28 address incomplete 29 facility rejected 31 normal unspecified

404 Not Found404 Not found404 Not foundBYE486 Busy here408 Request Timeout480 Temporarily unavailable480 Temporarily unavailable403 Forbidden410 Gone301 Moved Permanently410 Gone404 Not Found502 Bad Gateway484 Address incomplete501 Not implemented480 Temporarily unavailable

Page 17: Introduccion al protocolo SIP

Relación entre SIP y ISUP (cont)

Mensaje recibido SIP Causa en el mensaje REL

400 Bad Request 401 Unauthorized 402 Payment required 403 Forbidden 404 Not found 405 Method not allowed 406 Not acceptable 407 Proxy authentication required408 Request timeout 410 Gone 413 Request Entity too long 414 Request-URI too long 415 Unsupported media type 416 Unsupported URI Scheme 420 Bad extension 421 Extension Required 423 Interval Too Brief

41 Temporary Failure 21 Call rejected 21 Call rejected 21 Call rejected 1 Unallocated number 63 Service or option unavailable 79 Service/option not implemented 21 Call rejected102 Recovery on timer expiry 22 Number changed (w/o diagnostic) 127 Interworking127 Interworking 79 Service/option not implemented127 Interworking127 Interworking127 Interworking127 Interworking

Page 18: Introduccion al protocolo SIP

Call Flow MSS

Page 19: Introduccion al protocolo SIP

Call Flow MSS

• INVITE sip :10.211.12.96:5072 SIP/2 .0Content-Length:760Via:SIP/2.0/UDP public.apollon.tas.com:5060;branch=z9hG4bK13Cg4CBA.eVZ3Xhb From:<sip:[email protected]>;tag=3Va08dZg15fd1e7U To:<sip:[email protected]>Call-ID: 681EE514642E6F6729E00549CSeq:1 INVITEContact:<sip:[email protected]:5060;user=phone> Require:preconditionSupported: 100rel,precondition, timerAllow:ACK,BYE, CANCEL, INVITE,MESSAGE,OPTIONS,PRACK,REGISTER,UPDATE Max-Forwards : 68Min-SE: 90Session-Expires:2000,refresher=uac Record-Route:<sip:[email protected]:5060;lr> Privacy: noneP-Asserted-Identity:tel:+491774190000,sip:[email protected] Content-Type: application/sdpv=0o=- 0 1 IN IP4 10.211.7.158s=MSS callc=IN IP4 17.10.9.10 t=0 0m=audio 2500 RTP/AVP 8 96 97 98 99 100 101 102b=AS:64a=rtpmap:8 PCMA/8000 a=rtpmap:96 AMR/8000 a=fmtp:96 mode-set=0,2,3,6; mode-change-period=1a=rtpmap:97 AMR/8000a=fmtp:97 mode-set=0,3,6; mode-change-period=1a=rtpmap:98 AMR/8000a=fmtp:98 mode-set=3,6; mode-change-period=1a=rtpmap:99 AMR/8000a=fmtp:99 mode-set=3; mode-change-period=1a=rtpmap:100 AMR/8000a=fmtp:100 mode-set=0,2,3,6; mode-change-period=2a=rtpmap:101 AMR/8000a=fmtp:101 mode-set=0,3,6; mode-change-period=2a=rtpmap:102 AMR/8000a=fmtp:102 mode-set=3,6; mode-change-period=2a=curr:qos local none a=curr:qos remote none a=des:qos mandatory local sendrecva=des:qos none remote sendrecv

Page 20: Introduccion al protocolo SIP

Call Flow MSS

• SIP/2.0 100 TryingContent-Length:0Via:SIP/2.0/UDP public.apollon.tas.com:5060;branch=z9hG4bK13Cg4CBA.eVZ3Xhb From:<sip:[email protected]>;tag=3Va08dZg15fd1e7U To:<sip:[email protected]>Call-ID: 681EE514642E6F6729E00549 CSeq:1 INVITE

• SIP/2.0 183 Session ProgressVia:SIP/2 . 0/UDP public.apollon.tas .com:5060;branch=z9hG4bK13Cg4CBA.eVZ3XhbFrom: <sip:User. [email protected]>;tag=3Va08dZg15fd1e7UTo: <sip:User. [email protected] .com>;tag=14383101f9Require: 100rel, precondition RSeq: 1Record-Route:<sip:[email protected]:5060;lr>Call-ID: 681EE514642E6F6729E00549 CSeq:1 INVITEContact: sip:10.211.12. 96:5072 Content-Type: application/sdp Content-Length: 280v=0o=- 111111 112222 IN IP4 172.24.175.10s=c=IN IP4 172.24.175.10 t=0 0m=audio 3456 RTP/AVP 8 a=rtpmap: 8 PCMA/8000 a=curr:qos local sendrecv a=curr:qos remote nonea=des:qos mandatory local sendrecva=des:qos mandatory remote sendrecva=conf:qos remote sendrecv

• PRACK sip:10.211.12 .96:5072 SIP/2.0Content-Length:0Via:SIP/2 . 0/UDP public.apollon.tas .com:5060;branch=z9hG4bKhCbaVe46UBc385aZ From:<sip:[email protected]>;tag=3Va08dZg15fd1e7U To:<sip:[email protected]>;tag=14383101f9Call-ID: 681EE514642E6F6729E00549CSeq:2 PRACKRAck:1 1 INVITEMax-Forwards :70

Page 21: Introduccion al protocolo SIP

Call Flow MSS

• SIP/2.0 200 OKVia:SIP/2 . 0/UDP public.apollon.tas .com:5060;branch=z9hG4bKhCbaVe46UBc385aZ From: <sip:User. [email protected]>;tag=3Va08dZg15fd1e7UTo: <sip:User. [email protected] .com>;tag=14383101f9Call-ID: 681EE514642E6F6729E00549CSeq:2 PRACKContent-Length: 0

• UPDATE sip :10.211.12. 96:5072 SIP/2 .0 Content-Length :257Via:SIP/2.0/UDP public.apollon.tas.com:5060;branch=z9hG4bK2hUUhBUUiUUd3fD1 From:<sip:[email protected]>;tag=3Va08dZg15fd1e7U To:<sip:[email protected]>;tag=14383101f9Call-ID: 681EE514642E6F6729E00549CSeq:3 UPDATEContact:<sip:10.211.7. 112 :5060>Allow:ACK,BYE, CANCEL, INVITE,MESSAGE,OPTIONS,PRACK,REGISTER,UPDATE Max-Forwards :70Record-Route:<sip:[email protected]:5060;lr> Reason: X.int ;cause=0x000007FFContent-Type: application/sdpv=0o=- 0 2 IN IP4 10.211.7.158s=MSS callc=IN IP4 17.10.9.10t=0 0m=audio 2500 RTP/AVP 8b=AS:64a=rtpmap:8 PCMA/8000a=curr:qos local sendrecva=curr:qos remote sendrecva=des:qos mandatory local sendrecv a=des:qos mandatory remote sendrecv

Page 22: Introduccion al protocolo SIP

Call Flow MSS

• SIP/2.0 200 OKVia:SIP/2.0/UDP public.apollon.tas.com:5060;branch=z9hG4bK2hUUhBUUiUUd3fD1 From: <sip:User. [email protected] .com>;tag=3Va08dZg15fd1e7UTo: <sip:User. [email protected] .com>;tag=14383101f9Call-ID: 681EE514642E6F6729E00549CSeq:3 UPDATEContent-Type: application/sdpContent-Length: 256v=0o=- 222222 112224 IN IP4 172.24.175.10s=c=IN IP4 172.24.175.10 t=0 0m=audio 3456 RTP/AVP 8 a=rtpmap: 8 PCMA/8000 a=curr:qos local sendrecv a=curr:qos remote sendrecva=des:qos mandatory local sendrecva=des:qos mandatory remote sendrecv

• SIP/2.0 180 RingingVia: SIP/2.0/UDP public.apollon.tas.com:5060;branch=z9hG4bK13Cg4CBA.eVZ3Xhb From: <sip:User. [email protected] .com>;tag=3Va08dZg15fd1e7UTo: <sip:User. [email protected] .com>;tag=14383101f9 Record-Route:<sip:[email protected]:5060;lr> Call-ID: 681EE514642E6F6729E00549CSeq: 1 INVITEContact: <sip:10.211.12 .96:5072> Require: 100rel, precondition RSeq: 2Content-Length: 0

• PRACK sip:10.211.12 .96:5072 SIP/2.0Content-Length:0Via:SIP/2.0/UDP public.apollon.tas.com:5060;branch=z9hG4bKdWdecbgYh19.cCc. From:<sip:[email protected]>;tag=3Va08dZg15fd1e7U To:<sip:[email protected]>;tag=14383101f9Call-ID: 681EE514642E6F6729E00549CSeq:4 PRACKRAck:2 1 INVITEMax-Forwards :70

Page 23: Introduccion al protocolo SIP

Call Flow MSS

• SIP/2.0 200 OKVia:SIP/2 . 0/UDP public.apollon.tas .com:5060;branch=z9hG4bKhCbaVe46UBc385aZ From: <sip:User. [email protected]>;tag=3Va08dZg15fd1e7UTo: <sip:User. [email protected] .com>;tag=14383101f9Call-ID: 681EE514642E6F6729E00549CSeq:2 PRACKContent-Length: 0

F6UPDATE sip :10.211.12. 96:5072 SIP/2 .0 Content-Length :257Via:SIP/2.0/UDP public.apollon.tas.com:5060;branch=z9hG4bK2hUUhBUUiUUd3fD1 From:<sip:[email protected]>;tag=3Va08dZg15fd1e7U To:<sip:[email protected]>;tag=14383101f9Call-ID: 681EE514642E6F6729E00549CSeq:3 UPDATEContact:<sip:10.211.7. 112 :5060>Allow:ACK,BYE, CANCEL, INVITE,MESSAGE,OPTIONS,PRACK,REGISTER,UPDATE Max-Forwards :70Record-Route:<sip:[email protected]:5060;lr> Reason: X.int ;cause=0x000007FFContent-Type: application/sdpv=0o=- 0 2 IN IP4 10.211.7.158s=MSS callc=IN IP4 17.10.9.10t=0 0m=audio 2500 RTP/AVP 8b=AS:64a=rtpmap:8 PCMA/8000a=curr:qos local sendrecva=curr:qos remote sendrecva=des:qos mandatory local sendrecv a=des:qos mandatory remote sendrecv

Page 24: Introduccion al protocolo SIP

Call Flow MSS

• SIP/2.0 200 OKVia:SIP/2.0/UDP public.apollon.tas.com:5060;branch=z9hG4bK2hUUhBUUiUUd3fD1 From: <sip:User. [email protected] .com>;tag=3Va08dZg15fd1e7UTo: <sip:User. [email protected] .com>;tag=14383101f9Call-ID: 681EE514642E6F6729E00549CSeq:3 UPDATEContent-Type: application/sdpContent-Length: 256v=0o=- 222222 112224 IN IP4 172.24.175.10s=c=IN IP4 172.24.175.10 t=0 0m=audio 3456 RTP/AVP 8 a=rtpmap: 8 PCMA/8000 a=curr:qos local sendrecv a=curr:qos remote sendrecva=des:qos mandatory local sendrecva=des:qos mandatory remote sendrecv

• SIP/2.0 180 RingingVia: SIP/2.0/UDP public.apollon.tas.com:5060;branch=z9hG4bK13Cg4CBA.eVZ3Xhb From: <sip:User. [email protected] .com>;tag=3Va08dZg15fd1e7UTo: <sip:User. [email protected] .com>;tag=14383101f9 Record-Route:<sip:[email protected]:5060;lr> Call-ID: 681EE514642E6F6729E00549CSeq: 1 INVITEContact: <sip:10.211.12 .96:5072> Require: 100rel, precondition RSeq: 2Content-L

• PRACK sip:10.211.12 .96:5072 SIP/2.0Content-Length:0Via:SIP/2.0/UDP public.apollon.tas.com:5060;branch=z9hG4bKdWdecbgYh19.cCc. From:<sip:[email protected]>;tag=3Va08dZg15fd1e7U To:<sip:[email protected]>;tag=14383101f9Call-ID: 681EE514642E6F6729E00549CSeq:4 PRACKRAck:2 1 INVITEMax-Forwards :70 ength: 0

Page 25: Introduccion al protocolo SIP

Call Flow MSS

• SIP/2.0 200 OKVia:SIP/2.0/UDP public.apollon.tas.com:5060;branch=z9hG4bKdWdecbgYh19.cCc. From: <sip:User. [email protected]>;tag=3Va08dZg15fd1e7UTo: <sip:User. [email protected] .com>;tag=14383101f9Call-ID: 681EE514642E6F6729E00549CSeq:4 PRACKContent-Length: 0

• SIP/2.0 200 OKVia: SIP/2.0/UDP public.apollon.tas.com:5060;branch=z9hG4bK13Cg4CBA.eVZ3XhbFrom: <sip:User. [email protected]>;tag=3Va08dZg15fd1e7UTo: <sip:User. [email protected] .com>;tag=14383101f9Call-ID: 681EE514642E6F6729E00549 CSeq: 1 INVITEContact: <sip:10.211.12 .96:5072>Record-Route:< sip:[email protected]:5060;lr>Content-Length: 0

• ACK sip:10.211.12.96:5072 SIP/2.0Content-Length:0Via:SIP/2 . 0/UDP public.apollon.tas .com:5060;branch=z9hG4bKfB0Z27dZ9a1CVWUj From:<sip:[email protected]>;tag=3Va08dZg15fd1e7U To:<sip:[email protected]>;tag=14383101f9Call-ID: 681EE514642E6F6729E00549CSeq:1 ACKMax-Forwards :70

Page 26: Introduccion al protocolo SIP

Ejemplo de un mensaje SIP-I

Page 27: Introduccion al protocolo SIP

Ejemplo de un mensaje SIP-I

Page 28: Introduccion al protocolo SIP

Ejemplo de un mensaje SIP-I