Baixe o app para aproveitar ainda mais
Prévia do material em texto
© 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. 1 - Introdução ao SIP • Ao final deste capítulo você será capaz de: • Descrever o papel do SIP? • Explicar sua relevância nas telecomunicações • Descrever a sua arquitetura • Identificar seus principais componentes Objetivos SIP, Session Initiation Protocol é um protocolo de controle para estabelecer, modificar e terminar sessões multimídia. RFC 3261 O que é SIP? • Em 2013 88% dos euipamentos de telecomunicação suportavam SIP. Este número hoje é muito próximo de 100%. (Eastern Management Group). • Em 2014 o Mercado de SIP Trunking cresceu 34% e continua crescendo. (Infonetics Research). • Está previsto até 2024 un crescimento de 18.6% anualmente. (Transparency Market Research). • No Brasil as principais operadoras já oferecem entroncamento SIP e SIP-I com custos inferiores aos trunks TDM equivalentes. Porque o SIP é importante? • Localização do Usuário • Local de contato do endpoint • Disponibilidade do cliente • O telefones está pronto para receber a chamada? • Capacidades do usuário • Parâmetros de mídia a serem usados • Configuração da sessão • Sinalização entre início e final da sessão • Gerência da sessão • Modificar, transferir e fechar sessões Características do SIP Onde o SIP é definido? Physical Ethernet/V.35/RS-232/xDSL Datalink Frame-Relay/ATM/PPP/Ethernet Network IP Transport UDP/TCP/TLS/SCTP/RTP/SRTP/RTCP Session SIP Presentation H264/G.729/G711/GSM/T.38 Application OpenSIPS Posição no modelo de referência OSI User Agent Client e User Agent Server INVITE 200 OK UAC UAS The User Agent Client starts the call The User Agent Server answers the call Gateway UAC User agent Client UAS User agent Server B2BUA PBX PSTN or PBX Registrar Proxy or Redirect Server RTP media flow RTP Componentes SIP Neste capítulo você: – Aprendeu a relevância do SIP nas telecomunicacões. – Vislumbrou sua arquitetura e principais componentes – Entendeu como o SIP se posiciona no modelo OSI e sua relacão com outros protocolos Sumário © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Endereços, cabeçalhos e corpo Como identificar endereço cabeçalhos e o corpo da mensagem • Diferenciar um pedido e uma resposta • Listar os principais campos cabeçalho • Identificar o corpo da mensagem e seu tamanho Objetivos Endereços e Aliases SIP • SIP Address – johndoe@sipA.com – +554884567890@sipA.com – 8901@sipA.com • SIP URI – sip:johndoe@sipA.com – sips:johndoe@sipA.com – RURI – Request URI – URI in the first line of the protocol – From URI – Source Address – To URI – Destination Address – Contact URI – Contact Adressess sip:johndoe@sipA.com Requisição SIP INVITE sip:flavio@opensips.org SIP/2.0. Via: SIP/2.0/TCP 192.168.11.1:30849;branch=z9hG4bK-d8754z- 1d44ba47680bb22d-1---d8754z-;rport. Max-Forwards: 70. Contact: <sip:bogdan@192.168.11.1:54716;transport=TCP>. To: “Flavio E. Goncalves"<sip:flavio@opensips.org>. From: “Bogdan Andrei Iancu"<sip:bogdan@opensips.org>;tag=bc210957. Call-ID: OWFkODg3ODc3YTBlNTNlODNhYzUzNzQxMDVkNDU0YWM.. CSeq: 1 INVITE. Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO. Content-Type: application/sdp. User-Agent: X-Lite release 1100l stamp 47546. Resposta de um UAS SIP/2.0 180 Ringing. To: <sip:600002@opensips.org>;tag=de99f08f9f382f9i2. From: "600001" <sip:600001@opensips.org>;tag=36cc267451144cbdabce033e2b49d Call-ID: e384d8d2b8d04695bb8727d0e893beed. Via: SIP/2.0/UDP 192.168.1.192:49359;received=187.65.236.104;rport=49359;branch=z9hG4bKPj7 5320d0095124496a0e0d25eda7e34ce. Record-Route: <sip:208.109.122.193;lr=on;ftag=36cc267451144cbdabce033e2b49d298;did=68d. 812ec701>. Contact: "600002" <sip:600002@192.168.1.175:5062>. Server: Linksys/SPA942-6.1.5(a). Content-Length: 0. CSeq: 18960 INVITE. Cabeçalhos SIP • Não diferencia maiúscula/minúsculas • Forma compacta Header Name Compact form Contact m Content-Length l Content-type c From f To t Via V Others… • O SIP carregar um corpo de mensagem • O cabeçalho Content-Type define o conteúdo do corpo. • Multi-part mime é permitido • O comprimento da mensagem também é definido. • Alguns pedidos SIP não possuem corpo da mensagem como por exemplo REGISTER. Corpo da mensagem SIP (Body) Corpo da mensagem Exemplo 1 © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. Content-Type: application/sdp. Content-Length: 320. . v=0. o=8590 8000 8000 IN IP4 10.8.30.60. s=SIP Call. c=IN IP4 10.8.1.31. t=0 0. m=audio 17694 RTP/AVP 0 8 18 101. a=sendrecv. a=rtpmap:0 PCMU/8000. a=ptime:20. a=rtpmap:8 PCMA/8000. a=rtpmap:18 G729/8000. a=fmtp:18 annexb=no. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. Corpo da Mensagem Exemplo 2 Content-Type: application/dialog-info+xml. Content-Length: 581. <?xml version="1.0"?> <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="15" state="full" entity="sip:8574@pabx.voffice.com.br"> <dialog id="48318422-26733-15@BA.I.DA.GA" call-id="48318422- 26733-15@BA.I.DA.GA"..local-tag="217790996" remote- tag="2141265896" direction="recipient"> <state>early</state> <local> <identity>sip:8574@pabx.voffice.com.br</identity> <target uri="sip:8574@pabx.voffice.com.br"> </target> </local> <remote> <identity>sip:8590@pabx.voffice.com.br</identity> <target uri="sip:8590@10.8.30.60:26733"> </target></remote></dialog></dialog-info> Nesta aula você aprendeu à: – Diferenciar um pedido de uma resposta – Listar os principais campos cabeçalho – Identificar o corpo da mensagem e seu tamanho Sumário © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Fluxo da mensagem SIP Como as mensagens são roteadas entre os componentes • Nesta aula você aprenderá: – Como é o fluxo de uma ligação SIP – Como os modos de operação afetam o fluxo de mensagens através do servidor – Quais os principais métodos e mensagens do SIP Objetivos Device (phone) userA Device (phone) userB INVITE(1) INVITE(3) 100 Trying (2) INVITE(5)100 Trying (4) 180 Ringing (6) 180 Ringing (7) 180 Ringing (8) 200 OK (9) 200 OK (10) 200 OK (10) ACK (11) Media Session RTP(12) BYE (13) 200 OK (14) Fluxo simples de chamada SIP Trapezoid Outgoing proxy (DomainA) Incoming proxy (DomainB) User agentA@DomainA starting the call User agentB@DomainB receiving the call S IP SIP S IP SIP RTP DNS Server Proxy Location e Registrar Server INVITE sip:8500@opensips.org From: sip:2400@opensips.org To: sip:8500@opensips.org Call-ID 2400@opensips.org Contact: 2400@200.180.4.167 INVITE sip:8500@200.180.4.168 From: sip:2400@opensips.org To: sip:8500@opensips.org Call-ID 2400@opensips.org Contact:2400@200.180.4.167 200 OK From: sip:2400@opensips.org To: sip:8500@opensips.org Call-ID 2400@opensips.org 200OK From: sip:2400@opensips.org To: sip:8500@opensips.org Call-ID 2400@opensips.org sip:8500@200.180.4.168sip:2400@opensips.org Media Flow Servidor trabalhando como Sip Proxy Location, Registrar and Redirect Server INVITE sip:8500@opensips.org From: sip:2400@opensips.orgTo: sip:8500@opensips.org Call-ID 2400@opensips.org OK 302 moved temporarily Contact sip:8500@200.180.4.168 Media Flow sip:8500@200.180.4.168 INVITE 8500@200.180.4.168 OK 200 ACK 8500@200.180.4.168 sip:2400@Opensips.org Servidor trabalhando como Redirect Server B2BUA Two Legs 200.180.4.1 INVITE sip:8500@opensips.org From: sip:2400@opensips.org To: sip:8500@opensips.org Contact: 200.180.4.161 Call-ID 2400@sip.com INVITE ip:8500@200.180.4.168 From: sip:2400@opensips.org To: sip:8500@opensips.org Contact: 200.180.4.1 Call-ID 2500@sip.com 200 Ok From: sip:2400@Opensips.org To: sip:8500@200.180.4.168 Call-ID 2500@opensips.org 200 Ok From: sip:2400@opensips.org To: sip:8500@opensips.org Call-ID 2400@opensips.org sip:8500@200.180.4.168sip:2400@opensips.org Media Flow In some cases it traverses the B2BUA Servidor trabalhando como B2BUA SIP basic messages RFC3311Update session state informationUPDATE RFC3265Establish a session to receive future updatesSUBSCRIBE RFC3515Ask another UA to act upon URIREFER RFC3261Register the user an update the location tableREGISTER RFC3903Upload status information to the serverPUBLISH RFC3262Acknowledge a provisional responsePRACK RFC3261Query the capabilities of the UAOPTIONS RFC3265Send information after subscribeNOTIFY RFC3428Instant message transportMESSAGE RFC3261Session establishment INVITE RFC2976Mid-call signaling informationINFO RFC3261Cancel a pending requestCANCEL RFC3261Terminate an existing session BYE RFC3261Acknowledge an INVITEACK RFCDescriptionMethod RFC3311Update session state informationUPDATE RFC3265Establish a session to receive future updatesSUBSCRIBE RFC3515Ask another UA to act upon URIREFER RFC3261Register the user an update the location tableREGISTER RFC3903Upload status information to the serverPUBLISH RFC3262Acknowledge a provisional responsePRACK RFC3261Query the capabilities of the UAOPTIONS RFC3265Send information after subscribeNOTIFY RFC3428Instant message transportMESSAGE RFC3261Session establishment INVITE RFC2976Mid-call signaling informationINFO RFC3261Cancel a pending requestCANCEL RFC3261Terminate an existing session BYE RFC3261Acknowledge an INVITEACK RFCDescriptionMethod Métodos Response Codes 604 Does not exist anywhere 606 Not Acceptable 600 Busy Everywhere 603 Decline 6XXGlobal Errors 503 Service Unavailable 504 Gateway Time-out 505 SIP Version not supported 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 5XXServer Errors 411 Length Required 413 Request Entity Too Large 414 Request-URI Too Large 415 Unsupported Media Type 420 Bad Extension 480 Temporarily not available 481 Call Leg/Transaction Does Not Exist 482 Loop Detected 483 Too Many Hops 484 Address Incomplete 485 Ambiguous 486 Busy Here 400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Timeout 409 Conflict 410 Gone 4XXClient Errors 303 See Other 305 Use Proxy 380 Alternative Service 300 Multiple Choices 301 Moved Permanently 302 Moved Temporarily 3XXRedirect 200 OK 202 Accepted 2XXSuccess 182 Queued 100 Trying 180 Ringing 181 Call Is Being Forwarded 1XXInformational or provisional response ExamplesCodeDescription 604 Does not exist anywhere 606 Not Acceptable 600 Busy Everywhere 603 Decline 6XXGlobal Errors 503 Service Unavailable 504 Gateway Time-out 505 SIP Version not supported 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 5XXServer Errors 411 Length Required 413 Request Entity Too Large 414 Request-URI Too Large 415 Unsupported Media Type 420 Bad Extension 480 Temporarily not available 481 Call Leg/Transaction Does Not Exist 482 Loop Detected 483 Too Many Hops 484 Address Incomplete 485 Ambiguous 486 Busy Here 400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Timeout 409 Conflict 410 Gone 4XXClient Errors 303 See Other 305 Use Proxy 380 Alternative Service 300 Multiple Choices 301 Moved Permanently 302 Moved Temporarily 3XXRedirect 200 OK 202 Accepted 2XXSuccess 182 Queued 100 Trying 180 Ringing 181 Call Is Being Forwarded 1XXInformational or provisional response ExamplesCodeDescription Respostas Sumário • Nesta aula você aprendeu à: – Identificar um fluxo simples de uma chamada –Entender os vários modos de operação do servidor –Descrever os principais métodos SIP e suas respostas. © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Mídia Como a mídia é codificada • Ao final deste capítulo você será capaz de: – Descrever como o audio é codificado – Identificar os Codecs mais usados e suas características – Entender como os frames de voz são montados Objetivos © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. Como a voz é codificada digitalmente Codec (Sampling, Compression/ Decompression, Quantization, Coding) 8000 samples/s Nyquist Theorem 64 Kbps 01010 bits Analog Signal 4000 Hz PCM – Pulse Code Modulation Características de uso de banda Codec G.711 (PSTN) G.729A (WAN) OPUS (INTERNET) G.722 HD Banda (Kbps) 64 8 6 – 510 64 Custo Gratuito 10.00/canal Gratuito Gratuito Resistência a perda Nenhum mecanismo 3% Acima de 7% 3% Complexid ade em Mips 2 Baixa Alta Mais Alta Alta Popularid ade 100% 100% Novo 50% OPUS "Opus quality comparison colorblind compatible" by Jean-Marc Valin - http://opus- codec.org/comparison/ Real-Time Transport Protocol – Provê funções fim-a-fim para entrega de tráfego em tempo real tais como voz e video. – Serviços: • Identificação do tipo de carga – AUDIO/VÍDEO/TEXTO – CODEC • Sequenciamento • Time stamp • Monitoramento da entrega Como os frames de voz são construídos E th e rn e t D e s ti n a ti o n A d d re s s ( 6 ) E th e rn e t S o u rc e A d d re s s ( 6 ) E th e rn e t T y p e ( 2 ) IP H e a d e r (2 0 ) U D P H e a d e r (8 ) R T P H e a d e r (1 2 ) V o ic e P a y lo a d G .7 2 9 c o d e d ( 2 0 ) E th e rn e t C h e c k s u m ( 4 ) Exemplo: Pacote de voz codificado em g.729 com 20 ms de janela. 20 Bytes Payload/58 Bytes de cabeçalhos Usando regra de 3 se 20 bytes são 8 Kbps, 78 Bytes são 31.2 Kbps Uma conversa em g.729 em uma rede Ethernet consome 31.2 Kbps • Nesta apresentação você aprendeu – Como a voz é digitalizada usando Pulse Code Modulation – A escolher o codificador (codec) mais apropriado para o seu uso – Identificar as últimas tendências em CODECs de audio e vídeo – Descrever como os frames de voz são criados e seu impacto na banda passante Resumo © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Real Time Protocol O protocolo de mídia em tempo real – A importância do RTP – Identificar os protocolos de transporte de mídia e suas funções – Identificar os parâmetros de negociação de mídia entre dois user agents SIP Objetivos • Definido pela IETF na RFC3550 • Seus principais propósitos são: – Identificação do tipo de Payload – Sequenciamento de pacotes – Marcação de tempo (timestamping) – Monitoramento da entrega • O RTP não garantea entrega dos pacotes ou sequencia os pacotes, mas permite identificar estes problemas para que sejam tratados por outras camadas. Qual o objetivo do Real Time Protocol Cabeçalho RTP V – version P – Padding X – Extension CC – Contagem de CSRC M – Marker PT - Payload Type RTP Payloads (RFC3551) PT Encoding Name Audio/Vide o (A/V) Clock Rate (Hz) Channels Reference 0 PCMU A 8000 1 [RFC3551] 1 Reserved 2 Reserved 3 GSM A 8000 1 [RFC3551] 4 G723 A 8000 1 [Vineet_Ku mar][RFC3 551] 5 DVI4 A 8000 1 [RFC3551] 6 DVI4 A 16000 1 [RFC3551] 7 LPC A 8000 1 [RFC3551] 8 PCMA A 8000 1 [RFC3551] 9 G722 A 8000 1 [RFC3551] http://www.iana.org/go/rfc3551 http://www.iana.org/go/rfc3551 http://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#Vineet_Kumar http://www.iana.org/go/rfc3551 http://www.iana.org/go/rfc3551 http://www.iana.org/go/rfc3551 http://www.iana.org/go/rfc3551 http://www.iana.org/go/rfc3551 http://www.iana.org/go/rfc3551 Real-Time Transport Control Protocol – Função primária • Retornar informações de feedback na qualidade da distribuição dos dados (jitter e packet loss). – Funções secundárias • Carrega um identificador de nível de transporte para uma fonte RTP chamado CNAME. Permite identificar mudanças dos usuários na conferência. • Permite identificar o número de participantes de uma conferência usando as duas funções anteriores. • Pode opcionalmente enviar informações de controle como o nome dos participantes. – Usa um par de portas separadas do RTP para transporte por UDP. • SR: Relatório do Transmissor (Sender report) para estatísticas de participantes que são emissores ativos • RR: Relatório do Receptor, para estatísticas de participantes que não são transmissores ativos. • SDES: Itens de descrição da fonte incluindo o CNAME. • BYE: Indica o fim da participação • APP: Funções específicas de uma aplicação Tipos de pacotes RTCP © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. • Neste capítulo você aprendeu – Porque o RTP é necessário na comunicação de multimídia. • Identificação do Payload • Sequenciamento • Temporização – Qual o papel do RTCP • Identificação do nome (CNAME) • Feedback de qualidade (Jitter e Packet Loss) • Número de participantes de uma conferência • Controle do número de partipantes Resumo © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Session Description Protocol Protocolo de descrição de Sessão • Protocolo de descrição de sessão descrito na RFC2327 (obsoleta) e substituído pela RFC4566 • O SDP negocia os detalhes do estabelecimento de uma sessão de multimídia como por exemplo uma teleconferência ou uma chamada VoIP • É usado no SIP, H323, MGCP e WebRTC. Session Description Protocol © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. Tipos de Negociação © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. Negociação Normal INVITE with SDP offer 200 OK with SDP answer ACK without SDP Negociação Tardia INVITE without SDP 200 OK with SDP offer ACK with SDP answer Session Description Protocol (Oferta) . v=0. o=Zoiper_user 0 0 IN IP4 192.168.255.1. s=Zoiper_session. c=IN IP4 192.168.255.1. t=0 0. m=audio 8000 RTP/AVP 0 8 101. a=rtpmap:0 PCMU/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=sendrecv. Session Description protocol (Resposta) v=0. o=- 3633074110 3633074111 IN IP4 192.168.255.1. s=Blink 0.5.0 (Windows). c=IN IP4 192.168.255.1. t=0 0. m=audio 50024 RTP/AVP 0 101. c=IN IP4 192.168.1.101. a=rtcp:50025. a=rtpmap:0 PCMU/8000. a=sendrecv. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. • O SDP pode ser dividido em três partes –Session Description –Timing Description –Media Description Session Description Protocol © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. • Session Description • v= (versão do protocolo) • o= (dono/criador e identificador de sessão) • s= (nome da sessão) • i= (informação da sessão)1 • u= (URI of description) 1 • e=(email address – contact detail) 1 • p= (phone number – contact detail) 1 • c= (connection information)1 • b= (session bandwidth information) 1 Session Description © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. • t= (time the session is active) • r= (repeat times)1 SDP - Timing © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. • m= (media name/ transport address) • i= (media title) 1 • c= (connection information) • b= (bandwidth information) 1 • k= (encryption key) 1 • a= (zero or more media attribute lines) Media Description © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. Protocolo de descrição de sessão Content-Type: application/sdp. Content-Length: 139. . v=0. o=user1 53655765 2353687637 IN IP4 68.178.255.101. s=-. c=IN IP4 68.178.255.101. t=0 0. m=audio 6000 RTP/AVP 0. a=rtpmap:0 PCMU/8000. Porta RTP onde conectar o audio Codec Requisitado: ULAW (PCMU/8000) IP onde conectar o audio Originador e identificador de sessão • Neste capítulo você aprendeu: – Como ocorre a negociação de mídia através de oferta e resposta no SDP – A reconhecer os principais atributos do protocolo SDP – Aprendeu a diferença entre negociação normal e negociação tardia. Resumo © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. Qualidade em VoIP • Parâmetros recomendados – Jitter <20ms – Perda de pacotes 0% – Latência <150ms R-Factor and MOS Satisfação do Usuário MOS R-Factor Maximo usando G.711 4.4 93 Muito Satisfeito 4.3-5.0 90-100 Satisfeito 4.0-4.3 80-90 Alguns satisfeitos3.6-4.0 70-80 Muitos insatisfeitos 3.1-3.6 60-70 Quase todos insatisfeitos 2.6-3.1 50-60 Não recomendado 1.0-2.6 Less than 50 Como a qualidade de voz pode ser medida • Captura de pacotes – VoIP Monitor – Wireshark • RTCP feedback – Descrito no BYE • Relatórios de Feedback RTCP-XR – Arquitetura RTCP/XR • Telchemy, Polycom, Audiocodes, Yealink Redução de uso de banda passante • RTP+G.729 = 32Kbps • Compressão cRTP+G.729 = 11Kbps • RTP +G.729 60ms = 16/05Kbps • cRTP só pode ser usado em Frame-Relay, PPP e em alguns casos MPLS (consultar operadora) • Payload de 60ms pode ser usado sempre. Compressão de cabeçalho RTP RTP header compression economiza banda passante comprimindo os cabeçalhos nos links de WAN RTP Headers are almost always 2 Bytes long when compressed. • RTCP Extended Reports • Permitem relatórios com a qualidade incluindo o R-factor de forma a determinar fácilmente o MOS da chamada • Os relatórios podem ser publicados via SIP PUBLISH • Permite uma arquitetura distribuída de controle da qualidade de voz RTCP-XR Qualidade de voz o E-Model simplificado Basic formula for the E-Model R Factor = Ro - Is - Id - Ie + A R Factor: Qualidade Geral Ro: Relação sinal/ruído (Codec) Is: Impactos (Delay, Jitter, Packet Loss) Ie: Efeitos dos equipamentos A: Fator de vantagem (compensa expectative dos usuários ex. Fixo/Celular) Quando usar compressão de cabeçalho RTP • Links de baixa velocidade • < 2 Mbps • Quando é preciso conservar banda passante © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Transações SIP Como lidar com transações SIP • Identificar uma transação SIP e suas características • Entender o roteamento de transações usando o campo VIA • Identificar a função dos principais temporizadores SIP • Entender como são tratadas as retransmissões • Casos especiais de roteamento – CANCEL – Negative ACK Objetivos © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. Tipos de Sip Proxy Stateful (Com estado) O proxy mantém o estado da transação em memória Gerencia os replies correspondendo as transações Absorve retransmissões Roteamento pela transação(Cancel and Negative ACK) Contabilização Persistência de informação durante a transação (AVPs) Stateless (Sem estado) Proxy não mantém a transação em memória Levemente mais rápido Consome menos memória Transações 1. INVITE 2. 100 Trying 3. 180 Ringing 4. 200 OK transaction 5.ACK UAC UAS • ACK é um caso especial • Ele é parte de uma transação ou uma nova transação? • Depende: • Para respostas positivas é uma nova transação. • Toda informação necessária a rotear está pronta (Ele tem To- tag). • Para respostas negativas ele é parte da transação existente. O caso especial (ACK) ACK parte da mesma transação 1. INVITE 2. 100 Trying 3. 403 Forbidden Transaction 4.ACK UAC UAS • Se observarmos o cabeçalho VIA acima, veremos que ele possui todas as informações necessárias ao envio das respostas SIP como: – Protocolo de transporte UDP – Endereço IP – 10.9.30.60 – Porta UDP – 26733 – Identificador da Transação z9hG4bK1331700214 – rport (usado para travessia de NAT) Roteamento de Transações através do VIA header Via: SIP/2.0/UDP 10.8.30.60:26733;branch=z9hG4bK1331700214;rport. • Na medida que atravessamos Proxies, mais cabeçalhos Via são íncluídos. • Os cabeçalhos VIA são usados para rotear as respostas e depois descartados. • As respostas também possuem cabeçalhos VIA. Pilha de cabeçalhos VIA Via: SIP/2.0/UDP 10.8.1.31:5060;branch=z9hG4bK0417.c0dadf93.0. Via: SIP/2.0/UDP 10.8.30.60:26733;branch=z9hG4bK1331700214 • Calling – O cliente iniciou a chamada e criou uma nova transação • Trying – Usado para transações não baseadas no INVITE. • Proceeding – O cliente/servidor recebeu/enviou uma resposta/ provisória. • Completed – O cliente/servidor recebeu/enviou uma resposta definitiva >3XX. • Confirmed – O cliente/servidor enviou/recebeu um ACK. • Completed – Após receber o ACK Estados de uma transação © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. • Stateful Proxy – Guarda o estado da transação – Processo de Transaction Matching é baseado no branch_id – Informações anexadas a transação • Attribute Value Pairs • Request-URI – Permite a ramificação serial e paralela – Permite o tratamento das respostas Transações © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. • Temporizadores mais importantes – T1 (500 ms) – Estimativa de Round Trip Time – T2 (4s) – Máximo de retransmissões na rede (Não INVITE e Respostas) – TimerA – Tempo de retransmissão do INVITE (inicialmente T1) – TimerB – Timeout da transação de INVITE (64*T1 = 32s) – TimerH – Espera pela retransmissão do ACK (64*T1 = 32s) • Temporizadores no Proxy – Timer C – Tempo de timeout da transação no Proxy – FR_TIMER – Tempo máximo de espera se nenhuma resposta provisório, negativa ou positiva for enviada (100 Trying) – FR_INV_TIMER – Depois da primeira resposta, quanto tempo esperar pelo completamento. SIP Timers © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. Retransmissões © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. UAC Proxy (Down) INVITE 0s INVITE 0.5s INVITE 2 s INVITE 4 s INVITE 8 s INVITE 16 s INVITE 1 s Retransmissões © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. UAC Proxy (OK) INVITE 0s 100 Trying Retransmissões Cessadas Informa Timeout ao usuário 32s Comportamento do Proxy © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. UAC Proxy Após 5 s, o timer FR dispara o 408 INVITE 0s 100 Trying Retransmissões Cessadas UAS INVITE 0s INVITE 0.5s FR_TIMER=5 (Fast Response) INVITE 1 s INVITE 2 s 408 Timeout 5s Comportamento do Proxy © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamentonão copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. UAC Proxy Após 60 s, o timer INVITE_TIMER dispara o 408 INVITE 0s 100 Trying Retransmissões Cessadas UAS INVITE 0s 100 Trying 180 Ringing 408 Timeout FR_TIMER=5 (Fast Response) FR_INVITE_TIMER=60s (INVITE Timer) 180 RINGING 60s • Neste capítulo você aprendeu: – Como Identificar uma transação e um diálogo – Como as transações são roteadas com o campo VIA – Processo de transaction matching usando branch_id – Como Identificar a função dos principais temporizadores SIP – Entender como são tratadas as retransmissões Sumário © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Diálogos SIP Como lidar com diálogos SIP • Identificar um diálogo SIP e suas características • Aprender a identificar um diálogo pelo: – Call-ID, – From-tag – To-tag • Entender o roteamento de diálogos c/ Record-Route e Route Objetivos © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. Diálogos • Dialogos persistem pela duração da chamada ou assinatura. • INVITE BYE • SUBSCRIBE NOTIFY • Diálogos são identificados por: • CALL-ID • FROM TAG • TO TAG • Diálogos são uma coleção de transações – Criando um diálogo (INVITE, SUBSCRIBE) – Modificando um diálogo (RE-INVITE) – Terminando um diálogo (BYE) Diálogos SIP 1. INVITE 2. 100 Trying 3. 180 Ringing 4. 200 OK Transação 1 5. re-INVITE 6. 200 OK 7. BYE 8. 200 OK Diálogo UAC UAS Transação 2 Transação 3 Pedidos Iniciais e Sequenciais • Pedidos Iniciais – Podem ser fácilmente identificados pelo To: Tag – Exemplo: Primeiro Invite • Pedidos no diálogo e sequênciais – Mesmo Call-ID, From: Tag e To: Tag – Podem ser fácilmente identificados pela presença do To:Tag – BYE, ACK, RE-INVITES são exemplos de pedidos sequenciais Pedido Inicial (Sem o To tag) U 10.8.1.31:5060 -> 10.8.1.28:5061 INVITE sip:553414899810894@10.8.1.28:5061 SIP/2.0. Record-Route: <sip:10.8.1.31;lr;ftag=797f5725;did=aa3.5a95beb4>. Via: SIP/2.0/UDP 10.8.1.31:5060;branch=z9hG4bKed3.1d20b977.1. Via: SIP/2.0/UDP 10.8.30.38:51317;rport=51317;received=10.8.30.38;branch=z9hG4bK9. Max-Forwards: 69. Contact: <sip:8574@10.8.30.38:51317;transport=UDP;mkp=yes>. To: <sip:99810894@pabx.voffice.com.br;transport=UDP>. From: <sip:8574@pabx.voffice.com.br;transport=UDP>;tag=797f5725. Call-ID: OTgwZTQ0ZDcxNDU3ZjVlZmFiMzU2NTQ0MjdiZTk4Yzc.. CSeq: 2 INVITE. Pedido Sequencial (To: tag) U 10.8.1.31:5060 -> 10.8.1.28:5060 BYE sip:mod_sofia@10.8.1.28:5060 SIP/2.0. Via: SIP/2.0/UDP 10.8.1.31:5060;branch=z9hG4bKa046.76483684.0. From: <sip:554830258589@10.8.1.31>;tag=124644260. To: "2135529800" <sip:2135529800@10.8.1.28>;tag=40v1avHe3jtFK. Call-ID: eb45fc2a-50e3-1234-76b7-0015c5f6b152. CSeq: 87564471 BYE. Contact: <sip:8587@10.8.30.13:5062>. Record-Routing: Gravação de Rota © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. P1 P2 User Agent Server B User Agent Client A INVITE Ct:A INVITE Ct:A RR:P1 INVITE Ct:A RR:P2 RR:P1 Ct:A P2 P1 200 OK Ct:A RR:P2 RR:P1 200 OK Ct:A RR:P2 RR:P1 200 OK Ct:A RR:P2 RR:P1 Ct:B P1 P2 Usando as rotas apreendidas (Loose Routing) © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. P1 P2 User Agent Server B User Agent Client A BYE B Route:P1 Route:P2 BYE B Route:P2 BYE B Ct:A P2 P1 200 OK 200 OK 200 OK Ct:B P1 P2 • Neste capítulo você aprendeu: – Como Identificar uma transação e um diálogo – A descrever um diálogo SIP e suas características – Como funciona roteamento de diálogos c/Record-Route/ Route Sumário © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video e disponibilizando na Internet. Quando um video é pirateado o autor é diretamente prejudicado pelo fim das vendas e o retorno de seu investimento de tempo e preparação na produção é frustrado. • ngrep –d any –pqtW byline port 5060 >sample.sip • -d any (All interfaces) • -p (Promiscuous mode) • -q (Quiet Mode) • --t (Print timestamp) • -W byline (Display line by line) • -O network_capture.pcap NGREP Demo © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Travessia de NAT Como fazer o SIP atravessar um firewall com NAT • Ao final deste capítulo você deve estar apto à – Descrever onde o NAT afeta o SIP – Descobrir o tipo de NAT que você está atrás – Descrever STUN – Desrever TURN – Entender o problema com o ALG Objetivos • Escassez de endereços IP • Questões de segurança • Questões de projeto • A maioria dos usuários estão atrás de algum tipo de NAT Porque o NAT é tão popular? INVITE sip:UserB@there.com SIP/2.0 Via: SIP/2.0/UDP 192.168.99.1:5060 From: BigGuy <sip:UserA@here.com> To: LittleGuy <sip:UserB@there.com> Call-ID: 12345600@here.com CSeq: 1 INVITE Subject: Happy Christmas Contact: BigGuy <sip:UserA@192.168.99.1> Content-Type: application/sdp Content-Length: 147 v=0 o=UserA 28908426 284526 IN IP4 here.com s=Session SDP c=IN IP4 100.101.102.103 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Onde o NAT afeta o SIP VIA header Record-Route Route Contact Header SDP Body • Full Cone • Restricted Cone • Port Restricted Cone • Symmetric Tipos de NAT Você pode descobrir facilmente seu tipo de NAT usando STUN/WINSTUN Tabela de comparação dos NATs É preciso enviar dados primeiro para abrir o FW (Dynamic)? Portas bem definidas para outras conexões? Restringe o retorno apenas ao IP e portas de destino? Full Cone Não Sim Não Restricted Cone Sim Sim Só IP Port Restricted Cone Sim Sim Sim Symmetric Sim Não Sim • Atuais – RFC3581 (Only for VIA headers) – Traversal of UDP over relay NAT - TURN – Simple Traversal of UDP over NAT – STUN – Manual Configuration – Application Layer Gateway – ICE – Interactive Connection Establishment • Pouco usadas – Universal Plug and Play Práticas para atravessar NAT no cliente UACUAC INVITE sip:4830258590@asteriskguide.com1 SIP/2.0 Via: SIP/2.0/UDP 192.168.1.1:5060;;rport INVITE sip:4830258590@asteriskguide.com SIP/2.0 Via: SIP/2.0/UDP 200.247.7.1:5060;branch=a5678432-fe567ea Via: SIP/2.0/UDP 192.168.1.1:5060;received=200.215.1.1;rport=12400 200.247.7.1 192.168.1.1:5060 Nat Device Nat Device 200.215.1.1:12400 External address and port SIP/2.0 200 OK Via: SIP/2.0/UDP 200.247.7.1:5060;branch=a5678432-fe567ea Via: SIP/2.0/UDP 192.168.1.1:5060;received=200.215.1.1;rport=12400;branch=a5678432-fe567ea SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.1.1:5060;received=200.215.1.1;rport=12400 ;branch=a5678432-fe567ea SIP Proxy RFC3581 and force_rport() How STUN works (excerpt adapted from the RFC3489) Test I Response? Test I. Send a binding request without any flag. The server responds in the same IP:port sent. Test II.Send a binindg request with change IP and change port flags. Respond with different IP and port Test III. Send a binindg request with just the change port flag. Response in a different port UDP Blocked No yes Same IP? yes No NAT Detected No NAT Test II Response? No Symmetric Firewall Yes Open InternetTest II Full Cone Response? Yes NoTest I 2nd IP Address Same IP? NoSymmetric NAT yes Test III Response yes Restricted Port restricted No STUN não suporta NAT simétrico SIP Proxy Valid IP with SIP UDP and TCP ports open S y m m e tr ic N A T D e v ic e S y m m e tr ic N A T D e v ic e SI P SIP SIP SIP RTP RTP RTP R TP SDP manipulation Media Proxy Bridges de RTP flows (registered IP address) Traversal of UDP over relay NAT • Application Layer Gateways (ALGs) • É uma aplicação que roda dentro do firewall • Na maioria dos casos causa mais problemas do que ajuda. • Informação em como desabilitar ALG em roteadores • Configuração Manual • No Mercado corporativo onde você tem um administrador de firewall pode fazer sentido redirecionar as portas manualmente. Outras práticas de travessia de NAT • Esta solução é consenso na maioria dos ITSPs 1. Para sinalização use a RFC3581 2. Para media use STUN e COMEDIA quando possível 3. Detecte NAT simétrico e use TURN nestes casos Melhores práticas para travessia de NAT © 2009 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Estes slides fazem para do curso Asterisk Básico www.voffice.com.br/elearning Resumo • Neste capítulo você aprendeu – Onde o SIP afeta o NAT – A identificar o tipo de NAT presente em roteadores e firewalls – A identificar as principais soluções disponíveis © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. STUN/TURN in ACTION • Ao final desta apresentação, você deve estar apto a entender como o TURN funciona. Objetivos SIP Proxy RTP Proxy Management Port (UDP 7890) modem modem U 187.65.239.2:5061 -> 208.109.122.193:5060 INVITE sip:600001@sippulse.com SIP/2.0. From: <sip :600002@sippulse.com>;tag=d57c0f27f9476dfao1. To: "600001" <sip:600001@sippulse.com>. Call-ID: 3757046b-a3355986@192.168.1.148. CSeq: 101 INVITE. Contact: "600002" <sip:600002@192.168.1.148:5061>. Expires: 240. User-Agent: Linksys/SPA942-6.1.5(a). Content-Length: 397. Allow: ACK, BYE, CANCEL, INFO, INVITE, NãoTIFY, OPTIONS, REFER. Supported: replaces. Content-Type: application/sdp. . v=0. o=- 186486 186486 IN IP4 192.168.1.148. s=-. c=IN IP4 192.168.1.148. t=0 0. m=audio 16392 RTP/AVP 18 0 2 4 8 96 97 98 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:2 G726-32/8000. a=rtpmap:4 G723/8000. a=rtpmap:8 PCMA/8000. a=rtpmap:96 G726-40/8000. a=rtpmap:97 G726-24/8000. a=rtpmap:98 G726-16/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv. SIP Proxy RTP Proxy modem modem fix_contact() rtpproxy_offer() U 208.109.122.193:5060 -> 187.65.239.2:54018 INVITE sip:igyjlacn@192.168.1.192:54018 SIP/2.0. From: "600002" <sip:600002@sippulse.com>;tag=d57c0f27f9476dfao1. To: "600001" <sip:600001@sippulse.com>. Call-ID: 3757046b-a3355986@192.168.1.148. CSeq: 102 INVITE. Max-Forwards: 69. Contact: "600002" <sip:600002@187.65.239.2:5061;nat=Sim>. Expires: 240. User-Agent: Linksys/SPA942-6.1.5(a). Content-Length: 417. Allow: ACK, BYE, CANCEL, INFO, INVITE, NãoTIFY, OPTIONS, REFER. Supported: replaces. Content-Type: application/sdp. . v=0. o=- 186486 186486 IN IP4 192.168.1.148. s=-. c=IN IP4 208.109.122.193. t=0 0. m=audio 30320 RTP/AVP 18 0 2 4 8 96 97 98 101. a=rtpmap:18 G729a/8000. a=rtpmap:0 PCMU/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=ptime:20. a=sendrecv. a=Nãortpproxy:Sim. 30320 SIP Proxy RTP Proxy modem modem 30320 U 187.65.239.2:54018 -> 208.109.122.193:5060 SIP/2.0 200 OK. Call-ID: 3757046b-a3355986@192.168.1.148. From: "600002" <sip:600002@sippulse.com>;tag=d57c0f27f9476dfao1. To: "600001" <sip:600001@sippulse.com>;tag=b4e49669e06043fa9ad79a 4a9eb43ea9. CSeq: 102 INVITE. Server: Blink 0.2.7 (Windows). Allow: SUBSCRIBE, NãoTIFY, PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, MESSAGE, REFER. Contact: <sip:igyjlacn@192.168.1.192:54018>. Supported: 100rel, Nãorefersub. Content-Type: application/sdp. Content-Length: 238. . v=0. o=- 3558855040 3558855041 IN IP4 192.168.1.192. s=Blink 0.2.7 (Windows). c=IN IP4 192.168.1.192. t=0 0. m=audio 50000 RTP/AVP 0 101. a=rtcp:50001. a=rtpmap:0 PCMU/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=sendrecv. SIP Proxy RTP Proxy modem modem 30320 onreplay_route fix_contact() rtpproxy_answer() U 208.109.122.193:5060 -> 187.65.239.2:5061 SIP/2.0 200 OK. From: "600002" <sip:600002@sippulse.com>;tag=d57c0f27f9476dfao1. To: "600001" <sip:600001@sippulse.com>;tag=b4e49669e06043fa9ad79a 4a9eb43ea9. CSeq: 102 INVITE. Server: Blink 0.2.7 (Windows). Allow: SUBSCRIBE, NãoTIFY, PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, MESSAGE, REFER. Contact: <sip:igyjlacn@187.65.239.2:54018;nat=Sim>. Supported: 100rel, Nãorefersub. Content-Type: application/sdp. Content-Length: 281. . v=0. o=- 3558855040 3558855041 IN IP4 192.168.1.192. s=Blink 0.2.7 (Windows). c=IN IP4 208.109.122.193. t=0 0. m=audio 30464 RTP/AVP 0 101. a=rtcp:30465 IN IP4 208.109.122.193. a=rtpmap:0 PCMU/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15. a=sendrecv. a=Nãortpproxy:Sim. 30464 Sumario • Neste capítulo você aprendeu como funciona a travessia de NAT por Media Relay. © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Resolvendo Problemas Como resolver problemas em uma rede SIP • Ao final deste capítulo você estará apto à – Usar uma metodologia para resolver problemas na sua rede Objetivos Processo Estruturado Definição e Reprodução do Problema Coleta de Traces e Logs Análise das Informações Coletadas Propor uma hipótese para resolver Implementar e documentar a solução Teste de Hipóteses 80% do tempo gasto 20% do tempo gasto Estratégias de TroubleShooting • Use o modelo OSI • Dividir e conquistar baseado no modelo OSI • Simplificar até que funcione • Mudar os componentes de forma inteligente Usando o Modelo OSI Physical Ethernet/V.35/RS-232/xDSL Datalink Frame-Relay/ATM/PPP/Ethernet Network IP Transport UDP/TCP/TLS/SCTP/RTP/SRTP/RTCP Session SIP Presentation H264/G.729/G711/GSM/T.38 Application OpenSIPS De baixo p/ cima ou De cima p/ baixo Dica, comece do meio Physical Ethernet/V.35/RS-232/xDSL Datalink Frame-Relay/ATM/PPP/Ethernet Network IP Transport UDP/TCP/TLS/SCTP/RTP/SRTP/RTCP Session SIP Presentation H264/G.729/G711/GSM/T.38 Application OpenSIPS Muitas vezes um simples Ping elimina as três Camadas de baixo Simplifique • Qual o modelo mais simples possível - Exemplo: 1. Passe por fora do PABX e conecte o softfone diretamente na operadora e veja o que acontece. 2. Passe por fora do provedor fazendo uma chamada de um telefone para outro. 3. Tente coisas diferentes até conseguir isolaro problema em um componente. • Isole o problema trocando componentes até achar o componente com defeito. Troque componente por componente • Phone, SoftSwitch, SBC, Provider • Troque um de cada vez • Se você não puder isolar o problema, suspeite que você tem mais de um problema • Se nada fizer sentido, valide os seus métodos de teste Regra de ouro para acelerar seus chamados • Chamados com evidência, traces e logs são resolvidos em menos tempo • Se um ticket de suporte é aberto sem evidência alguém vai ter que reproduzir o problema para coletá-lo e isto toma tempo. Resumo • Neste capítulo nós aprendemos – Resolução de problemas não é tentativa e erro – Primeiro passo, reproduzir o problema e coletar evidências – Tente isolar o problema à um único componente – Substitua componente por componente até encontrar uma solução – Documento a solução ao final © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Os 10 maiores problemas de sinalização SIP Resolvendo problemas com erros, chamadas presas e desconectadas • Aprender a identificar e mitigar os 10 erros mais comuns no SIP Objetivos 1. Não consigo me registrar 2. Não consigo ligar 3. Chamadas são desconectadas em 30s 4. Sem audio ou audio de um lado só 5. Chamadas Presas 6. 400 Bad Request 7. 413, 513 Request Entity Too Large, Message Too Large 8. 408 480 and 487 – Diferença entre cancelado, sem atendimento e gateway morto 9. 483 - Too Many Hops 10.488 – Not Acceptable Here Os 10 problemas mais comuns Não consigo me registrar ou chamar Sip Server UAC REGISTER/INVITE Caso 1: Sem conectividade para o servidor - Capture no servidor, verifique se o pacote chega - Verifique no cliente se você consegue pingar o servidor Caso 2: Sem resposta do servidor - Se o REGISTER/INVITE chegar e não for respondido, existem problemas no servidor Sip Server UAC REGISTER/INVITE Caso 3: Credenciais com problema - Se você var várias mensagens 401/407, deve haver um erro no nome ou senha. 401/407 Unauthorized 401/407 Unauthorized Caso 4: Domínio errado na maioria das vezes. Ou na From-URI ou na Request-URI - Se você vir uma mensagem 403, suspeite que o From- domain esteja errado. Alguns provedores requerem o domínio certo no from-domain. Sip Server UAC REGISTER/INVITE 403 Forbidden • Isto normalmente está associado a falta do ACK – Razões • Erros no cabeçalho Contact • Cliente que não suporta route headers • Gateway atrás de NAT • Cabeçalho Contact com endereço atrás de NAT Chamadas sendo desconectadas em 30s INVITE 200OK ACK BYE, usually after 30 seconds 200OK RTP Media Call-ID From-tag To-Tag Call-ID From-tag To-Tag • Causas – BYE não foi enviado – BYE enviado com o to-tag errado – BYE malformado – BYE roteado errado • Consequências – Bilhetagem errada (Chamadas com duração alta, ex. 24h) – Contagem errada de chamadas – Usuário não consegue fazer chamadas porque ultrapassou o limite devido a uma chamada presa. • Soluções – Habilitar RTP Timeout Chamadas Presas Chamada Normal versus Chamada Presa INVITE 200OK ACK BYE 200OK Call Call-ID From-tag To-Tag Call-ID From-tag To-Tag INVITE 200OK ACK BYE 200OK Call Call-ID From-tag To-Tag Call-ID From-tag To-Tag Timeout do RTP Proxy ou do B2BUA Timeout Notification SIP Proxy RTP Proxy SIP RTP B2BUA In Dialog PING OPTIONS SIP 200 OK SIP Proxy SIP Session Timers INVITE Supportes Timer INVITE Supportes Timer INVITE Supported: Timer, SE 1800,refresher=uac ACK ACK INVITE Supportes Timer INVITE Supportes Timer BYE SIP Proxy • Causas – Endereços no SDP não tem conectividade • Ping entre estes endereços • Verifique se o endereço não está atrás de NAT – Firewall bloqueando portas UDP • Ação, abrir o firewall – Application Layer Gateway • Ação, use uma porta diferente no servidor e no cliente Chamadas mudas ou com áudio em uma direção Como verificar uma chamada muda U 2017/05/17 16:55:29.685059 189.90.58.142:9060 -> 177.96.156.146:49936 INVITE sip:8574@177.96.156.146:49936;rinstance=05531863058d1bd3;transport=UDP SIP/2.0. From: "8587" <sip:8587@pabx.voffice.com.br>;tag=876956312. To: <sip:8574@pabx.voffice.com.br>. Call-ID: 2896409464@10.8.30.10. CSeq: 2 INVITE. Contact: <sip:8587@10.8.30.10:5062;mkp=yes>. Content-Type: application/sdp. Content-Length: 367. . v=0. o=- 20185 20185 IN IP4 10.8.30.10. s=SDP data. c=IN IP4 189.90.58.142. t=0 0. m=audio 18652 RTP/AVP 0 8 18 9 101. SIP/2.0 200 OK. Contact: <sip:8574@177.96.156.146:49936;rinstance=05531863058d1bd3;transport=UDP>. To: <sip:8574@pabx.voffice.com.br>;tag=43215c62. From: "8587"<sip:8587@pabx.voffice.com.br>;tag=876956312. Call-ID: 2896409464@10.8.30.10. CSeq: 2 INVITE. Content-Type: application/sdp. Content-Length: 287. . v=0. o=Z 0 3 IN IP4 177.96.156.146. s=Z. c=IN IP4 10.8.1.29. t=0 0. m=audio 8000 RTP/AVP 0 3 110 8 98 101. Com SNGREP você consegue ver rapidamente o problema 400 Bad Request INVITE sip:83253#5544988137928@2.2.2.2 SIP/2.0 Max-Forwards: 68 From: "DB Dialer" <sip:ONLINETDM@1.1.1.1>;tag=as2a102386 To: <sip:4148065544988137928@1.1.1.1:5060> Contact: <sip:ONLINETDM@4.4.4.4:22318;nat=yes;mkp=yes;mkp=yes> Call-ID: 160329c0390319062934b2ab689803ba@1.1.1.1 CSeq: 102 INVITE udp:2.2.2.2:5060 -> 3.3.3.3 SIP/2.0 400 Bad Request From: "DB Dialer" <sip:ONLINETDM@1.1.1.1>;tag=as2a102386 Call-ID: 160329c0390319062934b2ab689803ba@1.1.1.1 CSeq: 102 INVITE To: <sip:4148065544988137928@1.1.1.1:5060>;tag=3736083650-907420 Some headers and bodies ommited for space (VIA, Record-Route, SDP) • UDP é limitado à 1500 bytes • Na captura você provavelmente verá algo faltando no SDP. • Quando isto ocorre? – Mensagens com muitos codecs – Muito cabeçalhos VIA – Muitos cabeçalhos Record-Route • Ações 413, 513 Message Too Large SIP/2.0 513 Message too big Via: SIP/2.0/UDP 1.1.1.1:5060;branch=z951;rport=5060 From: "TEX" <sip:0756000000@1.1.1.1>;tag=as0b9d787a To: <sip:033000000@sip.com>;tag=329cfeaa6a Call-ID: 282538d2028b0fdd394536da70a36@1.1.1.1 CSeq: 103 INVITE Server: OpenSIPS (1.11.0-tls (i386/linux)) Content-Length: 0 • É importante neste caso entender os temporizadores SIP – T1 (500 ms) – Tempo até a primeira retransmissão – Muitos servidores tem um limite de 5s até a primeira resposta provisória (100 Trying) – Se o servidor não responder, 408 será retornado • Invite Timer – O servidor e o telefone te um limite de quanto tempo esperar pelo atendimento • Se o limite do servidor for atingido, será gerado um 408 seguido de CANCEL – A transação de CANCEL termina com 200OK – A transação de INVITE termina com 487 Request Terminated • Se o limite do cliente for atingido, o cliente envia um 480 408, 480 and 487 • Normalmente ocorre quando o servidor está mal configurado • Quando isto ocorre, o servidor envia um pedido ao DNS para determinar o IP final • O IP é resolvido para o próprio servidor e assim ocorre um loop. • Depois do cabeçalho Mac-Forwards chegar à 0, a mensagem 483 é gerada. 483 Too Many Hops • Normalmente associado à negociação dos CODECs – CODEC incompatível • Algumas vezes está associado ao FAX 488 Not Acceptable Here © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Resolvendo Problemas de Audio Como interpretar problemas com a qualidade da chamada • Ao final deste capítulo, você deve estar apto à: – Classificar problemas com Audio – Reconhecer sintomas causados por delay, jitter e packet loss – Reconhecer problemas com eco e suas causas – Reconhecer outras distorções Objetivos 1. Não advinhe !!!! – Quase todos os fornecedores dirão que há um problema com a rede local. Em 9 a cada10 casos isto está errado 2. Reproduza o problema e colete evidência – Captura de pacotes – Gravação de audio Como resolver problemas com qualidade de audio • 8 em cada 10 problemas de qualidade de voz estão relacionados a qualidade da WAN e da Internet, não dá LAN. (Os tubos mais estreitos são mais sujeitos a entupimento!) • Use a ferramenta que Deus lhe dêu, seus ouvidos para ajudar na solução – Packet Loss -> Voz robótica ou sintética e falhas no voz juntas indicam Perda de Pacotes • O Wireshark pode lhê dizer a verdade – Jitter -> Voz distorcida, mas com gaps pouco frequentes • Wireshark pode lhê dizer a verdade – Latency ->~Duas pessoas começando a falar ao mesmo tempo. Latência não leva a gaps ou voz robótica, mas a dificuldade na interação. O básico • Regra #1 – O eco é sempre gerado na ponta oposta de quem o está ouvindo • Regra #2 – Eco é frequentemente causado pela rede pública. Use um cancelador • E1 ou FXO sem cancelamento é loucura • Cancelamento de eco por hardware, por favor • Rule #3 – Desligue o speakerphone e use o handset (fone de mão) para testar Eco • The most useful document in troubleshooting voice quality issues – An excelente document from Cisco TAC – The first version was created more than 15 years ago, I remember to have used this document in 2002. • https://www.cisco.com/c/en/us/support/docs/voice/voice- quality/30141-symptoms.html Recognizing and Categorizing Audio Quality Issues • Não deixe a rede levar a culpa sozinha • Preste atenção ao sintoma e ao som • Grave e capture o tráfego • Use seus ouvidos no processo de troubleshooting • Prepare para o inesperado, muita coisa estranha pode ocorrer com o áudio Resumo © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Resolvendo Problemas de Bilhetagem • Ao final deste capítulo você deve estar apto à: – Resolver os problemas mais comuns de bilhetagem Objetivos Questões de bilhetagem 1 – Diferença no número de CDRs – Problemas na rede – Problemas no servidor 2 – Diferença na duração dos CDRs – Chamadas presas – Diferença de clock – Atraso na desconexão da seção Cerne do Problema • Falta de atenção – Tarifa errada – Parâmetros, taxa de conexão, cadência errados • Falta de sinalização – O BYE não chegou ou chegou mal formado – O 200OK só chegou em uma das pontas Diferença no número de CDRs Se você tinha 1000 chamadas em progresso quando a rede caiu e todas as chamadas completaram no gateway do provedor, você tem 1000 chamadas no provedor e nenhuma no seu CDR pois todas deram 408 Diferenças na temporização 1. Atraso na desconexão da sessão 2. Sincronismo de horário, atrasos e arredondamento 3. Chamadas presas Atraso na desconexão da sessão SDD Questões de sincronismo Início no fornecedor Fim no fornecedor Início no cliente Fim no cliente Duração real Resultado Fornecedor Resultado Cliente 19:01:49.900 19:01:50.100 19:01:50.100 19:01:50.300 200 ms 1 0 19:01:49.100 19:01:50.900 19:01.49.900 19:01:51:700 1800ms 1 2 19:01:49.500 19:01:50.500 19:01:49:700 19:01:50:700 1000 ms 1 1 Resumo • Diferenças no CDR são a regra e não a exceção • Procure mantê-los dentro de uma margem aceitável • Questões de rede e servidores são a causa número 1 • Preste atenção as chamadas presas • Preste atenção à Call Centers classificando seu mailing © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Métodos SIP Principais métodos disponíveis no SIP Objetivos • Ao final deste capítulo, você será capaz de: – Listar os principais métodos do SIP – Descrever os principais fluxos de chamada SIP Métodos principais • INVITE • ACK • BYE • CANCEL • REGISTER • OPTIONS INVITE • É o método usado para iniciar uma sessão. • Não pode ser enviado por um proxy. • Pode iniciar ou alterar um diálogo (Re-INVITE). • Deve ser confirmado por um ACK. INVITE 200 OK ACK BYE • Usado para desconectar uma sessão estabelecida. • Não pode ser enviado a uma requisição pendente. INVITE 200 OK ACK 200 OK BYE CANCEL • Usado para desconectar uma conexão pendente • Pode ser enviado por um User-Agent ou um Proxy • As duas transações devem terminar separadamente, o INVITE e o CANCEL INVITE 180 Ringing CANCEL 487 Request Terminated ACK 200 OK REGISTER • Faz o registro do usuário. O AOR é carregado no campo To: e o IP no campo Contact. • É feita uma negociação da expiração entre UAC e Registrar Server REGISTER 200 OK OPTIONS • Usado para verificar as capacidades de um cliente. • Muito usado como SIP Ping. OPTIONS sip:177.79.73.42:26013 SIP/2.0. Via: SIP/2.0/UDP 189.90.58.142:9060;branch=0. From: sip:keepalive@189.90.58.142;tag=17cf9599. To: sip:177.79.73.42:26013. Call-ID: 290c8de7-304d843d-106@189.90.58.142. CSeq: 1 OPTIONS. Content-Length: 0. SIP/2.0 200 OK. Via: SIP/2.0/UDP 189.90.58.142:9060;branch=0. From: <sip:keepalive@189.90.58.142>;tag=17cf959a. To: <sip:177.140.215.143:5062>;tag=1832662970. Call-ID: 290c8de7-304d843e-10a@189.90.58.142. CSeq: 1 OPTIONS. User-Agent: Yealink SIP-T20P 9.61.0.85. Content-Length: 0. Outros métodos SIP • MESSAGE • INFO • PRACK • UPDATE • REFER • SUBSCRIBE • PUBLISH • NOTIFY MESSAGE • Usado para enviar uma mensagem instantânea. • Definido na RFC3428 MESSAGE sip:user2@domain.com SIP/2.0 Via: SIP/2.0/TCP user1pc.domain.com;branch=z9hG4bK776 Max-Forwards: 70 From: sip:user1@domain.com;tag=49583 To: sip:user2@domain.com Call-ID: asd88asd77a@1.2.3.4 CSeq: 1 MESSAGE Content-Type: text/plain Content-Length: 18 Watson, come here. mailto:asd88asd77a@1.2.3.4 INFO • Usado para enviar informações no meio do diálogo. • Definido na RFC2976 • Pode ser usado para passagem de DTMF e também para informações de saldo INFO sip:flavio@192.168.0.100 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.1:5060 From: <sip:bogdan@opensips.org>;tag=100 To: <sip:flavio@opensips.org>;tag=200 Call-ID: 1234567890@192.168.0.1 CSeq: 1500 INFO Content-Length: 26 Content-Type: application/dtmf-relay Signal= 1 Duration= 160 PRACK • Definido na RFC3262 • Garante o recebimento de uma resposta provisória INVITE Supported:100 Rel 180 Ringing Require: 100 Rel Rseq:1 Cseq:1 PRACK Rseq:1 200 OK PRACK 200 OK INVITE ACK REFER • REFER (RFC3515) is the method used for Call Transfer • Todos os elementos devem suportar • O Refer-to deve estar nas rotas de destino de quem recebe o REFER. INVITE 180/200 OK ACK REFER 202 Accepted NOTIFY(Tentando) 200 OK INVITE 180/200 OK ACK NOTIFY (Successo) 200 OK A B C UPDATE • UPDATE (RFC3311) é usado para mudar uma sessão antes do completamento. • Usado no SIP Session Timers e na troca precoce de CODECs INVITE 1XX UPDATE 200OK (UPDATE) ACK A B 200OK (INVITE) NOTIFY • NOTIFY é usado para avisar de algum evento. • Contém os cabeçalhos – Event – Subscription- State NOTIFY sip:a@atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP agentb.atlanta.example.com;branch=z9hG4bK9922ef992-25 To: <sip:a@atlanta.example.com>;tag=193402342 From: <sip:b@atlanta.example.com>;tag=4992881234 Call-ID: 898234234@agenta.atlanta.example.com CSeq: 1993402 NOTIFY Max-Forwards: 70 Event: refer Subscription-State: active;expires=(depends on Refer-To URI) Contact: sip:b@atlanta.example.com Content-Type: message/sipfrag;version=2.0 Content-Length: 20 SUBSCRIBE • Usado para subscrever a um tipo específico de evento • Contém um campo expires pela duração da subscrição SUBSCRIBE sip:8551@189.34.4.133:5060 SIP/2.0. Via: SIP/2.0/UDP 10.8.1.31:5060;branch=z9hG4bK8f25.a3f686c4.0. From: "Jos.. <8551>" <sip:8551@pabx.voffice.com.br>;tag=3413776523. To: "Jos..<8551>" <sip:8551@pabx.voffice.com.br>. Call-ID: 3769880099@10.8.30.39. CSeq: 2 SUBSCRIBE. Contact: <sip:8551@10.8.30.39:5062>. Accept: application/x-as-feature-event+xml. Max-Forwards: 69. User-Agent: Yealink SIP-T20P 9.73.193.50. Expires: 3630. Event: as-feature-event. Content-Length: 0. PUBLISH • PUBLISH é usado em sistemas presença centralizada. • O UAC ao invés de enviar um NOTIFY para os assinantes, ele faz um PUBLISH para o Presence Server. • O Presence Server envia os NOTIFYs Presence Server SUBSCRIBE 200OK UAC1 UAC2 PUBLISH 200 OK NOTIFY 200 OK SUBSCRIBE NOTIFY 200 OK Sumário • Neste capítulo você aprendeu – Os principais métodos definidos na RFC3261 – Os métodos mais comuns que foram adicionados ao SIP através de outras RFCs. © 2009-2016 Virtual Office Com. E Ind. Ltda. Todos os direitos reservados. Respeite o autor deste treinamento não copiando o conteúdo de video, nem disponibilizando ele na Internet. Mensagens de Erro SIP Conhecendo as mensagens SIP em detalhe Objetivos • Diferenciar os tipos de mensagens do SIP • Entender as diferentes respostas provisórias • Entender o impacto de mensagens 4XX, 5XX e 6XX e saber em que situações devolver que mensagens • Entender o impacto de cada mensagem no processo de failover. Mensagens Provisórias • 100 Trying – Encerra as retransmissões • 180 Ringing – Ring Falso • 181 Call is being forwarded • 182 Call Queued – Servidor colocou em fila • 183 Session Progress – Ring com SDP • O Reason Header pode ter mais detalhes Mensagens de Sucesso • 200 - OK • 202 - Accepted Mensagens de Redirecionamento • 300-Multiple Choices – Resposta com multiplos contatos. • 301-Moved Permanently – Movido de forma permanente. O cliente deveria retenter no endereço de contato. O cliente deve atualizar os address books e qualquer roteamento permanente. • 302 Moved Temporarily – Movido de forma temporária. O cliente deveria retentar no endereço de contato. • 305 Use this proxy – Encaminha para o proxy listado no Contact. • 380 Alternative Service Erro 4XX – Request Failure • 400 Bad Request – Pedido mal formatado • 401 Unauthorized – Pedido necessita de autorização do usuário • 402 Payment Required – Pode ser usado em sistemas pré-pagos • 403 Forbidden – Proibido, o pedido não deve ser repetido • 404 Not Found – Usuário não existe neste domínio • 405 Method Not Allowed – Método não é permitido neste proxy. O cabeçalho Allow contêm uma lista dos métodos permitidos que é salvo no registro. Erro 4XX • 406 Not Acceptable – O recurso identificado pelo pedido só é capaz de gerar respostas não aceitáveis de acordo com o cabeçalho Accept • 407 Proxy Authentication Required – É necessária autorização para o pedido de proxy. • 408 Request Timeout – O servidor não pode produzir uma resposta no tempo determinado. O cliente pode repetir o pedido sem modificações futuramente. • 410 Gone – O recurso solicitado não está mais disponível no servidor. • 413 Request Entity Too Large – O pedido é grande demais e o servidor não pode processar. Típico quando usando UDP com tamanho próximo ou acima de 1500 Bytes. Erro 4XX • 414 Request-URI Too Long – A Request-URI é muito longa • 415 Unsupported Media Type – O servidor está recursando o corpo da mensagem que está em um formato diferente do especificado pelo servidor. O servidor deve retornar uma lista dos métodos aceitáveis usando Accept, Accept-Encoding ou Accepting- language. • 416 Unsupported URI Scheme – O servidor não pode processar o pedido porque o esquema da URI é desconhecido para o servidor • 420 Bad Extension – O servidor não entendeu a extensão do protocolo em um Proxy-Require ou Require Header field. • 421 Extension Required – O UAS precisa de uma extensão do protocolo em particular. Respostas deste tipo devem conter um cabeçalho Require. Erro 4XX • 423 Interval Too Brief – O servidor rejeita o pedido porque o intervalo de expiração é muito curto. • 480 Temporarily Unavailable – Usado quando o cliente coloca em Do Not Disturb e quando o telefone toca, toca e ninguém atende. • 481 Call/Transaction Does Not Exist – Indica que nenhum dialogo ou transação correspondente existe no UAS. • 482 Loop Detected – O servidor detectou um Loop • 483 Too Many Hops - O servidor recebeu um pedido que contém um Max-Forwards com o valor zero. Erro 4XX • 484 Address Incomplete – O servidor recebeu um pedido onde a Request-URI está incompleta. Informação adicional deve ser provida na frase Reason. • 485 Ambiguous – A Request-URI é ambigua. A resposta pode conter possíveis endreços não ambiguos no cabeçalho Contact. • 486 Busy Here – O cliente está ocupado. • 487 Request Terminated – O pedido foi terminado por um CANCEL ou BYE. CANCEL é uma transação separada, então o 487 é referente ao INVITE. • 488 Not Acceptable Here – A reposta não é aceitável. Normalmente CODEC ou falta de SDP. Erro 4XX • 491 Request Pending – O pedido foi recebido pleo UAS que tem um pedido pendente no mesmo diálogo. • 493 Undecipherable – O pedido contém um MIME encriptado e não tem a chave de decriptação. Falhas de servidor 5XX • 500 Internal Server Error. Normalmente falhas em queries ou processos internos do servidor. • 501 Not Implemented. O Servidor não suporta o método do pedido. O erro 405 é quando o servidor reconhece o método, mas não é suportado. • 502 Bad Gateway. O Servidor quando agindo como gateway ou proxy, recebeu uma resposta inválida da outra ponta que está tentando atender ao pedido. • 503 Service Unavailable. O servidor está temporariamente indisponivel por sobrecarga ou manutenção. (Ex. ocorre quando um gateway tem todas as portas em uso). O 503 pode conter um cabeçalho Retry-After para tetentar após um certo período de tempo. Erros 5XX • 504 Server Time-out. O servidor não recebeu uma resposta de um servidor externo que ele tentava acessar para processar o pedido. A resposta 408 deve ser usada se nenhuma resposta for recebida após um período especificado no cabeçalho Expires. • 505 Version Not Supported. O servidor não suporta a versão solicitada no pedido. • 513 Mensagem muito grande. O servidor não consegue processar o pedido com este tamanho. Erros 6XX • Mensagens Globais – Indica que o servidor tem uma resposta definitiva sobre o destino (Não deve fazer failover) • 600 Busy Everywhere – O Servidor não quer responder a esta mensagem neste momento. Pode indicar outra hora no retry-after. • 603 Decline – O Servidor explicitamente não quer ou não pode responder a esta mensagem • 604 Does not exist anywhere – O servidor tem certeza que o destino não existe em lugar nenhum. • 606 Not Acceptable – Não aceitável, e nenhum outro ponto pode aceitar. Sumário • Neste capítulo você aprendeu: – Diferenciar os tipos de mensagens do SIP – Entender as diferentes respostas provisórias – Entender o impacto de mensagens 4XX, 5XX e 6XX e saber em que situações devolver que mensagens – Entender o impacto de cada mensagem no processo de failover.
Compartilhar