Seção: Guia

 

VoIP I: Telefonia VoIP

 

A tecnologia VoIP (voz sobre IP) consiste em utilizar a rede de comutação de pacotes como a internet ou redes baseadas em protocolo IP para a comunicação de voz. Essa tecnologia também oferece a integração das comunicações em uma determinada organização, transportando voz e dados no mesmo tráfego de rede.

 

É uma tecnologia que gradativamente vem tomando espaço nas organizações em comparação a telefonia tradicional. Há três possibilidades de tráfego que a tecnologia VoIP é capaz de transmitir: voz, vídeo e dados em um mesmo meio físico.

 

Para a voz ser transmitida através da rede IP é necessário antes ser digitalizada, ou seja, é preciso que a voz passe por uma conversão analógica para digital utilizando alguma técnica de codificação e assim ser quebrada em pacotes para sua transmissão em uma rede IP comutada por pacotes (Colcher, 2005).

 

Dispositivos VoIP

 

Alguns dispositivos também conhecidos como terminais, que permitem o uso da tecnologia VoIP estão listados a seguir:

  • Softphone: conhecido também como net fone é uma aplicação ou software de computador usado para fazer chamadas VoIP, onde é encontrada uma interface igual às teclas dos telefones convencionais.
  • ATA (Adaptador Telefônico Analógico): Usado para converter sinais digitais fornecidos pelo VoIP em redes IP para sinais analógicos, através da porta analógica do ATA é possível utilizar um telefone analógico convencional em uma rede VoIP.
  • VoIP fone: pode também ser chamado de IP fone, foi especialmente desenvolvido para realização de operações em redes VoIP, fornece dentre muitas facilidades com vídeo conferência.
  • Celulares VoIP: esse tipo de celular efetua a autenticação a uma rede VoIP utilizando apenas a conexão wifi.
  • Gateway: equipamento responsável por estabelecer a conexão entre uma rede IP a rede publica de telefonia, este equipamento trabalha com protocolos de sinalização no lado da rede VoIP e protocolos de telefonia convencional no lado da rede publica de telefonia, trabalhando como um roteador de chamadas.
  • Gatekeeper: é um gerenciador de sistemas VoIP, capaz de permitir a autenticação dos componentes da rede IP no caso de uma solicitação de chamadas dos terminais.

 

Cenário VoIP

 

Com o passar dos anos, na medida em que a tecnologia VoIP e a telefonia IP foram surgindo como soluções para integração de comunicação nas empresas, novos equipamentos começam a fazer parte deste cenário.

 

Nesta sessão serão abordados os dispositivos utilizados, bem como os cenários a eles aplicados e suas principais diferenças de aplicações.

 

A figura 9 ilustra um cenário muito utilizado, de um terminal IP para outro terminal IP, onde a comunicação é realizada através de um software instalado em um computador.

 

Figura 9: Software interligando computadores (Dígitro, 2013)

 

A figura 10 ilustra o cenário VoIP entre dois telefones IP, esses telefones foram especialmente desenvolvidos para essa finalidade, fornecer interface de comunicação IP para trafego de voz.

 

Figura 10: VoIP entre terminais IP (Dígitro, 2013)

 

Entre dois telefones comuns pode ser utilizado o dispositivo adaptador telefônico analógico ATA que realiza a conversão entre os sinais digitais e entregam sinais analógicos ao telefone analógico convencional ilustrado conforme a figura 11.

 

Figura 11: VoIP entre telefones convencionais (Dígitro, 2013)

 

Protocolos de Sinalização e Controle

 

Esses protocolos são responsáveis pelo controle e sinalização das chamadas realizadas através do sistema VoIP, eles atuam como fiscais, iniciando, acompanhando e finalizando as seções das chamadas telefônicas, controlam mídias tais como voz e vídeo. Protocolos de sinalização são essenciais para o bom funcionamento do VoIP, os principais protocolos de sinalização para sistemas de voz sobre IP são: a recomendação H323 formada por outros protocolos, SIP (protocolo de sessão inicial), e IAX protocolo que estabelece comunicação entre servidores do software livre PBX Asterisk.

 

H.323

 

Em 1996 a união internacional de telecomunicações (ITU) órgão responsável por coordenar e estabelecer padrões internacionais na área de telecomunicações estabeleceu um padrão de sinalização chamado recomendação H.323 para que pudessem ser evitados outros tipos de protocolos fora de padronização, e fabricantes desenvolvesse seus próprios protocolos, esta recomendação foi revisada e em 1998 sendo amplamente difundida em redes de telefonia IP.

 

