VoIP SIP DGT

Transcrição

VoIP SIP DGT
Protocolo de Sinalização SIP
Protocolo de Sinalização SIP
Protocolos de Sinalização
Protocolos com processamento distribuído e
clientes/terminais inteligentes
SIP - Session Initiation Protocol, desenvolvido pelo IETF para
comunicação multimídia pela Internet
H.323 - Recomendação da ITU-T para comunicação multimídia
em redes de pacotes
Protocolo de Sinalização SIP
Protocolos de Sinalização SIP
Desenvolvido pelo grupo de trabalho MMUSIC da IETF
RFC 2543, Fev. 1999 (início deste trabalho em 1995)
RFC 3261 - SIP (junho 2002)
Funções básicas
Convite de usuários para participar de sessões multimídia
Encontrar a localização atual do usuário para entregar o convite
Transporte de descrições de sessão
Modificações “on-the-fly” de sessões
Terminação de sessões
Protocolo de Sinalização SIP
Características SIP
Características principais como protocolo:
Mobilidade pessoal
Operação em rede de wide-area (DNS)
Utilizado para transporte de voz, vídeo
Trabalha em conjunto com outros protocolos da Internet
(HTTP/ RTSP/ SNMP/ SMTP)
Usa UDP para transportar a sinalização
Protocolo de Sinalização SIP
Base do Protocolo SIP
SIP é um Protocolo cliente/ servidor
Clientes enviam requisições e recebem respostas
Servidores recebem requisições e enviam respostas
Projetado de maneira parecida ao protocolo HTTP
Cada requisição invoca um método no servidor
As mensagens contém um corpo de mensagem
Requisição
Cliente
Servidor
Resposta
Protocolo de Sinalização SIP
Independência de Sessão (I)
O corpo da mensagem SIP é usado para descrever a sessão
que é quem possibilita o estabelecimento de chamadas
As sessões podem ser
Áudio
Vídeo
outros
A operação do protocolo SIP é independente do tipo de
sessão
Protocolo de Sinalização SIP
Elementos da Arquitetura (clientes)
User Agent Client (UAC)
São os terminais finais da comunicação
Enviam requisições SIP
User Agent Server (UAS)
Escutam as requisições de chamada
Acessam o usuário ou executam programas para determinar a
resposta
User Agent
Composição de UAC + UAS
Exemplos: Telefones IP e gateways
Protocolo de Sinalização SIP
Elementos da Arquitetura (servidores)
Servidor de Registro
Recebe registros sobre a localização atual do usuário, são
acionados pelos servidores de redirecionamento e proxy
quando se quer procurar um usuário na rede SIP
Servidor de Redirecionamento
Eles redirecionam os usuários para tentar outros servidores
Servidor Proxy
Eles enviam as requisições como proxy para outros servidores.
Podem fazer requisições “FORK” para múltiplos servidores e
criar uma árvore de busca
Protocolo de Sinalização SIP
Servidores SIP
Principal funcionalidade é prover o encaminhamento da
sinalização
• O protocolo SIP não dita como deve ser feito o
encaminhamento para os endereços SIP armazenados no
servidor Registrar, opcionalmente Serviços de Diretórios com
Localização de Usuários podem ser utilizados para completar
esta tarefa.
Protocolo de Sinalização SIP
Servidores SIP
O resultado final da localização de endereços é um
mapeamento de um SIP URI para outro
Ex: sip:[email protected] para
sip:[email protected]
Servidor de
Localização
Servidor
PROXY
Protocolo de Sinalização SIP
Servidores Proxies (I)
As requisições podem percorrer múltiplos servidores proxies
vindo de quem chama para o usuário chamado (multi-hop)
Cada proxy:
Recebe as requisições
Checa se o domínio na URI da requisição é o seu próprio, caso
contrário repassa para o servidor SIP do domínio (DNS)
correspondente
Protocolo de Sinalização SIP
Servidores Proxies (II)
Se o domínio da URI da requisição coincidir:
Invocar o serviço de localização
Obter informações de registro de usuário
Verificar a parte HOST do endereço SIP no DNS
Redirecionar para o próximo HOP
Receber as respostas
Redirecionar as respostas
Protocolo de Sinalização SIP
Servidores Proxies (IV)
Servidor
DNS
sip: [email protected]
200 OK
Servidor
PROXY
Servidor de
Localização
sip: [email protected]
200 OK
Servidor
PROXY
200 OK
sip: [email protected]
Cliente
SIP
Protocolo de Sinalização SIP
Saindo das Fronteiras do Proxy
É possível enviar uma requisição para um proxy vizinho sem
realizar um procedimento de verificação no DNS
Isto pode acontecer caso o proxy receba uma requisição
cujo domínio não é o seu próprio e caso ele tenha uma
tabela própria para redirecionamento
Também é possível realizar a pesquisa a servidores DNS
para redirecionar a chamada para fora da rede
Protocolo de Sinalização SIP
Métodos SIP (I)
INVITE
Convida um participante para uma sessão
É possível realizar reINVITEs para modificações na sessão
BYE
Finaliza a participação de um cliente em uma sessão
CANCEL
Cancela uma pesquisa de usuário ou tentativa de
estabelecimento de chamada não concluída
Protocolo de Sinalização SIP
Métodos SIP (II)
OPTIONS
Pesquisa de um participante sobre suas capacidades de mídia,
sem precisar realizar um convite
ACK
Para prover confiabilidade e aceitação de chamada
REGISTER
Forma de cadastrar informações em um servidor SIP sobre a
localização de um usuário usando mobilidade
Protocolo de Sinalização SIP
Sintaxe da Mensagem SIP
Formato ASCII
UTF-8
Múltiplos campos de cabeçalho foram
herdados do protocolo http
O payload (ou carga do pacote)
normalmente contém a descrição da
mídia da sessão
O protocolo para esta descrição de
sessão é o SDP (RFC 2327)
Protocolo de Sinalização SIP
Exemplos de Cabeçalhos SIP
Request - URI
Contém o endereço do próximo hop
É reescrito pelos proxies baseado no resultado do serviço de
localização
To
Endereço da parte chamada originalmente
From
Endereço do usuário chamador
User - Agent
Nome do cliente que iniciou a chamada SIP
Protocolo de Sinalização SIP
Respostas SIP (I)
São muito parecidas com as requisições, tendo cabeçalhos e
corpo da mensagem
Diferem na linha do topo (composto por:)
Status code: numérico (100 - 699)
O comportamento da resposta está relacionado com os dígitos
dos 100s (centésimos)
Os outros dígitos extras dão informação adicional
Protocolo de Sinalização SIP
Respostas SIP (II)
Classes de Status Code:
100 - 199 (1XX): Informação provisória
200 - 299 (2XX): Sucesso
300 - 399 (3XX): Redirecionamento
400 - 499 (4XX): Erro no cliente
500 - 599 (5XX): Erro no servidor
600 - 699 (6XX): Falha global
Protocolo de Sinalização SIP
Respostas SIP (III)
Status Code:
100 - 199: são consideradas respostas provisórias e sem
confiabilidade
200 - 699: são consideradas respostas finais, definitivas,
terminam uma transação no ambiente SIP
Exemplos
200 OK
180 Ringing
301 Moved Permanently
401 Unauthorized
Protocolo de Sinalização SIP
Exemplo de Resposta SIP
Note que a única diferença entre requisição e resposta, na
aparência da mensagem, é a linha de status!
As regras para geração de respostas são:
Os cabeçalhos Call-ID, To, From, Cseq serão espelhados em
respostas para suportar o match (verificação) de campos entre
requisição e resposta
Protocolo de Sinalização SIP
Servidor
Redirecionamento
Arquitetura SIP
2
1
3
LAN
Servidor
Proxy
Internet
4
5
12
11
Cliente SIP
14
6
13
(Tr
an
spo
rt e
Servidor
Proxy
da
Mí d
i a)
Cliente SIP
(UAS)
LS
7
Internet
10
8
9
Servidor
Proxy
Protocolo de Sinalização SIP
Arquitetura SIP
Location
Service
User Agent Alice
12.26.17.91
5. Invite
To: sip:[email protected]
6. 100 Trying
11. 180 Ringing
14. 200 OK
16. 180 ACK
Media (RTP)
e
ons .4
esp .2.3
8. R b@1
?
: bo
sip
y: B
vite
1. In iloxi.com
@b
:bob
p
i
s
ying
:
r
T
To
00
2. 1
g
ingin K
R
0
O
8
15.
12. 1
er
Qu
Proxy Server
15.16.17.18
se
on
p
s
4
Re .0.2.
.
4 92
1
S
7. L
3.
DN
bil S Q
ox
u
i.c ery
om
DNS
Server
Proxy Server
192.0.2.4
13.
200
OK
10.
100
Ring
9
ing
. Inv
sip:
bob@ ite
bilox
i.com
User Agent Bob
1.2.3.4
Protocolo de Sinalização SIP
Registrando no SIP (I)
Proxy precisa conhecer onde os usuários estão localizados
num certo momento
A mensagem SIP REGISTER permite que os clientes se
autentiquem com os servidores proxy
Propriedades do REGISTER
Contém uma lista de endereços de localização do usuário em
cabeçalhos Contact
Qual servidor Registrar será usado é identificado na Request URI
Protocolo de Sinalização SIP
Registrando no SIP (II)
Propriedades do REGISTER
Identifica usuário registrado no campo To
Identifica a pessoa que está realizando o registro no campo
From (normalmente igual ao campo To)
Cabeçalho Expires indica o tempo de vida desejado deste
registro
Pode ser diferente para cada Contact
Pode conter corpo da mensagem com Linguagem de
Processamento de Chamada (CPL)
Protocolo de Sinalização SIP
Registrando no SIP (III)
Protocolo de Sinalização SIP
Respostas do Registrar (I)
O comportamento do Registrar na recepção de mensagem
REGISTER
Checar se o domínio recebido é o dele próprio
Autenticar usuário do cabeçalho From
Adicionar a associação entre endereços
(campo To) >> (campo Contact)
Tempo de expires grande é diminuído
Pode retornar, na resposta, a lista de todos os registros
correntes
Pode retornar, na resposta, a lista de todos os tempos de
expires de todos os registros
Protocolo de Sinalização SIP
Respostas do Registrar (II)
Protocolo de Sinalização SIP
Detalhes Adicionais de Registro (I)
User Agent deve fazer periodicamente o refresh dos
registros pelo reenvio antes do tempo de expiração
Cada cabeçalho contact pode ter um refresh
independentemente
Pode usar mensagens REGISTER separadas para cada
Contact
Protocolo de Sinalização SIP
Detalhes Adicionais de Registro (II)
Apagar registros
Enviar um refresh com Expires: 0
Pesquisando a lista de registros correntes
Enviar um REGISTER com nenhum cabeçalho Contact
A resposta deve conter uma lista dos registros correntes
www.digitro.com
[email protected]
55 48 281-7000

Documentos relacionados