Voz sobre IP (VoIP) Marcel Barbosa de Oliveira, Marco Aurelio Goecking Santiago Ciência da Computação – Universidade Federal Fluminense (UFF) Abstract. This paper describes a little bit of the VoIP tecnologie. VoIP tecnology is evoluating, especially by the difusion of the Internet.Other reason is the progress of the new network tecnologies.It will have a huge competition in the telecomunications market. VoIP has 2 types of protocols: the H. 323 standart gives some base for audio, video and data comunications through IP network and SIP is a protocol based on text that has the power of the Internet, as: HTTP format, DNS and the e-mail address style. Resumo. Este artigo descreve um pouco sobre a tecnologia de voz sobre IP. A tecnologia VoIP está evoluindo nos últimos anos, devido especialmente pela difusão da Internet. Mas não somente por isso, mas também pelo progresso das tecnologias de rede. Assim teremos uma grande competitividade no mercado. O VoIP tem 2 tipos de protocolos: H. 323 O padrão H.323 fornece uma base para comunicação de áudio, vídeo e dados através de uma rede baseada em IP, inclusive a Internet e o SIP é um protocolo baseado em texto que possui a força da Internet, fazendo uso de elementos comuns, tais como: o formato do HTTP, DNS e o estilo de endereçamento e-mail. 1. Introdução Nos dias de hoje, temos presenciado uma grande revolução acontecendo nas telecomunicações, resultante do incrível crescimento das redes baseadas em pacotes, especialmente pela Internet. Esta revolução está unificando os mundos de Dados e Telecomunicações em uma só rede convergente ubiqüa. Esta mudança não se trata apenas de um movimento do mercado, mas demonstra o progresso da tecnologia de rede. A telefonia baseada em redes de pacotes já dá passos concretos de maturidade, e muitos "Fornecedores de Telefonia IP" e "Serviços 0800 na Rede" estão sendo construídos dentro deste novo paradigma. A implementação de VoIP nos permite o tráfego de voz (exemplo, chamadas telefônicas e faxes) sobre uma rede IP. A proposta de convergência tornou-se tão interessante e importante para a manutenção da competitividade, que mesmo as operadoras telefônicas tradicionais estão se rendendo a esta tecnologia. E desenvolvendo soluções para racionalizar o uso de suas infraestruturas baseadas em circuitos fazendo a atualização para comutação de pacotes. Não somente pelo apelo da redução de custos decorrentes da fusão de duas áreas, mas também pela possibilidade de prover uma melhor qualidade no transporte da voz, e ao mesmo tempo economizar em banda passante nacional e internacional. As principais causas para evolução do mercado de VoIP são as seguintes: o Baixo custo das chamadas telefônicas, o Serviços de valores agregados e mensagem unificada, o União da infra-estrutura de dados/voz. O sistema de VoIP consiste de um número de diferentes componentes: o Gateway/Media Gateway, o Gatekeeper, o Call Agent, o Media Gateway Controller, o Signaling Gateway, o Call Manager. O gateway converte a mídia por um tipo de rede para o formato requerido por um outro tipo de rede. O gateway também pode executar mensagens de áudio/vídeo e outras funções IVR, ou até mesmo executar conferência de mídia. No VoIP, o processador de sinal digital (DSP – Digital Signaling Processor) segmenta o sinal de voz em quadros (frames) e os armazena em pacotes de voz. Estes pacotes de voz são transportados usando IP de acordo com uma das especificações para transmissão de multimídia (voz, vídeo, fax e dados) através da rede: o H.323 – ITU o MGCP – Level3, Bellcore, Cisco, Nortel o MEGACO/H2.48 – IETF o SIP – IETF o T.38 – ITU Dois padrões principais disputam a hegemonia da Telefonia IP: ITU-T H.323 (International Telecommunications Union), presente em muitos dos equipamentos e softwares VOIP, e o SIP, proposto pela IETF (Internet Engineering Task Force), que, apesar do curto tempo do processo de padronização, tem mobilizado muitos fabricantes da área da telefonia e dados, por causa da sua flexibilidade, aderência com padrões genuinamente Internet e arquitetura aberta. Os protocolos ITU-T H.323 e SIP serão descritos nas próximas sessões. 2. Arquitetura H.323 2.1 Introdução O padrão H.323 fornece uma base para comunicação de áudio, vídeo e dados através de uma rede baseada em IP, inclusive a Internet. O H.323 é um leque de recomendações da ITU que seta padrões para comunicação de multimídia sobre LANs (Local Area Networks) que não fornecem uma garantia de qualidade de serviço. Estas redes dominam o mercado desktops e incluem TCP/IP e IPX sobre as tecnologias de rede Ethernet, Fast Ethernet e Token Ring. Os padrões H.323 são importantes peças para um novo range de aplicações para multimídia baseadas em LAN. Isto inclui partes do H.225.0 – RAS, Q.931/Q.932, H.245, RTP/RTCP e codecs de áudio/vídeo. 2.2 Elementos da Rede A arquitetura H.323 possui os seguintes elementos: ??Terminal ??Gateway ??Gatekeeper ??MCU 2.2.1 Terminal Um terminal ou um cliente, é um endpoint onde dados e sinalização H.323 se originam e terminam. Este pode ser um PC multimídia com aplicação H.323 ou um equipamento standalone (como um telefone IP conectado a uma porta USB). Um terminal deve suportar comunicação de áudio, enquanto o suporte a comunicação de vídeo e dados é opcional. 2.2.2 Gateway Um gateway fornece a tradução do formato dos dados, tradução de sinalização de controle, tradução de codecs de áudio e vídeo, e funcionalidade de call setup e terminação de chamada em ambos os lados da rede. 2.2.3 Gatekeeper Elemento opcional da rede H.323. São necessários para assegurar a confiabilidade e uma comunicação comercialmente viável. É comumente chamado de cérebro de uma rede H.323 por causa dos serviços de controle e gerenciamento centralizado que oferece. Quando existe um gatekeeper, todos os endpoints (terminais, gateways e MCUs) devem se registrar com ele. Mensagens de controle de registro de endpoints são roteadas através do gatekeeper. O gatekeeper e os endpoints por ele administrados formam um zona de gerenciamento. Serviços oferecidos pelo gatekeeper a todos os endpoints em sua zona: ?? Tradução de endereçamento – O gatekeeper mantém uma base de dados para a tradução entre aliases, tais como números telefônicos internacionais e endereços de rede. ?? Admissão e controle de acesso de endpoints – Este controle pode ser baseado em disponibilidade de banda, limitação do número de chamadas H.323 simultâneas ou privilégios de registro de endpoints. Gerenciamento de banda – Administradores de redes podem gerenciar a banda apenas especificando limitações no número de chamadas simultâneas e limitando a autorização de terminais específicos a realizar chamadas em horários específicos. ?? Capacidade de roteamento – Um gatekeeper pode rotear todas as chamadas originadas ou terminadas em sua zona. Esta capacidade fornece numerosas vantagens. Primeiro, informação de accouting das chamadas podem ser mantidas para cobrança e segurança. Segundo, um gatekeeper pode re-rotear uma chamada para um gateway apropriado baseado na banda disponível. Terceiro, re-roteamento pode ser usado para desenvolver vários serviços avançados, tais como: endereçamento móvel, call forwarding e voice mail. ?? 2.3.4 MCU – Multipoint Control Unit Uma MCU possibilita a conferência entre três ou mais endpoints. Consiste obrigatoriamente de uma controladora multiponto (MC) e zero ou mais processadores multipontos (MP). Apesar da MCU ser uma unidade lógica separada esta pode ser combinada dentro de um terminal, gateway ou gatekeeper. A MCU é um componente opcional de uma rede H.323. A controladora multiponto fornece uma localização centralizada para call setup multiponto. Sinalização de chamada e de controle são roteadas através da MC para que as capacidades dos endpoints possam ser determinadas e parâmetros de comunicação possam ser negociados. Uma MC também pode ser usada em uma chamada ponto-a-ponto que mais tarde pode ser extendida em uma conferência multiponto. O processador multiponto é responsável pela mixagem, chaveamento e processamento de áudio, vídio e dados entre os endpoints da conferência. A MCU é necessária em uma conferência multiponto centralizada onde cada terminal estabelece uma conexão ponto-a-ponto com a MCU. A MCU determina a capacidade de cada terminal e envia para cada um feixe de mídia mixado. No modelo de conferência descentralizada, uma MC assegura a compatibilidade da comunicação mas os feixes de mídia são multicast e a mixagem é realizada em cada terminal. 2.3 Conceitos dos Protocolos As mídias são transportadas pelos protocolos RTP/RTCP. O RTP transporta a mídia e RTCP transporta as informações de status e controle. A sinalização é transportada de forma confiável sobre TCP. Os seguintes protocolos lidam com a sinalização: ?? RAS – gerencia registro, admissão, status. ?? Q.931 – gerencia call setup e terminação. ?? H.245 – negocia o uso de canais e a capacidade. Relação dos protocolos H.323 com o modelo OSI. 2.3.1 RTP / RTCP O RTP (Real-time Transport Protocol) fornece um conjunto de funções de transporte de rede fim-a-fim para aplicações transmitindo dados em tempo real, tais como: áudio, vídeo ou dados, sobre serviços de rede multicast ou unicast. RTP não garante qualidade de serviço para serviços em tempo real. O RTCP (Real-time Transport Control Protocol) é baseado na transmissão periódica de pacotes de controle para todos os participantes da sessão, usando o mesmo mecanismo de distribuição que usado no pacote de dados. O protocolo da camada inferior deve fornecer multiplexação de pacotes de dados e controle, por exemplo: usando portas UDP separadas. O RTP e RTCP foram projetados para serem independentes das camadas de transporte e rede. 2.3.2 H225.0 – RAS O canal RAS (Registration, Admission, Status) é usado para transportar mensagens usadas para descobrir o gatekeeper e processos de registros de endpoints que associa um endereço de um endpoint com seu endereço de transporte do canal de sinalização da chamada. O canal RAS é um canal não confiável. Já que as mensagens RAS são transmitidas em um canal não confiável, o H.225.0 recomenda contadores de timeout e retry para várias mensagens. Um endpoint ou gatekeeper que não pode responder a um pedido com o timeout específico deve usar a mensagem RIP (Request In Progress) para indicar que ainda está processando a solicitação. Um endpoint ou gatekeeper que recebe uma mensagem RIP deverá resetar os contadores de timeout e retry. No item Sinalização de Chamada será apresentada o procedimento H.225.0 com mais detalhes. 2.3.3 H.245 O H.245 é a linha de transmissão de outros sinais que não são de voz. Estes incluem capacidade de recepção e transmissão bem como o modo de preferência do ponto de recepção, canais lógicos de sinalização de controle e indicação. Procedimentos de confirmação de sinalização são especificados para assegurar comunicação de dados e audiovisual confiáveis. As mensagens H.245 são em sintax ASN1. Os tipos de mensagens podem ser definidos como request, response, command ou indication. O seguinte conjunto de mensagens estão disponíveis: ?? Mensagem de determinação Master Slave ?? Mensagem de capacidade de terminal ?? Mensagem de sinalização de canal lógico ?? Mensagem de sinalização de tabela de multiplexação ?? Mensagem de Modo Request ?? Mensagem de RTD (Round Trip Delay) ?? Mensagem de Loop de manutenção ?? Mensagens de Request e Responde de conferência ?? TerminalID ?? Commands e Indications 2.4 Sinalização da chamada Sinalização da chamada são as mensagens e procedimentos usados para estabelecer uma chamada, solicita mudanças na banda da chamada, recebe status dos endpoints da chamada e disconecta a chamada. Sinalização da chamada usa mensagens definidas na H.225.0 e os procedimentos descritos no item Procedimentos de Sinalização de Chamada. 2.5 Canal RAS O canal RAS deverá ser usado para transportar mensagens usadas para descobrir gatekeeper e processo de registro de endpoints, já introduzido anteriormente. A seguir serão descritos estes dois processos. 2.5.1 Descoberta do gatekeeper A descoberta de um gatekeeper é o processo que um endpoint usa para determinar com qual Gatekeeper deverá se registrar. Este pode ser feito manualemte ou automaticamente. A descoberta manual não é padronizada. O método automático permite a associação do endpoint – Gatekeeper a qualquer momento. O endpoint pode não conhecer quem é seu gatekeeper, ou pode ser necessário identificar outro gatekeeper devido a uma falha. O endpoint deverá enviar uma mensagem Gatekeeper Request (GRQ) multicast, perguntando “Quem é meu Gatekeeper?” Um ou mais gatekeepers podem responder com a mensagem Gatekeeper Confirmation (GCF) indicando “Eu posso ser seu Gatekeeper”, e retorna o Endereço de Transporte do canal RAS do gatekeeper. Se um gatekeeper não quer que um endpoint se registre, este deverá retornar uma mensagem Gatekeeper Reject (GRJ). Se mais de um gatekeeper responde, o endpoint deverá escolher qual gatekeeper quer usar. Descoberta Automática H.323 Endpoint Gatekeeper GRQ GCF/GRJ 2.5.2 Registro do endpoint Registro é o processo pelo qual um endpoint se junta a uma zona e informa ao gatekeeper do seu endereço de transporte e endereço associado. Como parte de seu processo de configuração, todos os endpoints deverão se registrar com o gatekeeper descoberto. O registro deverá acontecer antes de que qualquer tentativa de uma chamada e pode acontecer periodicamente caso seja necessário. Um endpoint deverá enviar um Registration Request (RRQ) a um gatekeeper. Este é enviado ao endereço de transporte do canal RAS do gatekeeper. O gatekeeper deverá responder com um Registration Confirmation (RCF) ou um Registration Reject (RRJ). Um endpoint deverá se registrar com um único gatekeeper. Um endpoint poderá cancelar seu registro enviando uma mensagem Unregister Request (URQ) ao gatekeeper. O gatekeeper deverá responder com uma mensagem Unregister Confirmation (UCF). Isto permite ao endpoint mudar o endereço alias associado com o endereço de transporte, ou vice-versa. Se um endpoint não foi registrado com o gatekeeper, o mesmo deverá retornar uma mensagem Unregister Reject (URJ) ao endpoint. O gatekeeper também poderá cancelar o registro de um endpoint enviando uma mensagem URQ ao endpoint e o endpoint deverá responder com uma mensagem UCF. Registro H.323 Endpoint Gatekeeper RRQ RCF or RRJ URQ UCF/URJ Endpoint Endpoint initiated iniciou Unregister Request Unregister Request URQ Gatekeeper initiated iniciou Gatekeeper UCF Unregister Request Unregister Request 2.6 Canal de Sinalização da Chamada O canal de sinalização da chamada é usado para transportar mensagens de controle de chamada H.225.0. O canal de sinalização deve ser um canal confiável. Em redes que não possuem um gatekeeper, as mensagens de sinalização da chamada são passadas diretamente entre os pontos chamador e chamado usando o Endereço de Transporte de Sinalização de Chamada. Nestas redes, é assumido qie o endpoint chamador conheça o Endereço de Transporte de Sinalização de Chamada do endpoint chamado e assim possam se comunicar diretamente. Nas redes que possuem um gatekeeper, é trocada a mensagem de admissão inicial entre o endpoint chamador e o gatekeeper usando o endereço de transporte do canal RAS do gatekeeper. Dentro das mensagens de adimissão trocadas, o gatekeeper indica na mensagem ACF se a sinalização da chamada será enviada diretamente ao outro endpoint ou ser será roteada pelo gatekeeper. No H.225.0 é especificado o uso obrigatório de mensagens Q.931 para a sinalização de chamada na H.323. 2.6.1 Canal de sinalização de chamada roteada Mensagens de sinalização de chamada poderão ser trocadas de duas maneiras. O primeiro método é o roteamento da sinalização de chamada pelo gatekeeper. Neste método, as mensagens de sinalização de chamada são roteadas através do gatekeeper entre os endpoints. Sinalização de Chamada Roteada pelo Gatekeeper Call Signalling Channel Messages RAS Channel Messages Gatekeeper Cloud 1 2 3 Endpoint 1 8 4 5 6 7 1 - ARQ 2 - ACF/ARJ 3 - Setup 4 - Setup 5 - ARQ 6 - ACF/ARJ 7 - Connect 8 - Connect Endpoint 2 O segundo método é a Sinalização de Chamada Diretamente entre Endpoints. Neste método as mensagens de sinalização de chamada são trocadas diretamente entre os endpoints. A escolha de qual método será usado é feita pelo gatekeeper. Sinalização de Chamada Diretamente entre Endpoints Call Signalling Channel Messages 1 - ARQ 2 - ACF/ARJ 3 - Setup 4 - ARQ 5 - ACF/ARJ 6 - Connect RAS Channel Messages Gatekeeper Cloud 1 2 4 5 3 Endpoint 1 2.7.1 Endpoint 2 6 Roteamento do canal de controle Quando a sinalização de chamada roteada pelo gatekeeper é usada, existem dois métodos para rotear o canal de controle H.245. No primeiro método, o canal de controle H.245 é estabelecido diretamente entre os endpoints. Conexão Direta do Canal de Controle H.245 entre os Endpoints H.245 Control Channel Messages Call Signalling Channel Messages RAS Channel Messages Gatekeeper Cloud 1 2 3 Endpoint 1 8 4 9 5 6 7 Endpoint 2 1 - ARQ 2 - ACF/ARJ 3 - Setup 4 - Setup 5 - ARQ 6 - ACF/ARJ 7 - Connect 8 - Connect 9 - H.245 Channel No segundo método, o canal de controle H.245 é roteado entre os endpoints através do gatekeeper. Este método permite que o gatekeeper redirecione o canal de controle H.245 para uma MC quando uma conferência ponto-a-ponto é trocada para uma conferência multiponto. Esta escolha é feita pelo gatekeeper. Quando é usada a Sinalização de Chamada Diretamente entre Endpoints, o canal de controle H.245 é obrigatoriamente diretamente conectado entre os endpoints. Conexão do Canal de Controle H.245 roteado através do Gatekeeper H.245 Control Channel Messages Call Signalling Channel Messages RAS Channel Messages Gatekeeper Cloud 1 2 3 8 9 Endpoint 1 4 5 6 7 10 1 - ARQ 2 - ACF/ARJ 3 - Setup 4 - Setup 5 - ARQ 6 - ACF/ARJ 7 - Connect 8 - Connect 9 - H.245 Channel 10 - H.245 Channel Endpoint 2 2.8 Procedimentos de sinalização de chamada O provisionamento da comunicação é realizada da seguinte maneira: 1) Call setup 2) Comunicação inicial e troca de capacidade 3) Estabelecimento de comunicação audio visual 4) Serviços de chamada 5) Terminação de chamada 2.8.1 Call Setup É realizada usando as mensagens de controle de chamada definidas no H.225.0 de acordo com uma série de procedimentos de controle de chamad, abaixo serão descrito dois procedimentos o call setup básico e call setup onde ambos os endpoints são registrados e a sinalização de chamada é roteada por ambos os gatekeepers. 2.8.1.1 Call Setup Básico Neste tipo de call setup, nenhum dos endpoints é registrado a um gatekeeper. Os dois endpoints se comunicam diretamente. O Endpoint 1 (chamador) envia a mensagem setup (1) para o conhecido identificador TSAP do canal de sinalização de chamada do Endpoint 2. O Endpoint 2 responde com a mensagem Connect (4) que contém o Endereço de Transporte do Canal de Controle H.245 para uso na sinalização H.245. Call Setup Básico, Sem Gatekeepers Endpoint 1 Endpoint 2 Setup(1) Call proceeding(2) Alerting(3) Connect(4) Call Signalling Messages 2.8.1.2 Call Setup Roteada Pelos Gatekeepers Neste tipo, ambos os endpoints são registrados por gatekeepers diferentes e ambos os gatekeepers escolheram rotear a sinalização da chamada. Endpoint 1 (chamador) inicia a troca de ARQ (1)/ACF (2) com o gatekeeper 1. O gatekeeper 1 retorna o Endereço de Transporte do Canal de Sinalização da Chamada dele mesmo na ACF (2). Então, o Endpoint 1 envia a mensagem de Setup (3) usando aquele Endereço de Transporte. Então, o gatekeeper 1 envia a mensagem de Setup (4) para o Endereço de Transporte do Canal de Sinalização da Chamada conhecido do Endpoint 2. Se o Endpoint 2 deseja aceitar a chamada, este inicia a troca de ARQ (6)/ACF (7) com o gatekeeper 2. Se aceitável, o gatekeeper 2 retornará seu Endereço de Transporte do Canal de Sinalização da Chamada na ARJ (7) com o código de causa de routeCallToGatekeeper. O Endpoint 2 responde ao Gatekeeper 1 com uma mensagem Facility (8) contento o Endereço de Transporte de Sinalização da Chamada do Gatekeeper 2. Então, o Gatekeeper 1 envia a mensagem de Release Complete (9) ao Endpoint 2. O Gatekeeper 1 envia a mensagem de Setup (10) para o Endereço de Transporte do Canal de Sinalização da Chamada do Gatekeeper 2. O Gatekeeper 2 envia mensagem de Setup (11) ao Endpoint 2. O Endpoint 2 inicia a troca de ARQ (12)/ACF (13) com o Gatekeeper 2. Então, o Endpoint 2 responde ao Gatekeeper 2 com a mensagem Connect (15) que contém seu Endereço de Transporte do Canal de Controle H.245 para uso da sinalização H.245. O Gatekeeper 2 envia a mensagem Connect (16) ao Gatekeeper 1 contendo o Endereço de Transporte do Canal de Controle H.245 do Endpoint 2, ou um Endereço de Transporte do Canal de Controle H.245 do Gatekeeper 2 (MC), baseado na escolha do Gatekeeper 2 do roteamento ou não do Canal de Controle H.245. O Gatekeeper 1 envia a mensagem de Connect (17) ao Endpoint 1 que deverá conter o Endereço de Transporte do Canal de Controle H.245 enviado pelo Gatekeeper2, ou um Endereço de Transporte do Canal de Controle H.245 do Gatekeeper 1 (MC), baseado na sua escolha do roteamento ou não do Canal de Controle H.245. Ambos Endpoints Registrados – Sinalização de Chamada Roteada por Ambos os Gatekeepers Endpoint 1 Gatekeeper 2 Gatekeeper 1 Endpoint 2 ARQ(1) ACF(2) Setup(3) Setup(4) Call Proceeding(5) Call Proceeding(5) ARQ(6) ARJ(7) Facility(8) Release Complete(9) Setup(10) Setup(11) Call Proceeding(5) Call Proceeding(5) ARQ(12) ACF/ARJ(13) Alerting(14) Alerting(14) Alerting(14) Connect(15) Connect(17) RAS Messages Call Signalling Messages Connect(16) 2.9 Terminação da Chamada Qualquer Endpoint pode terminar a chamada seguindo os seguintes procedimentos: 1) Descontinuar a transmissão audio visual e então fechar todos os canais lógicos. 2) Transmitir a mensagem H.245 endSessionCommand no Canal de Controle H.245. 3) Esperar o recebimento da mensagem endSessionCommand do outro endpoint e então fechar o Canal de Controle H.245. 4) Enviar uma mensagem Release Complete para fechar o Canal de Sinalização de Chamada. 5) Usar os procedimentos abaixo para desconectar a chamada. 2.9.1 Terminação da Chamada Sem um Gatekeeper Em redes que não possuem um Gatekeeper, após os 4 passos acima descritos a chamada é terminada. Nenhum procedimento adcional é requerido. 2.9.2 Terminação da Chamada com um Gatekeeper Em redes que contém um Gatekeeper, o Gatekeeper precisa ter conhecimento do release da banda. Após a execução dos passos de 1 a 4 acima, cada endpoint transmite uma mensagem H.225.0 Disengage Request (DRQ) (3) para o Gatekeeper. O Gatekeeper responde com uma mensagem Disengage Confirm (DCF) (4). Neste ponto a chamada é terminada. A figura abaixo mostra o modelo da Chamada Direta, um procedimento similar é realizado para o modelo Roteado pelo Gatekeeper. As mensagens DRQ e DCF deverão ser enviadas no canal RAS. Terminação da Chamada Iniciada pelo Endpoint Gatekeeper 1 Endpoint 1 Endpoint 2 Gatekeeper 2 EndSessionCommand(1) EndSessionCommand(1) Release Complete (2) DRQ(3) DRQ(3) DCF(4) DCF(4) RAS messages Call Signalling messages H.245 messages Note: Gatekeeper 1 and Gatekeeper 2 may be the same Gatekeeper. 2.9.3 Terminação da Chamada pelo Gatekeeper O gatekeeper pode terminar uma chamada enviando uma DRQ para um endpoint. O Endpoint imediatamente segue os passos de 1 a 4 e então responde ao Gatekeeper com uma DCF. O outro endpoint, recebendo endSessionCommand deve seguir os procedimentos descritos acima. A figura abaixo mostra o modelo de Chamada Direta, um procedimento similar é realizado para o modelo Roteado pelo Gatekeeper. Terminação de Chamada Iniciada pelo Gatekeeper Gatekeeper 1 Endpoint 1 Endpoint 2 Gatekeeper 2 DRQ(3) EndSessionCommand(1) EndSessionCommand(1) Release Complete (2) DCF(4) DRQ(3) DCF(4) RAS messages Call Signalling messages H.245 messages Note: Gatekeeper 1 and Gatekeeper 2 may be the same Gatekeeper. 3. SIP 3.1Introdução SIP (Session Initiation Protocol) é um protocolo baseado em texto que possui a força da Internet, fazendo uso de elementos comuns, tais como: o formato do HTTP, DNS e o estilo de endereçamento e-mail. SIP, geralmente, usa o SDP (Session Description Protocol) para especificar parâmetros da sessão. O SIP fornece os elementos dos protocolos necessários para fornecer serviços, tais como: call forwarding, call diversion etc. O endereço SIP (URL) pode ser usado em páginas web e pode então ser integrado como parte de poderosas aplicações, como por exemplo click-to-talk. O SIP possui um mecanismo próprio de segurança. Ele cria, modifica e termina sessões com um ou mais participantes. Estas sessões incluem conferências de multimída na Internet, chamadas telefônicas via Internet e distribuição de multimídia. O SIP não está amarrado a nenhum protocolo de controle de conferências em particular. Este foi projetado para ser independente dos protocolos de transporte da camada inferior e pode ser extendido com capacidade adcional. SIP suporta 5 tipos de estabelecimento e terminação de comunicações de multimídia: ?? User location ?? User capabilities ?? User availability ?? Call setup ?? Call handling. A operação do SIP é baseada em mensagens do tipo Request e Response. O modelo de básico de operação do SIP consiste em dois SIP UA (user agent) se comunicando diretamente. Onde os UAs podem ser telefones, aplicações ou gateways interfaceando a PSTN. O UA chamado pode aceitar o convite confirmando-o com uma resposta de OK. Finalmente, o UA chamador vai “fechar loop” com o UA chamado enviando de volta uma confirmação ao UA chamado. Operação Básica O Servidor SIP suporta telefonia baseada em SIP fornecendo um único ponto de acesso para clientes, mapeando nomes amigáveis em endereços, roteando mensagens de sinalização entre UAs e redirecionamento de chamadas. Existem dois tipos de servidores SIP, o Servidor Proxy e o Servidor Redirect. A operação do SIP depende do tipo de servidor usado. No modelo proxy, o servidor proxy SIP é o único ponto de contato que os UAs possuem para troca de mensagens de sinalização. No modelo de redirecionamento, o servidor redirect SIP deixa que o UA chamador conheça a localização do UA chamado e então deixa que as mensagens de sinalização subsequentes sejam trocadas diretamente entre UAs chamador e chamado. No item Operação SIP estas operações serão melhor descritas. 3.2 Endereçamento Os endereços SIP, também chamados como SIP URL (Universal Resource Locator), existe na forma de users@hosts. Similar ao endereço de e-mail, uma SIP URL é identificado pelo user@host. A parte do endereço referente ao user pode ser um nome de usuário ou um número telefônico, e a parte do endereço referente ao host pode ser um nome de domínio ou endereço de rede. Voce pode identificar uma SIP URL do usuário através do seu endereço e-mail. 3.3 Protocolos SIP fornece os elementos básicos da telefonia: call setup e terminação, configuração da chamada e transferência de dados. Estes são alcançados usando SIP para a parte de call setup e terminação, SDP para descrição da configuração da chamada e RTP para transferência de dados. RTCP também é usado para o gerenciamento do transporte de dados. SIP pode ser executado sobre qualquer datagrama ou protocolo de transporte, tais como: UDP, TCP, ATM e Frame Relay. SIP é usualmente executado sobre TCP/IP por causa da conectividade amplamente difundida, serviços de diretórios, serviços de nomes e um ambiente de desenvolvimento mundialmente conhecido. O pacotes de áudio e vídeo são transportados usando o RTP sobre o UDP. As mensagens de sinalização da chamada SIP podem ser transportadas sobre UDP ou TCP, com o UDP sendo o método preferido devido a melhor performance a escalabilidade. Uma consideração importante quando estamos usando SIP sobre UDP é que a mensagem inteira deve ocupar um único pacote. Caso a mensagem SIP seja fragmentada em múltiplos datagramas, a probabilidade de perda de toda a mensagem aumenta com o número de fragmentos. Quando as mensagens SIP são transmitidas sobre WAN, as retransmissões que resultam da perda de fragmentos podem seriamente degradar a performance da sinalização da chamada. A porta padrão para SIP é 5060 embora qualquer porta disponível possa ser usada. A porta para ser usada pelo RTP/RTCP é especificada nas mensagens de sinalização da chamada SIP. Pilha de Protocolos SIP 3.4 SDP O SIP geralmente faz uso do SDP (Session Description Protocol) para descrever os atributos das sessões SIP. Os parâmetros SDP são encapsulados como corpo da mensagem de um request SIP. SDP executa uma regra similar àquela do H.245 no mundo H.323. Como o SIP, os cabeçalhos SDP são codificados em texto ASCII. O cabeçalho SDP são da forma <type>=<value>. O <type> (tipo) é sempre um único caracter e <value> (valor) é uma string texto cujo formato depende do <type>. O cabeçalho SDP especifica: ?? Nome da sessão e propósito. Tempo que a sessão está ativa. ?? A mídia que compreende a sessão. ?? ?? Endereço de transporte e formato da mídia da sessão. ?? Largura de banda que será usada pela sessão. ?? Informação de contato para a pessoa responsável pela sessão. 3.5 Mensagens SIP 3.5.1 Mensagens do tipo REQUEST: ?? Invite - Inicia uma sessão. ?? ACK - Confirma a resposta final a um INVITE. ?? Bye - Termina uma sessão. ?? Cancel - Cancela buscas e ringing. ?? Options - Comunica features suportadas. ?? Register - Registra um cliente com um serviço de localização. 3.5.2 Mensagens do tipo RESPONSE: Indica tanto uma chamada em progresso ou uma informação de final de chamada. Este tipo de mensagem contém um Código-Status e uma Frase-Razão ou Categoria. O Código-Status é um número que indica o resultado de um request e a Categoria fornece uma descrição textual referente ao Código-Status. Código-status Categoria 1xx Progress 2xx Successful Request 3xx Redirection 4xx Incorrect Request 5xx Server Failure 6xx Global Failure 3.6 Operação SIP O SIP funciona da seguinte forma: Origem e destino são identificados por endereços SIP. Ao efetuar uma chamada SIP, o chamador primeiro localiza o servidor apropriado e então envia um request SIP. A operação mais comum é a INVITATION. Ao invés de alcançar diretamente o destino, um SIP request pode ser redirecionado ou pode desencadear um série de novos SIP requests pelos proxies. Usuários podem registrar suas localizações com servidores SIP. 3.7 Servidor Proxy O modelo de chamada proxy faz uso de um servidor proxy. Este servidor usa uma regra similar ao servidor proxy usado em um sistema HTTP. O servidor proxy roteia as mensagens de sinalização entre os UAs de destino e origem. Os pacotes RTP de áudio e/ou vídeo são enviados diretamente entre os UAs após o estabelecimento da chamada. 3.8 Servidor Redirector O servidor redirect SIP informa ao UA de origem a SIP URL do UA de destino. O UA de origem então procede com o setup da chamada diretamente com o UA de destino. Operação com Servidor Proxy Operação com Servidor Redirect 4. Conclusão O uso de rede de pacotes para transmitir voz é uma proposta desafiadora. Porque devemos tomar alguns cuidados como: ?? A voz deve ser adaptada de uma forma eficiente para a rede de pacotes. ?? Problemas de rede tais como, jitter, perda de pacotes e pacotes fora de ordem devem ser mascarados do usuário. Com implementações VoIP propriamente desenhadas, usuário não serão capazes de detectar se estão falando através de uma rede de pacotes. 5. Referências Bibliográficas http://www.voip.nce.ufrj.br INTELIG TELECOM. Overview VoIP. Rio de Janeiro, 2003. TELEMAR. Tecnologia Voz Sobre IP. Rio de Janeiro, 2003.