JACKSON BARRETO SILVA
Implementação e Gerenciamento da Telefonia no IFBA no Campus de Jequié usando voz sobre IP e Software Livre
Universidade Federal de Pernambuco [email protected] www.cin.ufpe.br/~posgraduacao
RECIFE 2017
Implementação e Gerenciamento da Telefonia no IFBA no Campus de Jequié usando Voz sobre IP e Software Livre
Dissertação de mestrado apresentado à Coordenação da Pós-Graduação em Ciências da Computação do Centro de Informática, como parte dos requisitos para obtenção do título de Mestre em ciências da computação do mestrado profissional com ênfase em redes de computadores.
Orientador: Prof. Dr. Rafael Dueire Lins
Recife
2017
Jackson Barreto Silva
Implementação e Gerenciamento da Telefonia no IFBA no Campus de Jequié usando Voz sobre IP e Software Livre
Dissertação apresentada ao Programa de Pós-Graduação em Ciência da Computação da Universidade Federal de Pernambuco, como requisito parcial para a obtenção do título de Mestre Profissional em 31 de Maio de 2017.
Aprovado em: 31/05/2017.
BANCA EXAMINADORA
__________________________________________ Prof. José Augusto Suruagy Monteiro
Centro de Informática / UFPE
__________________________________________ Prof. Obionor de Oliveira Nóbrega
Universidade Federal Rural de Pernambuco
__________________________________________ Prof. Rafael Dueire Lins
Centro de Informática / UFPE (Orientador)
AGRADECIMENTOS
Muito obrigado a meus Amigos e Familiares e principalmente a Deus por ter-me dado condições e força para a realização deste trabalho.
Muito obrigado a todos os professores do Centro de Informática da UFPE que contribuíram para meus conhecimentos e principalmente ao meu Orientador Prof. Dr. Rafael Dueire Lins e ao Prof. Dr. Jose Augusto Suruagy Monteiro pela paciência e orientações prestadas.
Muito obrigado aos meus colegas da turma pela motivação e contribuições importantes para o desenvolvimento deste trabalho.
Muito obrigado a todos que contribuíram de alguma forma para a realização deste trabalho.
RESUMO
Reduzir custos telefônicos através da utilização da tecnologia de voz sobre redes IP (VoIP) e adoção de software livre é uma estratégia utilizada por milhares de organizações públicas e privadas em todo o mundo. Nesta dissertação é proposta a utilização de uma solução de PBX-IP baseada em software livre, com o objetivo de economizar na aquisição de produtos proprietários, com a utilização da tecnologia de voz sobre o protocolo IP para redução dos gastos com ligações telefônicas internas e externas, pelo Instituto Federal de Educação Tecnológica da Bahia (IFBA) no Campus de Jequié. As ferramentas apresentadas para as implementações e o gerenciamento de uma central PBX-IP foram o Fone@RNP por ser desenvolvida pela Rede Nacional de Ensino e Pesquisa (RNP) para as instituições públicas brasileira, o SNEP por ser uma distribuição genuinamente brasileira e o Elastix pelo fato de ser a distribuição mais utilizada mundialmente. Relações destas tecnologias são definidas, apresentadas, analisadas e avaliadas. Todas as ferramentas são baseadas em Asterisk, porém com interface gráfica para o gerenciamento. A solução proposta, após todo o estudo de caso, é a utilização do serviço Fone@RNP sem a necessidade de aderir à infraestrutura do mesmo, com a utilização de aplicativos gratuitos de terceiro em sua substituição, pelo fato do custo da infraestrutura ser considerado elevado. Passo a passo da instalação destes aplicativos são apresentados, bem como descrições dos processos levantados, analisados e avaliados, contribuindo para a infraestrutura da instituição.
ABSTRACT
Reducing telephone costs through the use of voice over IP (VoIP) technology and adoption of free software is a strategy used by thousands of public and private organizations around the world. This M.Sc. dissertation proposes the use of a free software-based PBX-IP solution with the objective of saving on the acquisition of proprietary products, plus the use of voice technology over the IP protocol to reduce costs with internal and external telephone calls at the Federal Institute of Technological Education of Bahia (IFBA) in the Jequié Campus. The tools presented for the implementation and management of a PBX-IP exchange are the Fone@RNP, developed by the Rede Nacional de Ensino e Pesquisas (RNP) for Brazilian public institutions, SNEP, a genuinely Brazilian distribution, and Elastix, the most used distribution worldwide. Such technologies are presented, analyzed and assessed. All such tools are Asterisk based, but with a GUI for management. The solution proposed after the whole case study is the use of the Fone@RNP service without the need to adhere to its complete infrastructure, with the use of free third party applications because the cost of the infrastructure is considered high. Their step-by-step installation are presented as well as the descriptions of the processes compiled, analyzed, and evaluated, contributing to the improvement of the IFBA infrastructure.
LISTA DE SIGLAS
ACELP - Algebraic-Code-Excited Linear Prediction ADPCM - Adaptive Differential Pulse Code Modulation ADSL - Asymmetric Digital Subscriber Line
AGI - Asterisk Gateway Interface
API - Application Programming Interface ATA - Adaptador para Telefone Analógico B2B - Business to Business
BSD - Berkeley Software Distribution CDR – Call Detail Record
CODEC - COdificador/DECodificador
CS-ACELP - Conjugate-Structure Algebraic-Code-Excited Linear Prediction DAHDI - Digium Asterisk Hardware Device Interface
DHCP - Dynamic Host Configuration Protocol DNS - Domain Name System
DOS - Disk Operating System DSP - Digital Signal Processor FXO – Foreign eXchange Office FXS – Foreign eXchange Station GK - Gatekeeper
GSM – Global System for Mobile comunications GUI - Interface Gráfica de Usuário
GW - Gateway
GWT - Gateway Transparent
HTTP – HyperText Transfer Protocol IAX – Inter Asterisk eXchange
IAX2 - Inter Asterisk eXchange verson 2 IETF - Internet Engineering Task Force
IFBA – Instituto Federal da Bahia I/O – input/output
IP – Internet Protocol
ISA - Industry Standard Architeture
ISDN - Integrated Services Digital Network
ISO - International Organization for Standardization ITU-T - Telecommunication Standardization Secto IVR - Interactive Voice Response
LAN - Local Área Network
LD-CELP - Low Delay - Code Excited Linear Prediction LGPL - Library General Public License
LTS - Long Term Evolution MAC - Media Access Control MCU - Multiponto Control Unit
MGCP - Media Gateway Control Protocol MIME - Multipurpose Internet Mail Extensions MOS - Mean Opinion Score
MP-MLQ - Multi-Pulse Maximum Likelihood Quantization MSN - Microsoft Service Network
NAT - Network Address Translation OSI - Open Systems Interconnection P2P - Peer-To-Peer
PABX – Private Automatic Branch eXchange PAT - Parcela Adicional de Transição
PBX - Private Branch Exchange PC - Personal Computer
PCM – Pulse Code Modulation PGP - Pretty Good Privacy PHP - Hypertext Preprocessor PPP - Point-to-Point Protocol
PSTN – Public Switched Telephone Network QoS – Quality of Service
RAM - Random Access Memory RFC - Request for Comments
RNP – Rede Nacional de Ensino e Pesquisa RSVP - Resource ReSerVation Protocol
RTCP – Real Time Control Protocol RTFC - Rede de Telefonia Fixa Comutada RTP – Real Time Protocol
RTPC - Rede de Telefonia Pública Comutada SATA - Serial Advanced Technology Attachment SDP - Session Description Protocol
SI – Sistema de Informação SIP – Session Initiation Protocol SL - Software Livre
SLR – SIP Local Router
SMTP – Simple Mail Transfer Protocol SO - Sistema Operacional
SRC – SIP Router Center
TCP – Transmission Control Protocol TDM - Time Division Multiplexing TI – Tecnologia da Informação UA – User Agent
UAC – User Agent Client UAS – User Agent Server
UDP – User Datagram Protocol URA – Unidade de Resposta Audível VoIP – Voice over Internet Protocol
WAN - Wide Area Network WWW - World Wide Web
LISTA DE FIGURAS
Figura 2.1 - Lógica de uma chamada SIP... 23
Figura 2.2 - Conexão entre dois servidores Asterisk via IAX ... 26
Figura 2.3 - Arquitetura do Asterisk ... 33
Figura 3.1 - Diagrama da rede lógica do campus IFBA Jequié ... 34
Figura 3.2 - Arquitetura do serviço Fone@RNP ... 36
Figura 3.3 - Arquitetura detalhada do Fone@RNP ... 37
Figura 3.4 - (SLR+PBX-IP+GWT) ... 39
Figura 3.5 - Adesão – GWT ... 40
Figura 3.6 - Adesão – SRL ... 40
Figura 3.7 - Adesão – SRL sem PBX-IP legado ... 41
Figura 3.8 - Adesão personalizada (E1 + GSM) ... 42
Figura 3.9 - Processo inicial de instalação do SNEP-livre ... 43
Figura 3.10 - Processo de seleção de Layout de teclado ... 44
Figura 3.11 - Processo de Particionamento do disco ... 44
Figura 3.12 - Processo de configuração de usuário e senha “root”. ... 45
Figura 3.13 - Processo de configuração de usuário comum ... 45
Figura 3.14 - Processo de configuração de senha para usuário comum ... 46
Figura 3.16 - Logando com usuário jackson no SNEP ... 47
Figura 3.17 - Verificando endereço IP do SNEP ... 47
Figura 3.18 - Cadastro de registro de licença do SNEP ... 48
Figura 3.19 - Colar código de registro de licença do SNEP ... 48
Figura 3.20 - Sistema SNEP registrado e concluído ... 49
Figura 3.21 - Criação dos ramais ... 49
Figura 3.22 - Criação de múltiplos ramais ... 50
Figura 3.23 - Criação do tronco IAX2 ... 50
Figura 3.24 - Criação rota de saída ... 51
Figura 3.25 - Rotas de saída ... 51
Figura 3.26 - Registrando ramal da atcom no servidor SNEP ... 52
Figura 3.27 - Registrando ramal da intelbras no servidor SNEP ... 52
Figura 3.28 - Tela do SNEP regras de negócios ... 52
Figura 3.29 - Tela inicial de instalação do elastix ... 55
Figura 3.30 - Processo de seleção de Layout de teclado ... 55
Figura 3.31 - Processo de Particionamento do disco ... 56
Figura 3.32 - Configuração da interface de rede ... 56
Figura 3.33 - Solicitação do nome do host ... 57
Figura 3.34 - Definição de senha do usuário root ... 57
Figura 3.35 - Tela inicial do Elastix ... 58
Figura 3.36 - Criação dos ramais no elastix ... 58
Figura 3.38 - Criação do tronco ZAP DAHDI ... 59
Figura 3.39 - Criação do tronco IAX2 (parte 1) ... 60
Figura 3.40 - Criação do tronco IAX2 (parte 2) ... 60
Figura 3.41 - Criação rota de saída – Campus Jacobina ... 61
Figura 3.42 - Configuração de rede do Telefone IP ... 62
Figura 3.43 - Registrando o Telefone IP no servidor VoIP elastix ... 63
Figura 3.44 - Tela do Elastix gerenciamento em tempo real... 63
Figura 3.45 - Arquitetura Lógica do serviço Fone@RNP IFBA - Jequié ... 65
Figura 3.46 - Configuração do elastix para integração com Fone@RNP ... 66
Figura 3.47 - Site da comunidade Issabel... 66
Figura 3.48 - Tráfego sem ligação VoIP ... 67
LISTA DE TABELA
Tabela 1.1 - Levantamentos de custos ... 21
Tabela 1.2 - Aplicativos livres e gratuitos ... 22
Tabela 2.1 - Scores MOS de alguns CODECs ... 30
Tabela 3.1 - Teste de funcionalidade ... 73
SUMÁRIO 1 INTRODUÇÃO ... 18 1.1 Motivação.. ... 19 1.2 Objetivo do Trabalho ... 19 1.3 Estado da Arte ... 20 1.4 Software Livre ... 23 1.5 Organização do Trabalho ... 25
2 CONCEITOS DE TELEFONIA CONVENCIONAL E VoIP ... 26
2.1 RPTC ... 26 2.2 VoIP ... 27 2.2.1 H.323 ... 31 2.2.2 SIP ... 31 2.2.3 IAX ... 34 2.3. Ferramentas e Serviços ... 36 2.3.1 Asterisk ... 36 2.3.2 O projeto ZAPATA ... 40 2.3.3 Características do Asterisk ... 41 2.4 Considerações Finais. ... 42 3 IMPLANTAÇÃO E GERENCIAMENTO ... 43 3.1 Ambiente de Implantação ... 43 3.2 Fone@RNP ... 44 3.3 SNEP ... 51
3.3.1 Processo de Instalação do SNEP ... 52
3.3.2 Gerenciamento do SNEP ... 61
3.4.1 Processo de Instalação do Elastix ... 63
3.4.2 Gerenciamento do Elastix ... 71
3.5 Resultados das Avaliações ... 72
3.6 Análises da Solução Adotada ... 74
3.7 Considerações Finais ... 77
4 CONSIDERAÇÕES FINAIS ... 78
1 INTRODUÇÃO
A tecnologia de Voz sobre IP (VoIP, do inglês Voice over IP) vem se expandindo nos últimos anos entre os usuários domésticos e coorporativos, tendo em vista os recursos oferecidos pela rede de dados do protocolo Internet (IP), com o tráfego de diversos tipos de mídias (áudio, imagem, vídeo e dados). Com o avanço da tecnologia VoIP houve uma mudança de comportamento da população, passando a ter mais acesso à comunicação com um custo mais baixo. A alta sofisticação da tecnologia VoIP é transparente para a maioria dos usuários que utilizam o sistema através dos diversos aplicativos e aparelhos disponíveis no mercado, como os aplicativos para smartphones, celulares, telefones IP e outros. A alta sofisticação dessa tecnologia em relação à telefonia convencional está na conversão do sinal de analógico que é utilizado na telefonia convencional para digital que é utilizado na comunicação VoIP. Essa conversão é realizada através de sofisticados codificadores e decodificadores (DUEIRE LINS, Rafael; CONTENTE, Douglas; CARLOS, Vitor, 2011).
Há diversos aplicativos que utilizam a tecnologia VoIP. Um dos pioneiros no Brasil a utilizar o VoIP sobre redes P2P (peer-to-peer) foi o sistema proprietário
Skype em 2003, responsável pela grande popularização da telefonia IP. Outros
aplicativos que utilizam voz sobre as redes de dados IP são: MSN, GoogleTalk (hoje substituído pelo Google Hangout), Whatsapp, dentre outros que permitem chamadas de voz e vídeo gratuitas, desde que haja infraestrutura de rede disponível. Há mais de uma década que muitos programas usam a tecnologia VoIP para implementar funcionalidades das centrais de telefonia tradicional, entre os quais pode-se destacar o Asterisk (DUEIRE LINS, Rafael; CONTENTE, Douglas; CARLOS, Vitor, 2011).
Este trabalho trata da implementação e gerenciamento da telefonia no IFBA no Campus de Jequié usando Voz sobre IP e Software Livre. O Asterisk será a plataforma PBX-IP, utilizando as ferramentas gráficas Elastix, SNEP e Fone@RNP para o gerenciamento do Asterisk. Tais ferramentas são aqui descritas e analisadas.
1.1 Motivação
O papel da tecnologia de informação - TI - nas organizações tem assumido uma importância jamais vista na história da humanidade. A questão que se coloca como foco deste estudo consiste em analisar a importância da estratégia utilizada pelas instituições no contexto educacional para redução dos custos operacionais, ainda mais se considerarmos o contexto atual de instituições públicas e privadas. Nas instituições públicas os orçamentos são insuficientes para atender de forma adequada as necessidades operacionais. Em contrapartida, nas instituições privadas a concorrência é alta sendo imperativa a necessidade por uma gestão otimizada de recursos, sendo essa uma exigência por parte das instituições de ensino que pretendem permanecer no seu negócio (OLIVEIRA e CASTRO, 2006). Esta dissertação tem como foco instituições públicas de ensino, em particular o Instituto Federal de Educação Tecnológica da Bahia (IFBA) no Campus de Jequié.
A escolha de software livre pode trazer redução dos custos com TI, sendo de particular importância em instituições públicas de ensino no Brasil, uma vez que os recursos financeiros delas são escassos e normalmente há cortes nos orçamentos por parte dos Governos. É pertinente que se pergunte como se deve desenvolver um projeto para que se consiga realmente aplicar da melhor forma possível todos os benefícios encontrados no software livre.
Esta dissertação visa não só diminuir os custos operacionais de telefonia no IFBA-Jequié, mas também fornecer diretrizes para outros Institutos Federais gerando material de apoio à decisão, na escolha de software livre, para o gerenciamento e redução dos seus custos com telefonia.
1.2 Objetivo do Trabalho
O principal objetivo desse trabalho é realizar um estudo dos principais softwares PBX-IP de interface web que funciona sobre a plataforma Asterisk e implementar no Instituto Federal de Educação de Jequié para substituir uma central
PABX convencional com software livre de forma eficaz e eficiente com desempenho satisfatório na qualidade dos serviços.
Todas as técnicas apresentadas neste trabalho serão avaliadas através de experimentos práticos com o estudo de caso, realizando as instalações e configurações dos aplicativos propostos no ambiente de trabalho para que haja interoperabilidade dos mesmos.
Os Aplicativos PBX-IP propostos para as análises serão o Elastix, SNEP e Fone@RNP, tendo como objetivo Geral implementar no IFBA - Jequié ferramentas livres, que proporcionem redução de custos e gerenciamento nas ligação de forma satisfatória e eficaz, substituindo completamente ou reduzindo drasticamente os custos da telefonia tradicional e como objetivos específicos verificar qual a interface mais amigável para o usuário realizar o gerenciamento do Asterisk, qual a solução requer menor custo financeiro e qual a infraestrutura menos complexa para implementação dessa ferramenta.
1.3 Estado da Arte
Em abril de 2014, Diego Guacho, M., Rivadeneira, F.M. descrevem um projeto que propõe a implementação de laboratórios de computação em centros educacionais, incentivando a economia de custos de um ambiente. Esse trabalho propõe o uso de ferramentas de computação e serviços desenvolvidos em software livre no setor da educação. Os requisitos técnicos para implementações desses laboratórios são mínimos, permitindo a reutilização de computadores antigos ou novos terminais, mas com baixo consumo de energia, sem afetar o desempenho dos laboratórios. Nesse mesmo artigo, os autores fazem um levantamento dos custos que teriam com licenças caso a solução aplicada fosse através de softwares proprietários, conforme Tabela 1.1, esse custo inicial poderia ser reduzido com as licenças através de software livre.
Tabela 1.1 - Levantamentos de custos. Fonte: (Diego Guacho, M., Rivadeneira, F.M., 2014)
TABELA DE CUSTOS INICIAIS DO PROJETO
ITENS R$
Custo com Hardware 4.268,82
Custo com Software 130,00
Licença de 1 Microsoft Office – Custo estimado de instalação
92,21
Custo com Configurações de 20 terminais 400,00
Custo Inicial Total --- 4.891,03
Em (Silver, 2010) existe a defesa do gerenciamento e monitoramento de uma infraestrutura de redes de computadores com software livre, descrevendo a implementação de um sistema de monitoramento usando um pacote de software de código fonte aberto para melhorar a disponibilidade de serviços e reduzir o tempo de resposta quando problemas ocorrem. Tal referência, apresenta um breve panorama da literatura disponível no monitoramento de sistemas de biblioteca e, em seguida descreve a implementação de Nagios, um software de código aberto de monitoramento de rede, para monitorar uma biblioteca regional.
Também em maio de 2010 foi publicado o artigo (Moretti e Crnkovic, 2010), que tem como objetivo investigar o processo de migração de softwares proprietários para softwares livres – SLs em um sistema de informação – SI em uma pequena empresa, no caso, uma instituição de ensino médio. O SI é um recurso fundamental e independe do porte ou ramo de atividade da empresa. Seu bom gerenciamento pode ser capaz de potencializar processos, gerar conhecimento e criar vantagens competitivas importantes. Contudo, o alto custo da aquisição de softwares proprietários é um grande obstáculo para sua implantação abrindo uma boa oportunidade de mercado para o SL, opção gratuita e com bom desempenho. Para investigar o processo de migração para SLs foi conduzido estudo de caso em uma cooperativa de ensino médio na qual se pode observar o crescimento da importância do SI em sua operação. Na empresa em questão pode-se identificar, após a implantação dos SLs, um aumento da sinergia interdepartamental, maior dinamismo nas atividades por conta da eficiente obtenção das informações, e maior confiabilidade no SI no que se refere à segurança. No que se refere aos SLs
pode-se obpode-servar claramente sua competitividade frente aos softwares proprietários. Na época da investigação os autores fizeram um levantamento dos softwares livres que também são gratuitos (tabela – 1.2), e chama atenção da diferença entre software livre e software gratuitos sendo que uma forma de diferenciação entre softwares diz respeito à forma como eles são desenvolvidos e distribuídos.
Tabela 1.2 - Aplicativos livres e gratuitos. Fonte: (Moretti e Crnkovic, 2010)
Categoria Nome do software Onde encontrar na Internet
Sistema Operacional
Conectiva Linux www.conectiva.com.br
Debian www.debian.org
Fedora Red Hat www.fedora.redhat.com
FreeBSD www.freebsd.org
GNU/Linux www.linux.org
Kurumin www.guiadohardware.net
Mandrake www.mandrake.com
OpenBSD www.openbsd.org
Red Hat www.redhat.org
SuSE Linux www.suselinux.org
Servidor de Internet Apache www.apache.org
Pacote de Escritório
Abiword www.abiword.org
Koffice www.kde.org
OpenOffice www.openoffice.org
Programa Gráfico GIMP www.gimp.org
Navegadores Mozilla www.mozilla.org
Opera www.opera.com Linguagem de Programação Perl www.perl.org PHP www.php.net Cliente de e-mail Evolution www.evolution.com Kmail www.kde.org
Mozilla mail www.mozilla.org
Serviço de rede SAMBA www.samba.org
Porém, com a evolução e o dinamismo que ocorre com os softwares, alguns desses referenciados na tabela 1.2, não estão mais disponíveis ou já foram implementados de forma mais eficiente em outros produtos.
1.4 Software Livre
Conhecido como Software Livre ou até mesmo do inglês como Free Software, segundo a interpretação de software livre feita pela Free Software Foundation, é qualquer programa de computador que pode ser usado, copiado, estudado, modificado e redistribuído com algumas alterações. Levando em conta que a forma usual de um software ser divulgado e liberado é sendo conjugado por uma permissão de software livre (como possuem a GPL ou a BSD), e com o ensejo do seu código-fonte (Roberts, 2016).
Software Livre define-se pela simultaneidade de quatro vertentes de liberação para os usuários do software, feitas pela Free Software Foundation. As quatro vertentes à liberdade mínima direcionada ao software livre são:
1. O poder de realizar o programa, para indefinido propósito;
2. A liberdade de compreender a funcionalidades do programa e utilizá-lo para quaisquer necessidades;
3. Obtenção do código-fonte é um importante e indispensável pré-requisito nesta lista de liberdades;
4. A capacidade de ajudar alheios produzindo cópias do mesmo.
Um programa que é considerado como software livre deve fazer com que sejam seguidas todas as liberdades listadas. Sendo assim, um usuário deve ser livre para redistribuir cópias, com ou sem alterações no seu sistema, independente de cobrar ou não uma taxa pela distribuição, com indistinção de pessoa ou lugar. Ser totalmente livre para elaborar esses valores, demonstra que não se tem que pedir ou pagar pela aprovação, quando estiver tendo posse do programa (Rollings, 2012).
O usuário tem também por direito a liberdade de elaborar alterações e utiliza-las privativamente no trabalho ou até mesmo no lazer, sem necessidade de mencionar que elas existem. Caso o usuário publique as alterações realizadas, o mesmo não se tornará obrigado a avisar nada ou a ninguém. A liberdade de usar um software tem como significado a liberdade para qualquer tipo de pessoa física ou jurídica usar o programa independente do tipo de sistema computacional, para o tipo de trabalho ou atividade que bem desejar, sem que se torne necessário anunciar ao
desenvolvedor ou a qualquer outro cargo em especial. A liberdade de redistribuir cópias sem obrigação de incluir formas binárias do programa, assim como o código-fonte, para as versões originais e para as alteradas. De modo que a liberdade de fazer modificações, e de publicar versões aperfeiçoadas, tenha significado, deve-se ter acesso ao código-fonte do programa. Assim sendo, a permissão ao código-fonte é uma condição necessária ao software livre. Para que as liberdades se tornem reais, elas devem ser irrevogáveis desde que o usuário não cometa algo errado; se o desenvolvedor do software revogar a licença, mesmo que o usuário não tenha dado pretexto, o software não é considerado livre (Stroupstrup, 1997).
A distribuição do software livre é uma distribuição pelo compartilhamento do conhecimento tecnológico. Seus “zeladores” são uma enorme quantidade de estudantes, cientistas, diferentes combatentes pela liberdade e as forças político-culturais que auxiliam a disseminação mais justa dos benefícios da era da informatização. Os defensores do software livre consideram como opositoras as grandes empresas que crescem exclusivamente de um paradigma econômico fundamentado na exploração de licenças de uso de software e do controle do monopólio das senhas essenciais para programas exclusivos a computadores.
Grande parte dos softwares livres têm páginas na Internet para chamar a atenção de desenvolvedores que trabalham na rede mundial de computadores (Colcher, 2005).
É importante diferenciar as categorias: software aberto, software gratuito e software livre. Existem muitos softwares gratuitos que são proprietários. Quando um software é distribuído gratuitamente, isso não significa que ele seja um software livre. Como exemplos são os programas PGP, Real Player, Adobe Acrobat Reader, entre outros. Para ser um “software livre” tem que levar em conta a questão de liberdade, e jamais a de preço. Para compreender o que realmente significa, deve-se focar em “liberdade de expressão”, “software livre” se enfoca a liberdade que os usuários possuem em executar, copiar, distribuir, estudar, modificar e aperfeiçoar o devido software (Colcher, 2005).
A devida regra não entra em conflito com as liberdades; na verdade, ela as protege. Portanto, um usuário pode ter comprado o direito para receber cópias do software GNU, ou mesmo pode ter conseguido cópias sem custo algum. Porém, independentemente de como este obteve o seu software, sempre terá a liberdade de copiar e modificar o software, ou mesmo até de vender essas cópias para outrem. Deve-se lembrar que quando se fala de “software livre” não significa que está se falando de “software não-comercial” são coisas distintas e que requerem limites e regras diferenciadas (Colcher, 2005).
Olhando por um lado econômico, a adoção do software livre capacita a redução drástica do envio de royalties mediante pagamento de licenças de software, produzindo assim maior sustentabilidade do processo de inclusão digital de uma sociedade e de informatização e modernização de empresas e instituições (Colcher, 2005).
1.5 Organização desta dissertação
Esta dissertação está dividida em quatro capítulos. O capítulo 1, esta Introdução, apresenta as considerações iniciais do trabalho, a motivação, os objetivos específicos e gerais do trabalho, o estado da arte sobre a utilização de software livre e a estrutura geral de organização do trabalho.
O capítulo 2 descreve os conceitos básicos de VoIP e Asterisk, são apresentadas também as definições e histórico sobre a tecnologia de PBX-IP Asterisk.
No capítulo 3 são implantadas e analisadas as ferramentas de interface web para gerenciamento de uma central PBX-IP como o SNEP, Elastix e o Fone@RNP, e apresentado o resultado das análises
No capítulo 4 são apresentadas as conclusões sobre o trabalho e as sugestões para trabalhos futuros.
2 CONCEITOS DE TELEFONIA CONVENCIONAL E VoIP
Este capítulo trata de conceitos básicos de algumas tecnologias utilizadas na telefonia convencional e da telefonia de voz sobre o protocolo IP. Definindo algumas características importantes para melhor compreensão desta dissertação.
2.1 Rede Pública de Telefonia Comutada (RPTC)
A sigla RPTC que significa “rede pública de telefonia comutada” (originada do inglês, public switched telephone network ou PSTN) é o termo utilizado para definir a rede telefônica mundial comutada do serviço telefônico convencional. Sendo gerenciada normalmente pelas operadoras de serviços telefônicos. No início foi planejada para prestar seus serviços como uma rede de linhas fixas analógicas, porém atualmente compreendem também as linhas digitais e os dispositivos móveis conhecidos como os telefones celulares (Colcher, 2005).
A rede de telefonia tradicional RTPC é um sistema de comunicação estabilizado, possibilitando que os usuários façam chamadas de áudio na maior parte do mundo civilizado. Essa rede foi arquitetada e estabelecida de modo a trazer toda sua inteligência para o interior da rede (centrais telefônicas) deixando os seus terminais (aparelhos telefônicos) sem qualquer função em relação ao gerenciamento da chamada telefônica. De modo que, o sistema evoluiu vagarosamente. Todo o planejamento de controle do sistema é realizado de uma forma par-a-par e híbrida, ou seja, ainda são imprescindíveis servidores centrais para realizar o controle das chamadas e para o gerenciamento da sessão estabelecida (DUEIRE LINS, Rafael;
CONTENTE, Douglas; CARLOS, Vitor, 2011).
A rede de telefonia pública comutada existe desde o começo do século XX. Um sistema de telefonia fixa é composto por centrais de comutação telefônica, terminais de serviço telefônico, rede de cabos de interligação entre os assinantes do serviço de telefonia pública e a central pública de comutação telefônica e por entroncamentos de transmissão entre as várias centrais telefônicas.
As centrais telefônicas são conhecidas como central PABX, que significa em inglês Private Automatic Branch Exchange, traduzido para o português fica “Troca automática de ramais privados”, sendo assim concluímos que a comutação entre transferência das ligações internas e externas, acontece sem a intervenção de um operador ou da telefonista.
A distribuição é também conhecida como rede primária, é uma rede composta por cabos de alta capacidade, conhecidos como cabo primário, que levam as facilidades do distribuidor geral até pontos de distribuição denominados de Armários de Distribuição. Um cabo primário pode alimentar vários armários de distribuição. Em geral, ficam instalados 600 pares primários em cada armário (COMER, 2016).
Rede de acesso também conhecida como rede secundária, ela começa no armário de distribuição e é terminada na casa do cliente. Geralmente o seu trajeto é aéreo. Composta de cabos de menor capacidade, geralmente de 200 pares, conhecidos por cabos secundários. A rede de acesso pulveriza o atendimento até os assinantes (COMER, 2016).
2.2 VoIP
Uma das características de um sistema de comunicação é permitir que uma mensagem originada por uma fonte de informação possa ser entregue corretamente em seu destino. As redes de computadores segue um modelo de referência com procedimentos e regras definidas e divididas em camadas com o dever de executar suas funções de forma adequada, assim também, ocorre com os sistemas de telefonia, que se caracterizam pela necessidade de inicializar, estabelecer, controlar e encerrar sessões entre usuários. Esse conjunto de procedimentos é chamado sinalização (DUEIRE LINS, Rafael; CONTENTE, Douglas; CARLOS, Vitor, 2011).
A telefonia via protocolo IP, Voice Over Internet Protocol, Voz sobre IP, ou simplesmente VoIP é uma tecnologia que permite a transmissão de voz por pacotes IP, possibilitando a realização de chamadas telefônicas pela rede de computadores. A mesma transforma nossas conversas telefônicas analógicas em pequenos pacotes de dados digitais e os envia pela rede IP, essa rede pode ser uma rede local (LAN)
ou uma rede de longa distância (WAN), entre outras distribuições geográficas de redes sobre o protocolo IP (Willrich, 2016).
Além da praticidade, ocorre uma diminuição em torno de 70%, segundo a RNP em seu manual de apresentação do Fone@RNP, no custo das ligações, mesmo que se esteja falando por horas com uma pessoa localizada no outro lado do mundo. Por isso sua popularidade cresceu tanto e tão rapidamente, incluindo entre as empresas que utilizam para aperfeiçoarem e expandir os recursos de seus serviços telefônicos de maneira econômica e eficiente
Para efetuar a comunicação através de voz sobre IP também podem ser utilizados os telefones IP, que são aparelhos telefônicos reais que são diretamente ligados à Internet ou rede local e que processam a comunicação e tradução dos pacotes em voz sem utilizar o computador. Existem também adaptadores (ATAs) que permitem o uso de seu aparelho telefônico convencional transformando o mesmo em um telefone IP. E, por fim, Gateways, que são aparelhos especiais geralmente utilizados para conectar os sistemas telefônicos (PABX) das empresas à Internet, transformando os ramais e extensões em Telefones IP.
A rede no qual os pacotes VoIP trafegam é uma rede IP, que não sabe o que é voz, ela apenas foi projetada para levar pacotes de dados de uma ponta à outra com a maior agilidade. Porém o conteúdo dos pacotes só é conhecido pelas aplicações que os geraram ou irá tratá-los.
Cabe aos elementos da rede (switches, hubs, interface de VoIP, roteadores, etc.) conduzir os pacotes ao destino, para que possam ser “reconvertidos” para voz. Todos esses procedimentos são transparentes aos usuários do sistema de telefonia. Segundo (Soares; Freire, 2002), “As técnicas empregadas para enviar informações de um ponto VoIP a outro podem ser as mais variadas (Frame Relay
2-3 0SI, ADSL, PPP, etc.) e meios físicos (par metálico, rádio, fibra ótica, etc.),” porém
sempre utilizando o protocolo IP. Para que ocorra o funcionamento na transmissão de voz, o VoIP captura a voz, ainda na forma analógica e a codifica em pacotes de dados (digitais), que podem ser enviados por qualquer rede TCP/IP (Transport
Internet. Assim que os pacotes chegam ao destino, são decodificados em sinais analógicos e transmitidos a um meio no qual seja possível ouvir o som (Colcher, 2005).
Foi necessário investir em qualidade de serviço (QoS - Quality of Service) e uma das soluções é o aumento da largura de banda para transmissão e recepção de dados. E como o acesso à Internet em banda larga é cada vez mais comum, o VoIP passou a ser mais utilizado. Porém, apenas mais velocidade não é o bastante. Por isso, surgiram outras soluções, como o protocolo RTP (Real Time Protocol), que, basicamente, faz com que os pacotes sejam recebidos na mesma ordem de envio. O RTP "ordena" os pacotes de dados, possibilitando que a transmissão de dados em tempo real. No caso de algum pacote se atrasar, o RTP cria uma interpolação entre o "intervalo" deixado pelo pacote e este não é entregue (DUEIRE LINS, Rafael; CONTENTE, Douglas; CARLOS, Vitor, 2011).
O atraso de pacotes pode ocorrer por vários motivos, como o congestionamento dos buffers nos equipamentos de transmissão da rede, também porque eles podem seguir caminhos diferentes para chegar ao destino. Se você estiver transmitindo um arquivo isso não significa um problema, já que seus pacotes são "encaixados" no destinatário. Porém com voz e vídeo em tempo real, isso nem sempre acontece.
Além do RTP, existe o protocolo de controle próprio chamado RTCP (RTP
Control Protocol) que cuida da sua sincronização, controle e interface com o usuário
e que também é definido na RFC 1889. Um canal RTCP é aberto sempre que se abre um canal RTP. A RFC 1889 define que o RTP utilize sempre uma porta par e o RTCP a porta ímpar imediatamente superior à que foi alocada para o RTP. Geralmente são alocadas as portas 5004 e 5005 para o RTP e o RTCP, respectivamente. O RCTP é baseado na transmissão periódica de pacotes de controle entre os participantes de uma sessão, através do mesmo procedimento utilizado para a transmissão de pacotes de dados. A característica principal do RTCP é oferecer feedback sobre a qualidade da comunicação, permitindo a realização de codificação adaptativa e dos controles de fluxo e congestionamento, controlando a taxa de transmissão dos participantes de modo a tornar o sistema
altamente escalável (DUEIRE LINS, Rafael; CONTENTE, Douglas; CARLOS, Vitor, 2011).
.
Por ainda necessitar por melhorias, a IETF (Internet Engineering Task Force), entidade responsável pelo RTP e pelo RTCP, sugeriu a aplicação do protocolo RSVP (Resource Reservation Protocol), que tem como principal função alocar parte da banda disponível para a transmissão de voz. Existem ainda os codificadores e decodificadores (codecs), que são protocolos que somam mais funcionalidades e maior qualidade à comunicação. Entre eles estão o G.711, o G.722, o G.723, G.726, o G.727, G.729 entre outros. O que os diferencia são os algoritmos usados, a média de atraso, a taxa de bits e principalmente a qualidade da voz. Cada CODEC provê certa qualidade de voz. Uma medida comum usada para determinar a qualidade do som produzido pelos CODECs específicos é o MOS (Mean Opinion Score). Com o uso do MOS, uma ampla faixa de ouvintes julgam a qualidade de uma amostra de voz (correspondendo a um CODEC particular) numa escala de 1 a 5, quanto mais próximo do 5 o CODEC é considerado melhor. A partir desses resultados, é calculada a média dos scores para atribuir o MOS para aquela amostra, veja tabela 2.1 com alguns métodos de compressão, taxa de transferência, MOS score e atraso (DUEIRE LINS, Rafael; CONTENTE, Douglas; CARLOS, Vitor, 2011).
Tabela 2.1 - Scores MOS de alguns CODECs Fonte: [CISCO-CODEC2]
Método de Compressão Taxa (kbit/s) MOS Score Atraso(ms)
G.711 PCM 64 4,1 0,75 G.726 ADPCM 32 3,85 1 G.728 LD-CELP 16 3,61 3 para 5 G.729 CS-ACELP 8 3,92 10 G.729 x 2 Encodings 8 3,27 10 G.729 x 3 Encodings 8 2,68 10 G.729ª CS-ACELP 8 3,7 10 G.723.1 MP-MLQ 6,3 3,9 30 G.723.1 ACELP 5,3 3,65 30
2.2.1 H.323
O padrão H.323 é parte da família de recomendações ITU-T
(International Telecommunication Union - Telecommunication Standardization Sector) H.32x, que pertence à série H da ITU-T, e que trata de "Sistemas
Audiovisuais e Multimídia". A recomendação H.323 tem o objetivo de especificar sistemas de comunicação multimídia em redes baseadas em pacotes. Além disso, estabelece padrões para codificação e decodificação de fluxos de dados de áudio e vídeo. O padrão H.323 especifica quatro tipos de componentes, que interligados, possibilitam a comunicação multimídia.
Um Terminal (TE) H.323 é um componente da rede que provê comunicação em tempo real com outro TE H.323, Gateway (GW) e Multipoint Control Unit (MCU). A comunicação consiste de controle, sinalização, áudio, vídeo, e ou dados entre os dois pontos finais (endpoints). Um terminal pode estabelecer uma chamada diretamente com outro terminal ou através da ajuda de um Gatekeeper (GK). O
Gatekeeper (GK) é uma entidade H.323 na rede que provê tradução de endereços e
controla o acesso (autorização e autenticação) à rede dos terminais H.323, GWs, e MCUs. Os GKs podem comunicar-se entre si para coordenar seus serviços de controle. O GK também provê serviços para os terminais, GWs e MCUs como gerenciamento de banda, localização de GWs e tarifação. A função do GK é opcional em sistemas H.323. Ele é logicamente separado das outras entidades H.323, mas pode coexistir fisicamente com terminais, GWs ou MCUs. Terminais H.323 devem suportar o padrão G.711 para codificação de áudio e o suporte para outros padrões é opcional. Os terminais H.323 habilitados com vídeo deve suportar o codec H.261 e o suporte ao outros codec é opcional (DUEIRE LINS, Rafael; CONTENTE, Douglas; CARLOS, Vitor, 2011).
2.2.2 SIP
O Protocolo de Iniciação de Sessão (Session Initiation Protocol - SIP) é um protocolo de código aberto de aplicação, que utiliza o modelo “requisição-resposta”,
similar ao HTTP, para iniciar sessões de comunicação interativa entre utilizadores. É um padrão da Internet Engineering Task Force (IETF) (RFC 2543, 1999.).
SIP é um protocolo de sinalização para estabelecer chamadas e conferências através de redes via Protocolo IP, um exemplo típico seria o VoIP. O estabelecimento, mudança ou término da sessão é independente do tipo de mídia ou aplicação que será usada na chamada; uma chamada pode utilizar diferentes tipos de dados, incluindo áudio e vídeo.
Figura 2.1 - Lógica de uma chamada SIP Fonte: RNP
SIP teve origem em meados da década de 1990 (naquele tempo o H.323 era o padrão utilizado) para que fosse possível adicionar ou remover participantes dinamicamente numa sessão multicast. O desenvolvimento do SIP concentrou-se em ter um impacto tão significativo quanto o protocolo HTTP, a tecnologia por trás das páginas da web que permitem que uma página com links clicáveis conecte com textos, áudio, vídeo e outras páginas da web. Enquanto o HTTP efetua essa integração através de uma página web, o SIP integra diversos conteúdos a sessões de administração. O SIP recebeu uma adoção rápida como padrão para comunicações integradas e aplicações que usam presença - presença significa a aplicação estar consciente da sua localização e disponibilidade (COMER, 2016).
SIP foi moldado, inspirado em outros protocolos de Internet baseados em texto como o SMTP (email) e o HTTP (páginas da web) e foi desenvolvido para estabelecer, mudar e terminar chamadas num ou mais utilizadores numa rede IP de uma maneira totalmente independente do conteúdo de dados da chamada. Como o HTTP, o SIP leva os controles da aplicação para o terminal, eliminando a necessidade de uma central de comutação (COMER, 2016).
Um tipo de servidor intermediário do SIP é um Servidor Proxy SIP, que encaminha pedidos antes do Agente do utilizador para o próximo servidor SIP retendo também informações com a finalidade de poderem ser usadas para fins contabilísticos. Além disso, o servidor proxy SIP pode operar com comunicação com estado completo (stateful), por exemplo como um circuito TCP, ou sem estado (stateless), como por exemplo um UDP. O servidor SIP com estado completo pode “dividir” chamadas por ordem de chegada para que várias extensões que estejam a tocar todos ao mesmo tempo sendo que a primeira a atender ficará com a chamada. Essa capacidade significa que se pode especificar que um telefone de desktop SIP, um telefone celular SIP e aplicações de videoconferência de casa SIP possam sinalizar simultaneamente quando receber uma chamada. Ao atender um dos dispositivos é iniciada a conversação, os restantes param de sinalizar. O servidor
proxy SIP pode utilizar múltiplos métodos para tentar resolver o pedido de endereço
de host, incluindo busca de DNS, busca em base de dados ou retransmitir o pedido para o “próximo” servidor proxy (Colcher, 2005).
O Registrador SIP fornece um serviço de informação de localidades; ele recebe informações do Agente do Usuário e armazena essa informação de registro. A arquitetura do SIP faz uso do SDP (Session Description Protocol). O SDP foi uma ferramenta de conferência multicast via IP desenvolvida para descrever sessões de áudio, vídeo e multimídia. Na realidade, qualquer tipo de MIME (Multipurpose
Internet Mail Extension) pode ser descrita, similar à habilidade do e-mail de suportar
todos os tipos de anexos em mensagens. A descrição da sessão pode ser usada para negociar uma aceitação de um conjunto de tipos de mídias compatíveis.
Como resultado dessa arquitetura, o endereço do usuário SIP remoto é sempre o mesmo (por exemplo, sip:[email protected]), mas ao invés de estar
amarrado a um endereço estático, ele comporta-se como um endereço dinâmico que reflete a localização atual do destinatário. A combinação de Proxy e Servidor Redirecionador dá ao SIP grande flexibilidade de arquitetura. O usuário pode empregar vários esquemas simultaneamente para usuários localizados e é o que faz a arquitetura do SIP ser bem adaptada para suportar mobilidade. Mesmo quando o usuário remoto é móvel, o Proxy e o redirecionador podem ser usados para passar adiante o pedido de conexão para o usuário da localização atual. As sessões podem envolver múltiplos participantes, de forma similar a uma chamada multiponto H.323. Comunicações dentro de uma sessão em grupo podem ser via multicast ou via uma rede de chamadas unicast, ou até mesmo uma combinação dos dois. Outro resultado da arquitetura do SIP é a sua adequação natural como um ambiente de colaboração devido às suas habilidades de apresentar múltiplos tipos de dados, aplicações, multimídia, etc. com uma ou mais pessoas (COMER, 2016).
Há certo número de produtos comerciais e de fonte aberta do SIP disponíveis atualmente e o desenvolvimento comercial tem se mostrado com foco nos Agentes do Usuário como o telefone SIP e os softwares de Agentes do Usuário. Exemplos notáveis incluem o “Messenger” da Microsoft. Uma linha mais desenvolvida de produtos com a arquitetura SIP está disponível pela Siemens, Cisco, Nortel
Networks, PingTel, 3COM (US Robotics), e outros.
O SIP e o H.323 são padrões para rota de chamada, sinalização de chamada, troca de capacidade, controle de mídia e serviços adicionais. A força do H.323 tem sido a sua interoperabilidade com a rede telefônica pública comutada (PSTN) e disponibilidade em equipamentos de videoconferência acessível e confiável. O SIP é um protocolo desenvolvido para rede IP e promete grande escalabilidade e flexibilidade (COMER, 2016).
2.2.3 IAX
O IAX (Inter-Asterisk eXchange) foi desenvolvido pelos mesmos criadores do Asterisk se tornando assim seu protocolo específico. A maior motivação para sua criação foram as limitações encontradas em outros protocolos como SIP e H.323.
Essas limitações tornavam muito difícil a implementação de algumas funcionalidades nos servidores Asterisk. O IAX provê uma operação transparente com firewalls, NAT e PAT (IP mascarado) e suporta alocação, recebimento, transferência e registro de chamadas. O protocolo Inter-Asterisk eXchange, um protocolo de controle da camada de aplicação e meios de comunicação para criar, modificar e terminar sessões de multimídia sobre protocolos Internet na redes (IP). IAX foi desenvolvido pela comunidade de código aberto para o Asterisk PBX (Private Branch Exchange) e destina-se principalmente a Voice over Internet Protocol (VoIP) de controle de chamadas, mas pode ser usado com streaming de vídeo ou qualquer outro tipo de mídia. IAX é um protocolo de "tudo em um" para lidar com multimídia em redes IP. Ele combina os serviços de comunicação e controle no mesmo protocolo. Além disso, IAX usa um único fluxo de dados UDP em uma porta (4569) estática simplificando enormemente para o Network Address Translation (NAT) do gateway de passagem, eliminando a necessidade de outros protocolos para contornar NAT, e simplificando para a rede e para o gerenciamento de firewall. IAX emprega uma codificação compacta que diminui o uso da banda e é bem adequado para o serviço de telefonia via Internet. Além disso, a sua natureza aberta permite novas adições para tipo de cargas necessárias e suportar serviços adicionais. O protocolo IAX2 foi publicado em Fevereiro de 2010, suporta criptografia nativa de ambos os fluxos de controle e de mídia usando AES-128 (DUEIRE LINS, Rafael; CONTENTE, Douglas; CARLOS, Vitor, 2011).
Figura 2.2 - Conexão entre dois servidores Asterisk via IAX Fonte: VoIP - Conceitos e Aplicações
2.3 Ferramentas e Serviços
Nesta seção são apresentados alguns detalhes da plataforma de PBX-IP Asterisk, pelo fato de ser a plataforma mais utilizada mundialmente para prover uma central telefônica através de software livre e também por ser a plataforma utilizada nesta dissertação, onde os aplicativos de ambiente gráfico, analisados, rodam sobre o Asterisk para facilitar sua implementação e gerenciamento.
2.3.1 Asterisk
O Asterisk é um software Livre, de código aberto, que complementa em modo de software os meios definidos em um PABX mais convencionais, usando VoIP como tecnologia. Foi elaborado por Mark Spencer no ano de 1999. Primeiramente produzido pela companhia Digium, e hoje em dia recebe contribuições de colaboradores do mundo inteiro. Seu progresso é ativo e sua área de aplicação é muito bem vista no mercado.
Toda cronologia histórica de um programa se inicia com uma situação na qual o desenvolvedor possuía necessidade ou muitas vezes curiosidade e, por falta de capital, iniciativa própria, vontade de aprendizado em uma nova linguagem ou até mesmo pela simples vontade de ficar rico, resolveu pegar a problemática e resolver com iniciativas próprias.
Na língua inglesa, tem uma expressão para quem faz as coisas com as próprias mãos, “scratch your own itch”, que traduzindo para o português é “coçar sua própria coceira”. Possivelmente, o principal motivo de crítica direcionado a programas open source seja reflexo desta expressão, levando em conta que é bastante difícil coçar a coceira de outros e fora poucas exceções, o dono de um projeto impõe sua forma de trabalhar e sua visão ao mesmo.
Antes do advento do núcleo (kernel) do Linux, já existiam pacotes com código fonte aberto (open source) distribuídos gratuitamente, e a história já é bem conhecida por todos. A criação do Apache, servidor web usado por mais de 62% de
sites na Internet segundo a Netcraft, seguiu uma linha semelhante balanceando necessidade com falta de alternativa no mercado.
Com a evolução do setor de TI, e ainda contando com o Linux como sistema operacional, muitas empresas começaram a usar PHP, MySQL e Apache como plataforma para seus sistemas, alternativa considerada madura e estável. O PHP foi criado inicialmente como uma biblioteca de apoio e suporte a aplicações escritas em linguagem C para a web.
Este roteiro serviu para introduzir a história de Mark Spencer. Mark resolveu montar um negócio de suporte técnico para Linux. Como toda empresa em seu início, sua verba era limitada e insuficiente para comprar uma ferramenta crucial à sua operação: um sistema de PBX. Como já era um desenvolvedor open source, foi autor do GAIM, programa de mensagens instantâneas, dentre outros.
Mark publicou seu trabalho e uma comunidade começou a formar-se em torno dele. O programa foi batizado de Asterisk, e em pouco tempo já possuía recursos que eram encontrados somente em aparelhos caros de PBX. Notando que o mercado carecia do hardware necessário para aplicar o sistema efetivamente, Mark montou um negócio para fabricar essas placas e aparelhos. A empresa se chama Digium e se dedica a vender hardware e suporte, para bancar o desenvolvimento do Asterisk, que continua com o código aberto, mudando o rumo de sua empresa de suporte técnico apenas para provedora de soluções em telefonia. Com um pouco de sorte e muita competência, ele embarcou na crescente onda de Voz sobre IP (VoIP) em grande estilo, como fornecedor de uma solução que equivale ao que o Apache foi para a expansão dos servidores na Internet. É interessante o efeito colateral do uso de algumas tecnologias aqui no Brasil. Durante muito tempo, técnicos ganharam seu dia instalando e configurando máquinas com Linux usadas como firewall, para compartilhar uma conexão à Internet, ou mesmo como ponte entre as linhas privadas instaladas entre pequenos provedores e micro empresas. Imagine-se só uma linha usada para ligações 0800 transformada em um link para Internet de 33,6 Kbps e, posteriormente, de 56 Kbps. Durante um tempo provedores se sustentavam disso, até o mercado de Internet se estabelecer, sempre usando Linux como base, e variados programas e scripts feitos para outras finalidades. Com o Asterisk está
acontecendo a mesma coisa. Com sua flexibilidade de configuração e recursos, o programa se tornou base para que empresas nacionais começassem a fornecer serviços de VoIP a um preço muito baixo. Muitos técnicos estão mudando de
firewalls e gateways para “instaladores de VoIP”.
A cada dia surgem integradores que aproveitam a estrutura existente de PBX de uma empresa, e usando servidores comuns com placas baratas integram uma rede de telefonia normal à Internet fornecendo serviços de chamada à longa distância com custo mínimo.
Surgiram muitas alternativas para prestação de serviço de terminação, que é a ponta final que liga a Internet com a rede telefônica comum, tanto em território nacional quanto para chamadas de longa distância, todas acessíveis e com preços baixos.
O Asterisk foi originalmente desenvolvido para Linux, mas atualmente pode ser instalado e executado em uma grande variedade de sistemas operacionais, incluindo NetBSD, OpenBSD, FreeBSD, Mac OS X, Solaris e até mesmo Microsoft Windows, onde é conhecido por Asterisk Win32. Dentre suas características, o Asterisk é um software, baseado na licença GPL (GNU General Public License), que executa todas as funções de uma central telefônica convencional através das principais tecnologias de comunicação existentes no mercado, como por exemplo: linhas telefônicas analógicas, links de telefonia digital via placas de comunicação TDM (Time-Division Multplexing, ou Multiplexação por divisão de tempo), VoIP (Voice over IP, ou Voz sobre IP) através dos protocolos SIP, H.323, IAX2, MGCP, entre outros.
Através do Asterisk é possível estabelecer uma chamada entre qualquer um desses protocolos. O Asterisk é o que chamamos de B2B User Agent, ou melhor,
Back-to-Back User Agent, ele estabelece uma chamada telefônica, separando cada
“perna” da chamada entre origem e destino, e monitora todo o tráfego de áudio entre esses pontos. Por isso, caso esses pontos estejam utilizando CODECs diferentes, o Asterisk consegue transcodificar o áudio sem qualquer problema. Pode-se dizer que o Asterisk possui todas as funcionalidades das chamadas centrais telefônicas
convencionais, como unidade de resposta audível (URA), correio de voz, conferência, distribuição automática de chamadas, entre outras, e caso seja necessário, é possível acrescentar novas funcionalidades ao sistema através do próprio plano de discagem do Asterisk, módulos customizados escritos em C, ou ainda através de scripts escritos em Asterisk Gateway Interface (AGI) (KELLER, Alexandre 2011).
Uma das melhores definições para o Asterisk encontra-se no livro VoIP – Conceitos e Aplicações de Rafael Dueire Lins, Douglas Contente e Vitor Carlos, conforme descrito abaixo:
O Asterisk é um software que emula as funcionalidades de um PBX. Foi criado e vem sendo aprimorado pela Digium Inc., e, aos moldes do Linux, por uma base de usuários em constante crescimento. Ele funciona em plataforma Linux, além de outras plataformas Unix. O código do Asterisk é aberto, ou seja, pode ser manipulado por qualquer pessoa, e possui infindáveis possibilidades de configuração. Todas as configurações, a exemplo do plano de discagem, e outros recursos especiais, são implementadas em software. A possibilidade de se realizar mudanças de forma rápida, o grande conjunto de opções de configuração e o código aberto, permite um alto grau de adaptação do Asterisk às necessidades de cada usuário.
O Asterisk não se resume apenas a um mero software de PBX. Ele é muito mais. Sua utilização em conjunto com VoIP aliada a uma conexão rápida à Internet, permite uma conectividade com vários recursos. Com ele é possível uma empresa, por exemplo, comunicar-se com seus escritórios ou funcionários em diversas partes do mundo a custos muito baixos e com boa qualidade de serviço. O Asterisk ainda se destaca por possibilitar a implementação de funcionalidades presentes nos mais avançados e caros dispositivos de PBX existentes no mercado, com a vantagem de ser um software livre.
Logo que o Asterisk foi lançado no mercado, uma das maiores dificuldades na utilização era sua complexidade, pois tudo era configurando em linhas de comandos, não existia uma interface gráfica. Em 2005 a Digium lançou o Asterisk@HOME com uma interface gráfica para resolver este problema, utilizando o FreePBX como gerenciador gráfico, mas logo depois a Trixbox comprou o projeto que com o passar do tempo acabou sendo abortado.
Após a venda do Asterisk@HOME para a Trixbox, a Digium lançou o
AsteriskNOW, mas em sua primeira verão ocorreu muitos bugs e a versão não foi
bem aceita no mercado. O AsteriskNOW é uma distribuição Linux completa com o Asterisk, a estrutura do driver DAHDI e a GUI administrativa do FreePBX. Grande parte da complexidade do Asterisk e do Linux é tratada pelo instalador, pelo utilitário de gerenciamento de pacotes yum e pela GUI administrativa.
2.3.2 O projeto ZAPATA
O projeto ZAPATA foi conduzido por Jim Dixon. Ele é o responsável pelo desenvolvimento do hardware da Digium. É interessante ressaltar que o hardware também é aberto e pode ser produzido por qualquer empresa. Hoje a placa com 4 E1/T1s é produzida pela Digium e também por outros fabricantes. A história do projeto Zapata pode ser vista abaixo - uma pequena tradução - Por Jim Dixon, no livro Construindo Sistema de Telefonia com o Asterisk (GOMILLION, 2006).
Há 20 ou 25 anos, a AT&T começou a oferecer uma API permitindo aos usuários customizar a funcionalidade de seu sistema de correio de voz e auto-atendimento chamado Audix. O Audix rodava em plataforma Unix e custava como tudo em telefonia até o momento, milhares de dólares por porta com uma funcionalidade bastante limitada. Em uma tentativa de tornar as coisas possíveis e atrativas (Especialmente para quem não tinha um PABX AT&T) alguns fabricantes vieram com uma placa que podia ser colocada em um PC que rodava DOS e respondia a uma única linha telefônica (FXO apenas). As placas não tinham uma qualidade tão boa quanto as atuais e muitas terminaram como secretárias eletrônicas igualmente ruins. Novas placas de telefonia foram lançadas com preços muito salgados e as companhias continuaram gastando na faixa de milhares de dólares por porta. Afinal de contas, mesmo com as margens altas de muitos fabricantes, as placas de telefonia possuíam grande capacidade de processamento na forma de DSPs, processadores de sinais digitais. Se você observar ainda hoje um gateway de voz sobre IP, vai ver que boa parte do custo ainda está relacionada aos DSPs. No entanto, o poder de processamento dos microcomputadores continuou crescendo. De forma a provar o conceito inicial comprei uma placa Mitel89000C “ISDN Express Development Card” e escrevi um driver para o FreeBSD. A placa ocupou bem pouco processamento de um Pentium III 600MHz, provando que se não fosse a limitação do I/O (A placa gerenciava de forma ineficiente o I/O exigindo muitos wait-states) ela poderia atender de 50 a 75 canais. Como resultado do sucesso, eu sair e comprei o necessário para criar um novo desenho de cartão ISA que usasse o I/O de forma eficiente. Eu consegui dois T1s (48 canais) de dados transferidos sobre o barramento e o PC gerenciou isto sem problemas. Então eu tinha as placas e ofereci-as para venda (Umas 50 foram vendidas) e coloquei o desenho completo (incluindo arquivos de plotagem da placa) na web.
O DAHDI (Digium Asterisk Hardware Device Interface) é um projeto para desenvolvimento de placas de telefonia e seus drivers – módulos do kernel – de padrão aberto (open hardware e open source). O nome DAHDI é substituto do antigo nome Zaptel ou Zapata, que teve de ser alterado por questões de direitos autorais pertencentes à uma empresa com o mesmo nome. Sendo assim, a partir de 2008 o antigo projeto Zaptel passou a ser chamado projeto DAHDI. Portanto, pode ser comum encontrar antigas documentações referenciando o projeto Zaptel ao invés de DAHDI.
O drive DAHDI é uma biblioteca de módulos para o kernel (drivers), tem a função de um middleware que faz a comunicação do canal de driver do Asterisk – ou
FreeSWITCH – com os drivers das placas. Sendo assim, ao instalar a biblioteca ou
pacote DAHDI, serão instalados todos os módulos das placas compatíveis com esta arquitetura e também um processo de middleware que realiza a comunicação dos componentes. Conclui-se que o DAHDI tem a função de estabelecer toda a comunicação entre a aplicação e o hardware de telefonia.
2.3.3 Características do Asterisk
Existem várias funcionalidades das versões suportadas do Asterisk. O tipo de versão define quanto tempo vai ter suporte. A versão de suporte estendido (LTS) será totalmente suportada por quatro anos, com um ano adicional de manutenção de correções de segurança. Lançamentos padrões são suportados por um período mais curto de tempo, o que será de pelo menos um ano de suporte completo e um ano adicional de manutenção de correções de segurança.
Figura 2.3 - Arquitetura do Asterisk Fonte: RNP
Com a junção do Asterisk, que Mark Spencer desenvolveu, da placa que Jim Dixon projetou, e do módulo do kernel GNU/Linux que ambos desenvolveram, possibilitou que surgisse um novo PABX no mercado, utilizando-se desses três elementos, em que se poderiam comunicar telefones e linhas reais (KELLER, Alexandre 2011).
2.4 Considerações Finais do Capítulo
Neste capítulo foi realizado um estudo das definições conceituais, conhecendo características, ferramentas, serviços e suas particularidades, entre a telefonia convencional e a telefonia VoIP. No próximo capítulo iremos realizar na pratica, através de um estudo de caso, os conhecimentos teóricos já adquiridos.
3 IMPLANTAÇÃO E GERENCIAMENTO
Visto que o Asterisk não possui uma interface administrativa bem aceita no mercado, que facilite a implantação e gerenciamento dos PBX-IP, este capítulo da dissertação realiza uma análise das aplicações de código aberto com Interface Gráfica de Usuário (GUI), que rodam na plataforma Asterisk para implantar uma central VoIP PABX-IP no Instituto Federal da Bahia no Campus de Jequié.
3.1 Ambiente de Implantação
O Instituto possui quatro linhas telefônicas analógicas e 40 ramais VoIP da fabricante Intelbras e Atcom. Como se encontra sem recursos financeiros para aquisição de uma central VoIP PABX convencional optou-se por uma solução livre de licença.
As análises aqui executadas foram fundamentadas em estudos de casos, levantamentos bibliográficos e os testes de usabilidade e funcionalidades, que são testes muito utilizados na engenharia de software. O cenário da instalação do sistema VoIP está exibido no diagrama da rede lógica do campus, conforme exibido na figura 3.1.
wan
wan
DIAGRAMA DA REDE LOGICA DO CAMPUS DO IFBA JEQUIÉ 40 ramais VoIP(telefone IP) 200 Estações de Trabalho switch core Roteador RNP jumper link 20Mbps Firewall Pfsense (DHCP;Proxy) GLPI Arquivo PC VoIP (Asterisk com Elastix) AD Zabbix
Figura 3.1 - Diagrama da rede lógica do campus IFBA Jequié Fonte: Própria
A configuração do PC onde será instalado o servidor VoIP é a seguinte: processador Core i5, 4GB de memória RAM, disco SATA de 1TB, contendo unidade de DVD, placa de rede 100/1000, e uma placa VoIP 4 FXO PCI.
As ferramentas analisadas foram o Elastix, SNEP e o Fone@RNP. Os critérios para escolha destas ferramentas foram os seguintes:
Fone@RNP por ser desenvolvido pela RNP para prover serviço VoIP entre as instituições federais que mantêm parceria com a RNP.
SNEP por ser genuinamente brasileira e possuir uma vasta documentação e fórum de discussão disponível.
Elastix por ser uma das interfaces gráficas de PBX-IP mais utilizadas no mundo, também possuir uma vasta documentação e fórum de discussão disponível.
3.2 Fone@RNP
O uso do Fone@RNP é permitido somente para as organizações que possuem cooperação com a RNP, como as agências estatais e instituições de ensino e pesquisa com participação ou parceria em projetos em comum com a RNP.
O Fone@RNP oferece uma alternativa econômica para o serviço de telefonia de seus clientes. As chamadas telefônicas são encaminhadas sobre uma rede de dados de alto desempenho da RNP, conhecida como rede Ipê. O Fone@RNP faz ligações gratuitas de longa distância entre seus participantes e para telefones fixos na rede pública a baixo custo e para algumas universidades ao redor do mundo a custo zero. A adesão ao serviço não tem custos, porém o cliente precisa ter uma infraestrutura local para suportar os serviços e além disso ajudar a entregar as ligações para fixos destinadas à sua cidade, pois todas ligações realizadas pela instituições participante da rede Fone@RNP para a rede pública (PSTN) que esteja mais próxima à instituição participante do serviço, será realizada por esta instituição.