Sistemas baseados em protocolos H.323 empregam suporte a entrega de sistemas audiovisuais e multimídia utilizando os protocolos de transporte em tempo real como (RTP) e o protocolo de controle em tempo real (RTCP), ele também provem serviços de autenticação de usuários. Disponibiliza também controle de tarifação e custos das chamadas telefônicas efetuadas, tanto como controle de chamadas recebidas, a fim de contabilizar custos.

 

A recomendação H.323 em uma rede distinta pode ser aplicada também com uso de gatekeeper de rede, onde um computador da rede se comunica até ele e faz uma requisição para que ele encaminhe a chamada ao gateway de rede, que por fim encaminha a resposta ao telefone comum convencional estabelecendo a comunicação entre ambos.

 

Sistemas de telefonia IP H.323 estão gradativamente caindo em desuso, sendo substituídos pelo protocolo SIP.

 

H.323 é um protocolo confiável e robusto, porém complexo e de difícil entendimento e implementação, por se tratar de uma cadeia de outros protocolos que compõem sua estrutura. A figura 12 apresenta um cenário utilizando o protocolo H.323.

 

Figura 12: Modelo de rede H.323 para telefonia de internet

 

SIP

 

Devido à alta complexidade do protocolo H.323 projetado pela ITU, o Internet Engineering Task Force (IETF), um grupo formado por pessoas que contribuem tecnicamente para o desenvolvimento e arquitetura da internet tal grupo dita às novas especificações da internet, preocupada com a difícil implantação do H.323, organizou um comitê para o desenvolvimento de outro protocolo mais simples e de fácil implantação. Tal protocolo é conhecido como SIP ou protocolo de inicialização de sessão (Tanembaum, 2003).

 

O protocolo SIP é um protocolo da camada de aplicação, e sua principal função é o gerenciamento, inicialização e encerramento das chamadas, e para que sejam transportados os dados iniciados pelo protocolo SIP, são necessários outros protocolos de transporte tais como o UDP, TCP, RTP e RTPC, ele também como o H.323 fornece suporte a áudio, vídeo e dados.

 

O SIP trabalha semelhante ao protocolo Hyper Text Protocol (HTTP) ele define seus números para realização de chamadas com uso de Uniform Resource Locators (URL), neste caso a especificação para realizar a chamada vem a ser o endereço como no exemplo sip: usuário@computacao.com.br parecido com um endereço de email. Nele também pode ser estabelecido endereço IP, ou numeração comum como em telefones convencionais.

 

Pelo fado do protocolo SIP ser baseado no HTTP para transações de solicitação e respostas para comunicação, este protocolo trabalha com cabeçalhos, há seis métodos nos cabeçalhos em suas mensagens:

  • INVITE: Solicita o inicio da sessão.
  • ACK: Confirma que a sessão foi iniciada.
  • OPTIONS: Consulta os recursos do destino.
  • REGISTER: Informa aonde o destino esta localizado.
  • CANCEL: Cancela uma solicitação.
  • BYE: Encerra a sessão entre dois usuários SIP.

 

A figura 13 exemplifica o inicio de uma sessão sendo estabelecida utilizando o protocolo SIP.

 

Figura 13: Ligação VoIP utilizando SIP

 

Para enviar uma requisição de chamada, o chamador cria uma conexão TCP ou UDP enviando uma mensagem INVITE contendo as informações de origem. Se o destino aceitar a ligação ele responderá com um código de resposta do tipo HTTP numero de três dígitos 200 que significa aceitação, em seguida o chamador envia o código ACK confirmando o recebimento da mensagem 200.

 

Qualquer uma das partes esta livre para encerrar a conexão podendo chamar o método BYE, quando o outro participante confirmar, a sessão será encerrada.

 

Antes de uma sessão ser iniciada o método OPTIONS é chamado para consultar os recursos dá maquina a fim de descobrir se a máquina é capaz de se comunicar usando voz sobre IP.

 

Como um dos métodos de comunicação de sua arquitetura, o SIP pode utilizar o modo de comunicação ponto a ponto, onde há troca de informações de um usuário SIP a outro sem a necessidade de um servidor SIP intermediando a comunicação, porém este método pode não ser suportado por alguns serviços disponíveis e um servidor SIP, tal como o serviço de localização da chamada (Cisco, 2013).

 

Outra forma de comunicação disponível em sua arquitetura é com o uso de comunicação via Proxy, este é o tipo mais usado em um sistema de telefonia baseado em SIP (Colcher, 2005). Na comunicação via Proxy, para a realização das sessões, tal como solicitação da chamada e respostas é necessário um intermediador de gerenciamento das sessões iniciadas, assim faz-se o uso de um servidor SIP Proxy na rede, que este por sua vez estará encarregado de validar e autenticar as requisições de chamadas efetuadas pelos usuários do sistema, e este tipo de servidor também é muito importante para serviços de tarifação, onde são controlados os gastos com chamadas efetuadas bem como sua duração.

 

