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
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
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
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
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
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
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
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.
Servidores SIP O resultado final da localização de endereços é um mapeamento de um SIP URI para outro Ex: sip:lazaro@voip.digitro.com.br para sip:lazaro@sip.digitro.com.br Servidor de Localização Servidor PROXY
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
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
Servidores Proxies (IV) Servidor DNS Servidor de Localização sip: lazaro@digitro.com.br Servidor PROXY sip: lazaro@sip.digitro.com.br 200 OK 200 OK 200 OK Servidor PROXY Cliente SIP sip: lazaro@dti.sip.digitro.com.br
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
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
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
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)
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
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
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
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
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
Arquitetura SIP 2 Servidor Redirecionamento Cliente SIP 1 12 LAN 13 14 (Transporte da Mídia) Servidor Proxy 11 3 4 Servidor Proxy Internet 7 Internet 10 8 5 6 LS Cliente SIP (UAS) 9 Servidor Proxy
Arquitetura SIP Proxy Server 15.16.17.18 DNS Server Location Service 8. Response sip: bob@1.2.3.4 3. DNS Query biloxi.com 7. LS Query: B? 4. Response 192.0.2.4 5. Invite To: sip:bob@biloxi.com Proxy Server 192.0.2.4 13. 200 OK 1. Invite To: sip:bob@biloxi.com 2. 100 Trying User Agent Alice 12.26.17.91 6. 100 Trying 11. 180 Ringing 9. Invite 10. 100 Ringing 14. 200 OK sip: bob@biloxi.com 15. OK 12. 180 Ringing 16. 180 ACK Media (RTP) User Agent Bob 1.2.3.4
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
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)
Registrando no SIP (III)
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
Respostas do Registrar (II)
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
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 portal@digitro.com.br 55 48 281-7000