Buscar

Introdução ao SIP: Arquitetura e Componentes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 190 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 190 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 190 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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.

Outros materiais

Outros materiais