Em alguns casos o SIP Proxy está vinculado aos servidores de registro e encaminhamento, usando este método o servidor esta protegido livre de acessos diretos, fazendo com que sejam autenticadas todas as solicitações de chamadas.

 

O SIP é dotado de uma grande variedade de recursos incluindo chamadas em espera, triagem de chamadas, criptografia e autenticação (Tanembaum, 2003).

 

Inter-Asterisk- Exchange Protocol (IAX)

 

O protocolo IAX (Inter-Asterisk- Exchange Protocol) foi desenvolvido pela empresa Digium, que comercializa e desenvolve equipamentos de telefonia tais como hardware e software, e também é a desenvolvedora do software de código aberto de telefonia IP Asterisk.

 

A proposta do protocolo IAX é interligar dois ou mais servidores asterisk, este protocolo não é limitado somente ao Asterisk, mas também pode ser usado para qualquer outro projeto de código aberto em telecomunicações ou em dispositivos que envolvem telefonia IP tal como Softphone, telefones IPs, ATA e gateways. Ele também é muito parecido com o SIP e utiliza uma única porta (4569), para sinalização de canais e comunicação, isso faz com que o IAX seja uma ótima opção para gerir conexões através de firewall e NAT (Madsen, 2011).

 

Este protocolo também pode suportar várias sessões em um único fluxo de dados, usando apenas um único cabeçalho, isso faz com que reduza a sobrecarga de banda, ajudando na capacidade transmissão e processamento, esse protocolo é altamente recomendável para projetos onde é necessária uma grande quantidade de fluxo de ligações entre ramais IPs.

 

Protocolos de Transporte

 

Para que as aplicações pertencentes à camada de aplicação utilizada pelos usuários possam ser transportadas através de um meio físico ou pela internet, como exemplo: enviar ou receber email, realizar uma chamada voz sobre IP utilizando o protocolo de inicialização de sessão SIP, transferir arquivos ou navegar na internet, são necessários protocolos de transporte.

 

Os protocolos de transporte se encarregam de montar os pacotes recebidos da camada de aplicação e encapsula-los, transformando grandes mensagens em segmentos menores, posteriormente esses pacotes serão identificados através de cabeçalhos contendo informações do pacote encapsulado (Forouzan, 2006).

 

Dependendo da necessidade de determinada aplicação podem ser usados protocolos com duas características de conexões, o orientado a conexão e o não orientado a conexão.

 

Protocolo orientado a conexão necessita estabelecer um controle de transmissão de dados durante a comunicação entre dois pontos, protocolos com estas características assumem o controle e monitoram a transmissão dos pacotes, em caso de perdas ou corrupção é solicitado o reenvio dos pacotes ao dispositivo de origem, ou se os pacotes foram transmitidos todos intactos o protocolo orientado a conexão envia uma mensagem de confirmação de envio.

 

Já o comportamento dos protocolos não orientado a conexão caracterizam-se por não estabelecer conexão durante a transmissão dos dados sendo assim não avisam o dispositivo de origem a confirmação de um possível erro no caso de corrupção ou perda de pacotes, ao contrário dos protocolos orientados a conexão ele não garante a entrega dos pacotes tão menos a integridade dos dados nele contido.

 

Os protocolos de transporte mais utilizados o TCP e UDP. A utilização de tais protocolos varia de acordo com a aplicação desejada e o tipo de confiabilidade e resposta rápida na transmissão dos dados da qual se necessita.

 

Protocolo UDP

 

O protocolo User Datagrama Protocol ou UDP pertencente à pilha de protocolos da família TCP/IP, é um protocolo simples e não orientado a conexão. O UDP oferece um meio para as aplicações enviarem datagramas IP encapsulados sem que seja necessário estabelecer uma conexão (Tanembaum, 2003).

 

O protocolo UDP por ser um protocolo não orientado a conexão, não garante a retransmissão no caso de um pacote corrompido ou perdido, ficando pela responsabilidade dos processos dos usuários, por essa razão é um protocolo não confiável.

 

Por conter apenas 8 bytes em seu cabeçalho de informações, o UDP é consideravelmente mais rápido na transmissão se comparado ao TCP, pelo fato de apenas conter em seu cabeçalho informações de porta de origem, porta de destino tamanho da mensagem, bem como falta de estabelecimento de conexão entre o destino e a origem, tudo isso o torna simples e viável para alguns tipos de aplicações.

 

Aplicações de áudio e vídeo tal como VoIP, podem ser perfeitamente servidas pelo protocolo UDP, essas aplicações não necessitam de confiabilidade na entrega dos pacotes tão menos controle do fluxo e estabelecimento de sessão para que os dados sejam entregues, mas sim transmissão de voz ou vídeo em tempo real de forma eficaz.

 

