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