Protocolo RTP e RTCP

 

Com o crescimento e a popularização do uso de multimídia em tempo real através da internet, vídeo, rádio, musica, telefonia IP e vídeo conferência foi criado um protocolo de transporte em tempo real chamado Real-Time Tranport Protocol (RTP).

 

Este protocolo é executado sobre o UDP está vinculado ao programa dos usuários, com ele também não há estabelecimento de sessão na transmissão e tão menos garantia de que os pacotes serão entregues, quando uma aplicação multimídia ou de áudio gera um fluxo, são armazenados na biblioteca do RTP e posteriormente são colocados a um socket para serem transportados. Como ele funciona no espaço do usuário e esta vinculado ao programa aplicativo, certamente parece ser um protocolo de aplicação. Por outro lado, é um protocolo genérico e independente das aplicações que apenas fornecem recursos de transporte, assim também é semelhante a um protocolo de transporte. Talvez a melhor descrição do RTP seja com um protocolo de transporte implementado na camada de aplicação (Tanembaum, 2003).

 

O protocolo Real-Time Transport Control Protocol (RTCP), trabalha em parceria ao RTP, sua função é emitir transmissões em períodos das informações dos participantes de uma sessão como exemplo no caso de uma chamada telefônica IP, neste caso ele controla os fluxos gerados pelo RTP.

 

Protocolo TCP

 

O Transmission Control Protocol (TCP), totalmente orientado a conexão, é o principal e mais utilizado protocolo da internet e foi projetado para fornecer confiabilidade, integridade dos dados e garantia que os pacotes sejam entregues sem perdas. Ele como o UDP também pertence a pilha de protocolos da família TCP/IP, porém sua arquitetura é mais complexa, é amplamente utilizado em aplicações onde usuários necessitam que a integridade das informações e confiabilidade na entrega sejam essenciais.

 

Tanembaum (2003) afirma que, pelo fato da camada IP não oferecer um serviço confiável de transmissão dos datagramas, cabe ao protocolo TCP fornecer a confiabilidade que os usuários desejam.

 

Para o funcionamento do TCP é necessário que os transmissores, tanto origem como destino criem pontos extremos denominados soquetes, estes soquetes contem o endereço de origem e de destino. Para que o processo de comunicação entre as entidades funcione o TCP divide o processo de comunicação em três etapas conhecidas como Three-way Handshake, e significa aperto de mãos em três vias, a solicitação de conexão neste caso a mensagem SYN solicita sincronização, quando o receptor receber a mensagem ele envia outro segmento SYN com um bit de reconhecimento ACK confirmando o recebimento da mensagem, dessa forma é criado um túnel de comunicação. Quando uma das partes optarem por encerrar a conexão é enviada mensagem FIN sinalizando o fim da conexão.

 

O cabeçalho do TCP consiste mais informações do que UDP, nele há 20 bytes contra apenas 8 do UDP, no cabeçalho existe campos com informações sobre porta de origem, porta de destino, endereçamento IP de origem e de destino existe também o campo checksum do qual aumenta a confiabilidade conferindo a integridade dos pacotes, em caso de erro ou perdas, solicitando a retransmissão das informações. O funcionamento TCP é apresentado na figura 14.

 

Figura 14: Comunicação sobre TCP

 

Codificações de Voz

 

Para que a voz humana seja transportada através do meio físico nos sistemas de telecomunicações, ela é codificada, comprimida, e enviada até o destino, onde passa pelo processo de decodificação convertendo sinais digitas em acústicos novamente, o que torna isso possível são o uso dos CODECs codificadores e decodificadores, o objetivo é captar sinais acústicos analógicos gerado pela voz que variam entre 300 Hz e 3 kHz e transformar as vibrações acústicas em sinais digitais com valores binários 0 e 1.

 

Três passos envolvem o processo de digitalização da voz:

  • Amostragem, onde são retiradas amostras dos sinais analógicos gerado pela voz em uma frequência pré-determinada.
  • Quantização, etapa onde é refinado o sinal sonoro.
  • Codificação transforma o sinal quantizado em um sinal binário.

 

O sinal acústico gerado pela voz é transformado em sinais de pulsos analógicos, a frequência da amostragem é de 8 mil amostras por segundo definido pelo teorema de Nyquist onde cada nível corresponde a um código de 8 bits com taxas de consumo de transmissão de 64 kbps. O procedimento mais utilizado em telefonia é o tipo de modulação Pulse Code Modulation (PCM). Exemplo de codec de compressão de voz mais utilizados são G.711, G726, G.728, G729, G723.1 (Cisco, 2013).