trabalho de conclusão de curso

Upload: crystian-luis-kammler

Post on 07-Jul-2015

1.512 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDADE DO OESTE DE SANTA CATARINA UNOESC CURSO DE SISTEMAS DE INFORMAO

CRYSTIAN LUS KAMMLER

SOLUO MEDIA GATEWAY VOIP BASEADA EM ASTERISK

CHAPEC (SC) 2010

CRYSTIAN LUS KAMMLER

SOLUO MEDIA GATEWAY VOIP BASEADA EM ASTERISK

Trabalho de Concluso de Curso apresentado como requisito obteno do ttulo de Bacharel em Sistemas de Informao da Universidade do Oeste de Santa Catarina.

Orientador: Prof Eliete Marchioro, Msc

CHAPEC (SC) 2010

CRYSTIAN LUS KAMMLER

SOLUO MEDIA GATEWAY VOIP BASEADA EM ASTERISK

Trabalho de Concluso de Curso apresentado como requisito obteno do ttulo de Bacharel em Sistemas de Informao da Universidade do Oeste de Santa Catarina

Chapec (SC) ,18 de dezembro de 2009.

Eliete Marchioro, Msc Orientadora e Presidente da Banca

Prof Sandro Silva de Oliveira, Msc Membro da Banca

Prof Rafael Leite, Especialista Membro da Banca

Resumo

Este trabalho apresenta um estudo sobre redes de voz sobre IP (VoIP), detalhando o funcionamento da tecnologia e os mais variados protocolos, codificadores e decodificadores de voz disponveis no mercado, tal como seu funcionamento e arquitetura. So apresentados os principais conceitos sobre a transmisso de dados de voz entre servidores e problemas que podem surgir nesta comunicao. Descreve-se uma soluo baseada em servidor utilizando o software Asterisk para que possam ser corrigidos os problemas de compatibilidade. detalhada a arquitetura e padro de sintaxe de configurao do software Asterisk, aonde so abordados as possveis formas de implementao e solues que podem ser adotadas. Descreve-se uma implementao de interface WEB para gerenciamento do Asterisk visando limitar o acesso ao servidor e fornecer uma forma segura e prtica de configurao do sistema, aonde so abordadas as principais funes da implementao e motivos pelos quais so utilizadas. Palavras-chave: VoIP, protocolo, compatibilidade, comunicao.

Lista de FigurasFigura 1: Soluo que possa corrigir os problemas..................................................................10 Figura 2: Soluo Proposta.......................................................................................................11 Figura 3: Arquitetura de uma rede VoIP....................................................................................20 Figura 4: Pilha de Protocolos VoIP...........................................................................................24 Figura 5: Pilha de protocolos do H.323....................................................................................26 Figura 6: Chamada em SIP no completada.............................................................................33 Figura 7: Chamada em protocolo SIP completada....................................................................33 Figura 8: Tabela de Codec's......................................................................................................38 Figura 9: Exemplo de configurao de canais de comunicao...............................................48 Figura 10: Fluxo de funcionamento do Asterisk.......................................................................57 Figura 11: Instalao do Asterisk..............................................................................................59 Figura 12: Instalao do PHP5..................................................................................................60 Figura 13: Instalao do Apache2.............................................................................................60 Figura 14: Verificao de funcionamento do Asterisk..............................................................60 Figura 15: Verificao de funcionamento do Apache2 e PHP5................................................61 Figura 16: Tela Principal do Asterisk Web/PHP Management Interface..................................64 Figura 17: Seleo de diretrio do sistema Asterisk Web/PHP Management Interface...........65 Figura 18: Menu de edio do Asterisk Web/PHP Management Interface...............................65 Figura 19: Tela de acesso ao sistema........................................................................................67 Figura 20: menu de funes do sistema....................................................................................67 Figura 21: Dilogo de confirmao do comando......................................................................68 Figura 22: Tela de criao, edio e excluso de arquivos e diretrios....................................68 Figura 23: Dilogo de excluso do sistema..............................................................................69 Figura 24: Tela de edio dos arquivos de configurao do sistema........................................70

Lista de SiglasAPT Advanced Packaging Tool DNS Domain Name Server GC Gateway Controller GK Gatekeeper HTTP Hypertext Transfer Protocol IAX Inter-Asterisk Exchange IETF Internet Engineering Task Force IP Internet Protocol ITU International Telecommunication Union MCU Multipoint Control Unit MEGACO Media Gateway Control MG Media Gateway MGCP Media Gateway Control Protocol NCSA National Center for Supercomputing Applications PABX Private Automatic Branch Exchange PCM Pulse Code Modulation PHP Hypertext Preprocessor QoS Quality of Service RTCP Real-time Control Protocol RTP Real-time Protocol SDP Session Description Protocol SIP Session Initiation protocol STFC Sistema de Telefonia Fixa Comutada TCP Transmission Control Protocol TM Terminal multimdia UDP User Datagram Protocol URA Unidade de resposta Audvel URI Uniform Resource Identifiers VoIP Voice over Internet Protocol

SumrioRESUMO .................................................................................................................................2 LISTA DE FIGURAS ..............................................................................................................3 LISTA DE SIGLAS .................................................................................................................4 1 INTRODUO .....................................................................................................................7 1.1 APRESENTAO DA EMPRESA .....................................................................................8 1.2 PROBLEMA ........................................................................................................................8 1.3 OBJETIVOS ........................................................................................................................9 1.3.1 Objetivo Geral .................................................................................................................9 1.3.2 Objetivos especficos .......................................................................................................9 1.4 JUSTIFICATIVA ..................................................................................................................9 1.5 METODOLOGIA ...............................................................................................................11 1.5.1 Etapas de desenvolvimento do projeto ........................................................................11 1.5.2 Ferramentas, configurao da soluo proposta ........................................................12 1.5.3 Softwares necessrios para o desenvolvimento ..........................................................12 1.6 LIMITE DO ESCOPO .......................................................................................................13 1.7 ESTRUTURA DO TRABALHO .......................................................................................14 2 VOZ SOBRE IP (VOIP) .....................................................................................................15 2.1 HISTRICO DAS TELECOMUNICAES ...................................................................15 2.2 O QUE VOIP? ................................................................................................................18 2.3 ARQUITETURA DO VOIP ..............................................................................................20 2.4 PILHA DE PROTOCOLOS VOIP .....................................................................................23 2.4.1 Protocolo H.323 .............................................................................................................25 2.4.2 Protocolo SIP .................................................................................................................26 2.4.2.1 Arquitetura do SIP ........................................................................................................28 2.4.2.2 Funcionamento do SIP .................................................................................................29 2.4.3 Protocolo IAX (Inter-Asterisk Exchange) ...................................................................34 2.4.3.1 Funcionamento do IAX2 ..............................................................................................34 2.4.4 Protocolos MGCP e MEGACO ....................................................................................35 2.4.5 Protocolo RTP ................................................................................................................36 2.4.6 Protocolo RTCP .............................................................................................................37 2.4.7 udio Codec ...................................................................................................................37 3 FERRAMENTAS UTILIZADAS NA SOLUO ...........................................................40 3.1 SISTEMA OPERACIONAL DEBIAN 5 ...........................................................................40 3.2 SERVIDOR DE APLICAO APACHE E LINGUAGEM PHP .....................................40 3.3 COMPARATIVO ENTRE ASTERISK E SISTEMAS PARA GERENCIAMENTO DE CHAMADAS VOIP .................................................................................................................41 3.4 O SOFTWARE ASTERISK ...............................................................................................42 3.4.1 Como funciona o Asterisk .............................................................................................43 3.4.2 Sintaxe do Asterisk ........................................................................................................45 3.4.3 Configurao de mdulo de canais de comunicao ..................................................46 3.4.4 Configurao do plano de discagem ............................................................................49 3.4.5 Configurao avanada para o plano de discagem ....................................................52

3.4.5.1 Mscaras de discagem ..................................................................................................52 3.4.5.2 Variveis, expresses matemticas e lgicas ..............................................................53 3.4.6 Outras configuraes do Asterisk ................................................................................55 3.4.7 Fluxo de funcionamento do Asterisk ...........................................................................56 4 MODELO PROPOSTO ......................................................................................................58 4.1 INSTALAO DOS SOFTWARES UTILIZADOS NA SOLUO ..............................58 4.2 PRINCIPAIS FUNES A SEREM IMPLEMENTADAS NA INTERFACE DE GERENCIAMENTO ...............................................................................................................61 4.3 CUSTOMIZAO DA INTERFACE PARA EDIO DOS ARQUIVOS DO ASTERISK ...............................................................................................................................63 4.3.1 O Asterisk Web/PHP Management Interface e suas funes ....................................63 4.3.2 Desenvolvimento e customizao da interface de gerenciamento .............................66 5 CONSIDERAES FINAIS .............................................................................................71 5.1 TRABALHOS FUTUROS .................................................................................................72 REFERENCIAS ....................................................................................................................73

1 INTRODUO

Na ltima dcada pode-se observar um grande avano nas redes, na internet, e no aumento de largura de banda disponvel para se enviar e receber dados, baseando-se nessas premissas surgiu vrias tecnologias e formas de comunicao. A voz sobre IP (VoIP) considerada uma inovao importante e necessria, que vem expandindo e atingindo novos horizontes, mas o que voz sobre IP? uma forma de comunicao de voz atravs da internet, transformando voz em dados e os transmitindo atravs da rede de comunicao, possibilitando assim uma forma de conversao mais econmica. Neste contexto, os usurios podem conversar utilizando a estrutura j existente de conexo com a internet, sendo que as chamadas podem ser realizadas de um telefone VoIP para outro ou mesmo para um telefone convencional, utilizando-se da estrutura de uma operadora VoIP, que tem a funo de interligar as duas tecnologias. Desenvolveu-se uma srie de softwares e protocolos de transmisso de dados para efetuar a converso entre as tecnologias VoIP e telefonia convencional, um dos mais utilizados em empresas e operadoras de pequeno e mdio porte o gerenciador de chamadas de voz Asterisk (GONALVES, 2007), que pode ser considerado uma central telefnica IP e tem como funo direcionar chamadas de um ponto a outro, alm de efetuar converses de dados e permitir recursos interativos com o usurio, como caixa de mensagem, alertas de voz, telefones ocupados, entre outros que podem surgir.

8

1.1 APRESENTAO DA EMPRESA

A Brasilfone Telecomunicaes iniciou o seu trabalho em novembro de 2006 na cidade de Chapec-SC, atuando como operadora VoIP. Seu foco inicial foi o atendimento clientes corporativos, porm examinando algumas oportunidades de negcio, alterou a sua forma de trabalho, investindo em uma estrutura diferenciada e passando a oferecer sistemas e suporte a pequenos empresrios que tinham interesse em montar uma operao VoIP. Assim com uma nova estrutura de negcio e operao, transformou-se atualmente em um distribuidor de minutos e plataformas, contratando servio de Operadoras de grande porte e revendendo para pequenas operaes na forma de VoIP. A partir do momento em que surgiu a Brasilfone, ela sempre focou em trs objetivos: Qualidade no atendimento; Custo X Beneficio; Qualidade na comunicao de dados (voz).

1.2 PROBLEMA

Para a comunicao de chamadas VoIP, existem vrios protocolos de comunicao de dados, formas de compactao e dispositivos de hardware, no caso dos sistemas apresentarem incompatibilidade podem ocorrer problemas de comunicao, afetando diretamente a qualidade da ligao ou mesmo se tornando impossvel que ela ocorra. Que tipo de estrutura se faz necessrio para que essas diferentes tecnologias e protocolos se torne compatveis com a maioria das formas de comunicao VoIP disponveis?

9

1.3 OBJETIVOS

1.3.1 Objetivo Geral

Instalar e configurar uma soluo baseada em Asterisk para prover o gerenciamento de ligaes de voz sobre IP, que permita corrigir problemas na transmisso devido a converso de formatos no direcionamento das chamadas feitas de uma origem, passando no sistema at um destino.

1.3.2 Objetivos especficos

Pesquisar o software Asterisk e os protocolos compatveis; Instalar o software Asterisk (software open source de gerenciamento de chamadas VoIP);

Identificar as principais funes e opes que a interface de configurao deve possuir e listar para que sejam implementados em uma interface WEB.

Desenvolver uma interface WEB de acesso restrito para as principais funes e opes de edio para os arquivos de configurao do Asterisk.

1.4 JUSTIFICATIVA

Existem diversos protocolos de comunicao que podem ser utilizados nas operadoras VoIP, no entanto a comunicao torna-se muitas vezes incompatvel em funo das diversas plataformas de comunicao disponveis no mercado e cada qual com uma nomenclatura

10 diferente, visando solucionar esse problema propem-se utilizar o software de gerenciamento de chamadas Asterisk entre o servidor da empresa Brasilfone e outros provedores que venham a ter a comunicao de voz, conforme figura 1.

Figura 1: Soluo que possa corrigir os problemas Fonte: do Autor

Observando a Figura 1, pode-se dizer que o sistema A o servidor da Brasilfone que trabalha com um protocolo de formato A, que enviado a soluo de MEDIA GATEWAY VOIP e convertido para um formato B e enviado para o sistema B que supostamente de um fornecedor. Alm deste problema, pode-se citar incompatibilidades na forma de autenticao entre a Brasilfone e um fornecedor, ou mesmo na forma de codificao e decodificao da voz. Assim tornando possvel ter uma soluo que efetua a correo de grande parte dos problemas de comunicao entre os provedores, tornando vrias formas de compactao e comunicao compatveis, pode-se garantir uma maior produtividade e qualidade nos servios. Utilizando a topologia apresentada (Figura 1) se pode ter uma soluo eficiente

(conforme Figura 2) que venha a beneficiar e melhorar a qualidade de atendimento de uma operadora VoIP ou mesmo possibilitar a expanso de sua rede a novos horizontes antes no possveis devido estrutura incompatvel.

11

Figura 2: Soluo Proposta Fonte: do Autor

Conforme pode-se observar o modelo da Figura 2, pretende-se desenvolver um acesso no modelo de interface de gerenciamento pela WEB, visando garantir uma forma de acesso mais seguro, que no venha expor os demais dados e configuraes do servidor, e fornea apenas acesso as funes e configuraes da proposta de MEDIA GATEWAY VoIP.

1.5 METODOLOGIA

1.5.1 Etapas de desenvolvimento do projeto

Levantamento bibliogrfico: pesquisa sobre sistema operacional Linux, verificao de segurana e configurao para servidores, instalao e configurao de Asterisk e desenvolvimento de software para gerenciamento de Asterisk;

Definio de sistemas: definio de distribuio e verso de sistema operacional, verso de Asterisk, verses de ferramentas de segurana e gerenciamento de aplicao;

12 Instalao do conjunto de softwares: instalao e configurao das ferramentas para funcionamento do servidor. Desenvolvimento: Customizao e desenvolvimento para o aplicativo Asterisk WEB/PHP Management Interface, que ser a base para o desenvolvimento da interface que pretende fornecer acesso a edio das configuraes do Asterisk, conforme objetivos do projeto; Validao: verificao de todos os requisitos citados para defender o objetivo da soluo, verificando se foram atendidos e executados corretamente garantindo que a soluo seja um sucesso; Redao do relatrio final e trabalho de concluso de curso.

1.5.2 Ferramentas, configurao da soluo proposta

Notebook processador AMD Turion X2 1.6GHz 2048MB de memria RAM 250GB de Disco Rgido;

Servidor Dell PowerEdge 860 Processador Intel Dual Core 2.0 GHz 2048MB de memria RAM 160GB de Disco Rgido;

Netbook Positivo Mobo 1020 processador Intel Atom 1.6Ghz 1024MB de memria RAM 120GB de Disco Rigido.

1.5.3 Softwares necessrios para o desenvolvimento

Sistema Operacional Linux: Distribuio Ubuntu 9.04 e Debian 5, utilizados para desenvolver e configurar sistemas.

13 Servidor de aplicao Apache: para utilizao da aplicao em PHP; Software de gerenciamento de chamadas de VoIP Asterisk: que ser utilizado para o gerenciamento das chamadas na forma de Media Gateway VoIP; Asterisk WEB/PHP Management Interface: que ser utilizando como base para configurar o Asterisk de forma remota via interface, facilitando o trabalho de gerenciamento e configurao do sistema.

1.6 LIMITE DO ESCOPO

O trabalho desenvolvido apresenta algumas limitaes especificas que devem ser observadas, uma vez que o foco a transmisso de dados de voz entre uma operadora de VoIP e outra. A pesquisa se deu visando somente a transmisso de dados entre servidores utilizando os protocolos de sinalizao SIP, IAX e a pilha H.323 sobre a arquitetura TCP/IP, utilizando protocolos de transporte tanto TCP como UDP. Alm dos protocolos de sinalizao tambm foram abordados outros que fazem parte do conjunto de VoIP, tais como, RTP, RTCP, MGCP, MEGACO e os udio Codecs. Os modelos estudados so baseados em servidores sem utilizao de hardware especifico para telefonia, ou seja, so servidores padro de mercado, com dispositivo de monitor, mouse, teclado e rede. Desta forma a soluo proposta se encaixa em empresas que tenham a mesma realidade ou funo da Brasilfone, e que tenham a necessidade do tratamento de protocolos e converso de compactadores na situao de voz sobre IP sem a necessidade da converso de um sinal analgico para digital, ou seja, que tenha somente a converso de um padro digital para outro.

14 O modelo proposto foi baseado em sistema operacional Linux e na distribuio Debian 5, sendo que todos os comandos e funes apresentadas no decorrer do texto foram testadas e utilizadas somente neste sistema.

1.7 ESTRUTURA DO TRABALHO

O captulo 1 faz referncia a introduo do trabalho. O captulo 2 faz uma reviso sobre a histria da telefonia e o comeo do VoIP, alm de detalhar a arquitetura e topologia de rede para o funcionamento da tecnologia. Tambm apresenta os protocolos mais utilizados e arquitetura de cada um de forma detalhada para que seja possvel interpretar a soluo proposta nos prximos captulos. No captulo 3 so apresentadas todas as ferramentas que sero utilizadas para o desenvolvimento e configurao da soluo, apresentando suas funes conforme a necessidade do projeto, aonde se apresenta maior enfase na ferramenta Asterisk por ser a principal para o desenvolvimento da soluo proposta, alm de mencionar outras tecnologias semelhantes ao Asterisk. O captulo 4 demonstra toda a configurao e customizao da soluo proposta, aps isso detalhamento de projetos futuros. E as consideraes finais so feitas no captulo 5.

2 VOZ SOBRE IP (VOIP)

2.1 HISTRICO DAS TELECOMUNICAES

O telefone foi patenteado por Alexander Graham Bell em 1876, no comeo os usurios compravam os telefones aos pares e conectavam um ao outro permitindo a conversao. No caso do usurio querer conversar com vrios outros era necessrio que todos estivessem ligados entre si e isso deveria ser feito pelo proprietrio do telefone (TANENBAUM, 2003). Com o passar do tempo as redes telefnicas comearam a ficar confusas e desorganizadas devido a essa topologia, e logo chegou-se a concluso que esse sistema no funcionaria. Bell percebeu essa situao e criou a Bell Telephone Company, que abriu sua primeira estao de comutao (em New Haven, Connecticut) em 1878. A empresa ligava um fio at a casa ou o escritrio de cada usurio. Para fazer uma chamada, o usurio girava a manivela, o que emitia um som na companhia telefnica e chamava a ateno de um operador. Este, por sua vez, conectava manualmente o emissor da chamada ao receptor usando um jumper (TANENBAUM, 2003). Ento a partir deste momento as redes comearam a sofrer um grande avano e aps ter se passado mais de 100 anos que a primeira rede surgiu, a forma com que se usa essas redes atualmente muito diferente. Alm de terem evoludo na questo fsica, pode-se dizer que teve um avano maior ainda na parte lgica e os recursos que ela possibilita. Houve uma grande transio do sistema analgio para digital, o que possibilitou uma grande inovao

18 trazendo recursos de transmisso de dados e no somente voz, juntamente com isso surgiram os servios multimdia de transmisso de contedo, neste contexto inclui-se diversos recursos, tais como imagem em vdeo, fotos e voz, os quais so transformados em dados e posteriormente enviados pelas redes de transmisso. Juntamente com essa evoluo, segundo Tanenbaum, em 2002 o trfego de dados era dez vezes maior do que o trfego de voz e continuava crescendo exponencialmente, seguindo esses nmeros e a exploso de trfego, muitas das operadoras viram uma grande oportunidade e passaram a transportar voz no formato de dados (TANENBAUM, 2003). O volume de largura de banda adicional exigida para voz pequeno, pois as redes de pacotes so dimensionadas para o trfego de dados. No entanto, a conta telefnica de um consumidor mdio provavelmente maior que sua conta da Internet, e assim as operadoras de redes de dados identificaram na telefonia sobre Internet uma forma de ganhar dinheiro extra sem terem de instalar sequer um novo cabo de fibra. (TANENBAUM, 2003). Baseados em todas essas premissas, surgiu o VoIP, que vem crescendo de forma exponencial como a telefonia cresceu e foi aperfeioada durante esses anos todos.

2.2 O QUE VOIP?

Voz sobre IP (VoIP), uma tecnologia que permite a digitalizao de voz e a transformao em pacotes de dados que podem ser enviados via rede IP, assim permitindo uma forma de conversao utilizando um servio de internet j existente em uma empresa ou residncia. O sistema de voz sobre IP um recurso muito sensvel ao atraso, diferente do trfego normal de dados que em caso de lentido no sofrem alteraes em seu resultado, porm, se

19 durante uma chamada VoIP a rede se tornar lenta e os dados no forem entregues em tempo real, pode-se ter alguns problemas na comunicao, tais como cortes na voz e falta de entendimento devido a lentido do envio de dados, assim pode-se concluir que os dados em si no sofrem alteraes mas o resultado que eles proporcionam sim, ou seja, a voz no vai ter a mesma nitidez com que foi falada e transmitida (WALLINGFORD, 2005). Para que os problemas de lentido e falta de prioridade no trfego de voz nas redes IP fossem tratados, foram desenvolvidas algumas tecnologias e protocolos que pudessem contornar essa situao, portanto garantindo alguma prioridade e qualidade no servio de dados de voz. Um servio VoIP pode ser considerado bom ou ruim, essa definio depende da qualidade da rede de internet e a sua qualificao para o uso do sistema, pois ao se tratar de um sistema de voz sobre IP, significa dizer que codifica-se informaes de voz no formato de dados, para que estes possam ser enviados via rede TCP/IP.O transporte de dados VoIP, utilizando-se como suporte a rede de internet comercial, tem sido um forte atrativo para os usurios. A experincia, no entanto, demonstrou que os pacotes IP contendo os dados de voz, ao passarem por diversos domnios e roteadores, no tem mais condies de oferecer uma qualidade de voz aceitvel no destino. Um dos motivos que os parmetros de QoS (quality of service) exigidos para este servio, relativos ao atraso e variao deste atraso, no podendo ser assegurados pela internet comercial. O volume de dados gerados por uma aplicao VoIP outro desafio para a rede IP, fazendo com que a sua aplicao, muitas vezes, se restrinja a redes corporativas privadas, nas quais relativamente simples e pouco oneroso a disponibilizao de amplos recursos em termos de banda passante (SITOLINO, 2001, p. 14).

20

2.3 ARQUITETURA DO VOIP

Uma rede VoIP opera diferentemente de uma rede de telefonia convencional, ou seja, no estruturada de forma hierrquica, de modo que pode ser considerada plana. Os terminais e processamento das chamadas operam de forma inteligente e no depende da localizao geogrfica para executar sua funo. A Figura 3 ilustra um modelo de rede VoIP, tendo como base a rede mundial de computadores, a Internet.Na telefonia tradicional, a rede hierrquica, ou seja, baseada em grandes centrais telefnicas interligadas de forma hierrquica e que detm a inteligncia da rede. Alm disso, os terminais so desprovidos de inteligncia e o seu endereamento depende da geografia da rea de abrangncia da rede (BERNAL, 2008, ).

Na telefonia IP, a rede plana, no hierrquica, especializada no roteamento e transporte de pacotes de dados, e pode oferecer vrios tipos de servios. Os terminais so inteligentes, seu endereamento independe de sua localizao geogrfica, e o processamento e a realizao das chamadas ocorrem em vrios equipamentos que podem estar localizados em qualquer parte da rede (BERNAL, 2008, ).

Figura 3: Arquitetura de uma rede VoIP Fonte: (BERNAL, 2008, )

21 Para melhor entender uma rede VoIP, pode-se observar a Figura 3 (BERNAL, 2008). Tel IP ou Telefone IP um telefone j preparado para redes IP e utilizao de VoIP (WALLINGFORD, 2005). PABX uma central telefnica simples utilizada por empresas, ou seja, um equipamento responsvel pelo direcionamento de chamadas dentro de uma empresa (WALLINGFORD, 2005). GW ou Gateway um tipo de equipamento responsvel pela comunicao entre a rede IP e o STFC. Ele executa a converso de media(voz) em tempo real e a converso de sinalizao para as chamadas telefnicas de analgico para digital (BERNAL, 2008). GC ou Gateway Controller o equipamento responsvel pelo controle das chamadas em andamento realizadas pelos Gateways. O GC utiliza e gera as informaes de sinalizao e comanda os GW para iniciar, acompanhar e terminar uma chamada entre 2 terminais distintos (BERNAL, 2008). MCU ou Multipoint Control Unit responsvel pelos servios de conferncia entre 3 ou mais terminais. composto por um Controlador Multiponto (MC multipoint controller), responsvel pela sinalizao das chamadas, e por um Processador Multiponto (MP - multipoint processor), responsvel pelo processamento dos pacotes de dados dos sinais de Voz dos terminais envolvidos na conferncia (BERNAL, 2008). GK ou Gatekeeper O GK o equipamento responsvel pelo gerenciamento de um conjunto de equipamentos dedicados a telefonia IP, quais sejam: Tel IP, TM, GW, GC e MCU. Suas principais funes so: executar a traduo de

22 endereamento dos diversos equipamentos, controlar o acesso dos equipamentos rede dentro de sua Zona, e controlar a banda utilizada (BERNAL, 2008). Rede IP Pode ser definida como uma rede de dados que utiliza o protocolo TCP/IP (WALLINGFORD, 2005). STFC Significa Sistema de Telefonia Fixa Comutada, ou seja, o nosso sistema telefnico convencional (WALLINGFORD, 2005). TM ou Terminal Multimdia no caso da Ilustrao anteriormente pode ser identificado como um Computador que tenha vrios recursos Multimdia, dentre eles o VoIP (WALLINGFORD, 2005). A comunicao entre os terminais VoIP ocorre com dois processos ao mesmo tempo, o controle da chamada com sinalizao e processamento da voz. Na sinalizao da chamada o que ocorre que dois ou mais terminais atravs de um ou mais Gateways estabelece uma chamada criando canais virtuais de controle entre os equipamentos envolvidos, ento aps isso feito um acompanhamento dessas chamadas atravs desses canais com o intuito de detectar alteraes ou eventos, e por ltimo tem-se a finalizao, aonde atualiza-se o status dos canais e libera-se os terminais, conforme citaes de Bernal (BERNAL, 2008):Estabelecimento da chamada (call setup): ocorre entre 2 ou mais terminais e envolve um ou mais GKs, para obteno da informao dos terminais de uma mesma zona ou de zonas distintas. Pode envolver tambm os GCs e GWs, caso incluam terminais do STFC, ou os MCUs, caso seja estabelecida uma conferncia. Estabelecida a chamada, so criados canais virtuais de controle entre todos equipamentos envolvidos (BERNAL, 2008 ).

Acompanhamento da chamada (call handling): feito atravs dos canais de controle no decorrer da chamada para identificar perda de conexo e outros eventos relevantes e dependentes dos servios adicionais permitidos pelos terminais, quais sejam: atendimento simultneo, chamada em espera, e etc (BERNAL, 2008 ).

Finalizao da chamada (call termination): libera os terminais e outros equipamentos envolvidos, libera os canais de controle e atualiza o status dos terminais junto aos

23equipamentos da rede (BERNAL, ). 2008

No processamento da voz o que ocorre o controle do transporte da mesma, ou seja, a chamada estabelecida entre os terminais e so definidos o tipo de media a ser transportada, so criados canais virtuais para o transporte e aps isso se inicia o processo de transporte de media de forma bidirecional entre os terminais em tempo real.Controle do transporte de Voz (transport control): estabelecida a chamada, os terminais (e GWs ou MCUs, conforme o caso) iniciam um processo de definio do mecanismo de transporte de Voz onde eleito um mestre, identifica-se o tipo de media a ser transportada (Voz) e so criados os canais virtuais de controle e de media (BERNAL, 2008 ).

Transporte de media (media stream transport): inicia-se o transporte bidirecional em tempo real de media (Voz) entre os terminais envolvidos atravs dos canais virtuais criados na fase anterior. So usados recursos dos pacotes UDP da rede IP para minimizar o overhead do protocolo, otimizando o uso da rede (BERNAL, 2008 ).

Todas as definies e arquitetura apresentadas anteriormente partiram de um estudo feito para uma topologia especifica, mas possvel se ter uma transmisso de VoIP utilizando apenas alguns recursos acima citados e ou mesmo juntar alguns recursos em um s servidor.

2.4 PILHA DE PROTOCOLOS VOIP

O VoIP pode utilizar os protocolos de transporte TCP ou UDP da arquitetura TCP/IP como plataforma base para a comunicao de chamadas de voz, e sobre esses protocolos existe uma pilha de protocolos de camada de aplicao operando. A pilha de protocolos VoIP na camada de aplicao apresenta trs divises (Figura 4) a considerar: Sinalizao, Controle de Gateway e media(voz).

24

Figura 4: Pilha de Protocolos VoIP Fonte: (BERNAL, 2008)

Na camada de aplicao diversos protocolos compem a arquitetura VoIP, como observa-se a na Figura 4. Na parte de sinalizao identifica-se o protocolo SIP que trafega via UPD e a pilha de protocolos H.323 que composta por pelo menos cinco protocolos distintos, o H.450, H.235, H.225(Q.931) e H.245 que trabalham sobre TCP e H.225(RAS) que trabalha sobre o UDP, cada protocolo com a sua caracterstica e funo dentro do padro H.323. Tanto o H.323 quanto o SIP tem a mesma funo e pode ser definida como estabelecer sesses (conexes), eles iniciam, modificam e finalizam essas sesses de modo a sinalizar para que uma chamada de VoIP possa ser realizada. Alm da pilha de protocolos H.323 e o protocolo SIP, ainda tem-se o protocolo IAX, que tem a mesma funo de sinalizao, porm um protocolo utilizado apenas para trabalhar com o sistema Asterisk de gerenciamento de chamadas VoIP. Na parte de Controle de Gateway, temos os protocolos MEGACO e MGCP, que so responsveis pelo controle de sinalizaes e eventos de um terminal, ou seja, quando uma pessoa tira o telefone do gancho so eles que vo identificar esse evento e retornar o tom de linha, sendo que o MEGACO tem a mesma funo do MGCP s que com algumas melhorias e pode ser considerado uma evoluo do mesmo.

25 Na diviso de media esto os protocolos responsveis por trafegar os dados, que so o RTP e RTCP, so eles que fazem o controle de cada pacote de media encaminhando de um servidor a outro, levando com si as informaes compactadas pelo chamados Audio Codecs, que so protocolos com algortimos responsveis pela compactao de dados (DAVIDSON, 2006). Verificando a pilha de protocolos VoIP, pode-se definir que para a sinalizao das chamadas pode-se utilizar o protocolo SIP ou IAX ou pilha H323, e na parte de controle de gateway tem-se os protocolos MGCP e MEGACO que so sempre utilizados ambos para esta parte da chamada, e na ltima camada, ou seja, na parte de voz, tem-se os codecs que trabalham sobre os protocolos RTP e RTCP, assim formando todo o conjunto de protocolos necessrios pra uma chamada VoIP.

2.4.1 Protocolo H.323

O protocolo H.323 uma recomendao e no um protocolo em si, esta recomendao engloba um conjunto de protocolos a ser utilizados para que se tenha um padro de mercado, uma vez que se cada operadora utilizasse um padro o sistema no funcionaria, ento a ITU definiu a pilha de protocolos H.323 em 1996.Em 1996, a ITU emitiu a recomendao H.323, intitulada "Visual Telephone Systems and Equipment for Local Area Networks Which Provide a Non-Guaranteed Quality of Service" (ou seja, sistemas e equipamentos de telefonia visual para redes locais que oferecem uma qualidade de servio no garantida). S mesmo a indstria de telefonia pensaria em tal ttulo. A recomendao foi revisada em 1998, e essa recomendao H.323 revisada foi a base para os primeiros sistemas amplamente difundidos de telefonia da Internet (TANENBAUM, 2003, 730) .

Para se realizar uma chamada de VoIP, utilizasse protocolos para codificar e decodificar a voz (Codec). Dentro da pilha de protocolos H.323 pode-se encontrar uma srie de

26 protocolos que so necessrios para que a chamada de VoIP seja realizada, e possuir suporte aos padres de Codec G.7XX, conforme Figura 5.

Figura 5: Pilha de protocolos do H.323 Fonte: (Tanenbaum , 2003. Computer Networks, p. 731)

Na negociao de qual Codec ser utilizado, destaca-se o protocolo chamado H.245. O protocolo RTCP responsvel por controlar os canais RTP, o RTP utilizado para a transmisso de dados em tempo real, esses dados so transmitidos aps serem compactados utilizando os Codec's. Para estabelecer e encerrar conexes, utilizasse o protocolo Q.931, e no controle de chamadas e gerenciamento do gatekeeper (se presente), utilizado o protocolo H.225, que tem como funo a atualizao de status, controle de banda entre outros.

2.4.2 Protocolo SIP

Session Initiation Protocol (SIP), um protocolo de aplicao utilizado para estabelecer chamadas VoIP, o SIP trabalha com um mecanismo para estabelecer sesses, ele apenas inicia, modifica e termina sesses, e pode ser utilizado para outros recursos alm do VoIP.O SIP pode estabelecer sesses de duas partes (ligaes telefnicas comuns), sesses de vrias partes (onde todos podem ouvir e falar) e sesses de multidifuso (com um transmissor e muitos receptores). As sesses podem conter udio, vdeo ou dados, sendo que os dados so teis para, por exemplo, a realizao de jogos em tempo real com vrios participantes. O SIP cuida apenas da configurao, do gerenciamento e

27do encerramento de sesses. Outros protocolos, como RTP/RTCP, so usados para transporte de dados. O SIP um protocolo da camada de aplicao e pode funcionar sobre o UDP ou o TCP (TANENBAUM, 2008, pag. 734).

Seguindo a filosofia da IETF (Internet Engineering Task Force), o SIP foi projetado tendo como foco a simplicidade, e, como um mecanismo de estabelecimento de sesso, ele apenas inicia, termina e modifica a sesso, o que o torna um protocolo que se adapta confortavelmente em diferentes arquiteturas. Ele oferece seis tipos de servios para iniciao e finalizao de sesses multimdias: Localizao do Usurio - O SIP responsvel pela localizao do terminal para estabelecer a conexo; Disponibilidade do Usurio - Responsvel por realizar a vontade do usurio em estabelecer uma sesso de comunicao; Recursos do Usurio - Responsvel pela determinao dos meios a serem utilizados; Caractersticas da Negociao - Responsvel pela negociao e acordo entre as partes, quanto s funcionalidades que sero compartilhadas; Gesto da Sesso - Responsvel por iniciar, terminar ou colocar em espera, sesses; Modificar Sesso - Responsvel por modificar uma sesso em andamento.

Verificando a forma de funcionamento e comunicao do SIP pode-se definir algumas caractersticas para ele, a simplicidade, pois ele trabalha usando apenas seis mtodos descritos acima, que por sua vez permite uma no independncia, e trabalha independente do protocolo de transporte, e baseada em texto. (KELLER, 2009).

28 2.4.2.1 Arquitetura do SIP

O SIP possui alguns componentes principais em sua arquitetura, que so: Agente do Usurio - o software ou terminal final, O Agente do Usurio funciona como um cliente no pedido de inicializao de sesso e tambm age como um servidor quando responde a um pedido de sesso. Arquitetura definida como Cliente e Servidor (KELLER, 2009). Servidor Proxy SIP - O Servidor Proxy SIP encaminha pedidos do Agente do usurio para o prximo servidor SIP retendo tambm informaes com a finalidade de poderem ser usadas para fins contabilsticos ou informao. O servidor Proxy SIP pode operar com comunicao stateful (por exemplo, como um circuito) ou stateless (por exemplo como um TCP). O servidor SIP stateful pode dividir chamadas por ordem de chegada para que vrios canais possam responder todos ao mesmo tempo sendo que o primeiro a atender ficar com a chamada. Essa capacidade significa que se pode especificar que um telefone de desktop SIP, um telefone celular SIP e aplicaes de videoconferncia de casa SIP possam sinalizar simultaneamente quando estiver a receber uma chamada. Ao atender um dos dispositivos e iniciada a conversao, os restantes param de sinalizar. O servidor proxy SIP pode utilizar mltiplos mtodos para tentar resolver o pedido de endereo de host, incluindo busca de Domain Name Server (DNS), busca em base de dados ou retransmitir o pedido para o outro servidor proxy (KELLER, 2007). Servidor de redirecionamento SIP - A funo do servidor de redirecionamento SIP fornecer a resoluo de nome e localizao do usurio. O servidor de redirecionamento SIP reponde ao pedido do Agente do Usurio fornecendo

29 informaes sobre o endereo do servidor para que o cliente possa contatar o endereo diretamente (KELLER, 2007). Registrador - O Registrador SIP fornece um servio de informao de localidades, ele recebe informaes do Agente do Usurio e armazena essa informao de registro. A arquitetura do SIP faz uso do Session Description Protocol (SDP). O SDP foi uma ferramenta de conferncia multicast via IP desenvolvida para descrever sesses de udio, vdeo e multimdia. A descrio da sesso pode ser usada para negociar uma aceitao de um conjunto de tipos de media compatveis. Como resultado dessa arquitetura, o endereo do usurio SIP sempre o mesmo (por exemplo sip:[email protected]), mas ao invs de estar amarrado a um endereo esttico, ele comporta-se como um endereo dinmico que reflete a localizao atual do destinatrio. As sesses podem envolver mltiplos participantes, comunicaes dentro de uma sesso em grupo podem ser via multicast ou via uma rede de chamadas unicast, ou at mesmo uma combinao dos dois (KELLER, 2009).

2.4.2.2 Funcionamento do SIP

O SIP utiliza um sistema de Request/Method (Mtodos/Requisies) e Response (Respostas) em seu funcionamento para estabelecer uma sesso de chamada (RFC3261, 2009). Neste contexto um telefone SIP comunica com o outro enviando um Request/Method e recebendo um Response, como se fosse uma solicitao e resposta de um para o outro. Existem bsicamente seis tipos de Request/Method (, 2009), que so:

30 INVITE (convidar) - Estabelece uma sesso; ACK (confirmar) - Confirma o comando INVITE; BYE (finalizar) - Finaliza uma sesso; CANCEL (cancelar) - Cancela a sesso ainda no respondida; REGISTER (registro) - Informa a localizao do usurio (nome do usurio@IP); OPTIONS (opes) - Informa a capacidade e disponibilidade dos telefones de chamada e recebimento SIP. Os Request/Method do SIP acionam as Response, que so definidas em seis classes (, 2009): 1xx Respostas de informaes, a resposta foi recebida e est sendo processada: 100 Tentando (Trying); 180 Chamando (Ringing); 181 Chamada encaminhada (Call is being forwarded); 182 Chamada na Fila (Queued); 183 Progresso da Sesso (Session Progress); 2xx Respostas de confirmao, a requisio foi recebida e est sendo processada: 200 OK; 202 Aceito Usado para referncias; 3xx Respostas de redirecionamento, a requisio no foi completada e so necessrios redirecionamentos e etapas adicionais: 300 Mltiplas escolhas (Multiple choices); 301 Movido Permanentemente (Moved permanently); 302 Movido Temporariamente (Moved temporarily);

31 303 Verifique outro (See other); 305 Use Proxy (User Proxy); 380 Servio Alternativo (Alternative Service); 4xx Erro no cliente a requisio contm erros e o servidor no pode processla: 400 Requisio invlida (Bad Request); 401 No autorizado (Unauthorized); 402 Necessita Pagamento (Payment Required); 403 Proibido (Forbidden); 404 No Encontrado (Not Found); 405 Mtodo No Permitido (Method no allowed); 406 No permitido (Not acceptable); 407 Autenticao no Proxy requisitada (Proxy authentication required); 408 Tempo limite do Pedido (Request timeout); 409 Conflito (Conflict); 410 Saiu O utilizador existia, mas no est mais disponvel (Gone); 411 Comprimento requerido (Length required); 413 Pedido de Dados Muito Longo (Request entity too large); 414 Pedido URI Muito Longo (Request-URI too large); 415 Tipo de media no Compatvel (Unsupported media type); 416 Esquema URI no Compatvel; 420 Extenso invlida (Bad extension); 421 Extenso necessria;

32 480 Temporariamente No Disponvel (Temporarily not available); 481 Chamada/Transao No Existente (Call leg/transacion does not exist); 482 Loop Detectado (Loop Detected); 483 Excesso de saltos (Too many hops); 484 Endereo Incompleto (Address incomplete); 485 Ambguo (Ambiguous); 486 Ocupado (Busy here); 487 Pedido Concludo; 488 No Aceito Aqui; 491 Pedido Pendente; 493 Indecifrvel; 5xx Erros do servidor, a requisio foi recebida mas o servidor no pode process-la: 500 Erro Interno do Servidor (Internal Server Error); 501 No Implementado (Not Implemented) 502 Gateway invlido (Bad gateway); 503 Servio No Disponvel (Service unavailable); 504 Expirou o tempo de busca do servidor (Server time-out); 505 Verso No Compatvel - O servidor no compatvel com essa verso do protocolo SIP (SIP Version not supported); 513 Mensagem Muito Longa; 6xx - Erros globais: 600 - Ocupado em Todo Lugar;

33 603 Rejeitar; 604 - No Existe em Nenhum Lugar; 606 - No aceito; Para simplificar pode-se observar a Figura 6 que representa o funcionamento de uma chamada que no ocorreu por erro de servidor e a Figura 7 que representa uma chamada completada e finalizada.

Figura 6: Chamada em SIP no completada Fonte: do Autor

Neste caso, uma sesso de chamada SIP entre dois telefones ocorre da seguinte forma: o telefone de origem envia um convite, o telefone do destino envia de volta uma resposta de informao 100 (Trying), antes do sistema comear a executar qualquer outra etapa o telefone de destino j informa um erro, o 503(Service Unavailable) que quer dizer que o servio no est disponvel, aps isso a origem envia a confirmao de recebimento do erro com ACK.

Figura 7: Chamada em protocolo SIP completada Fonte: do Autor

Neste caso de sesso SIP, o telefone de origem envia um convite (INVITE SDP), o telefone do destino envia de volta uma resposta de informao 100 (Trying), quando o

34 telefone de destino comea a tocar, a resposta 183 (Session Progress) enviada de volta, quando o destino atende, o SIP envia uma resposta 200 (OK), o telefone de origem responde com ACK, confirmando o convite de chamada, a conversao transmitida como dados via protocolo RTP. quando o telefone de destino desliga, a requisio BYE (para finalizar) enviada ao telefone de origem, o telefone de origem responde com uma resposta 200(OK), e a chamada finaliza com sucesso.

2.4.3 Protocolo IAX (Inter-Asterisk Exchange)

O protocolo IAX de cdigo aberto e foi desenvolvido com o objetivo de permitir uma comunicao entre um servidor Asterisk e outro, e atualmente trabalha em sua verso IAX2. um protocolo que transporta a sinalizao de chamadas e media em uma nica porta TCP/IP UDP, a 4569, o que faz com que ele se torne muito mais simples do que outros protocolos, como SIP e H.323, e principalmente trabalhe melhor se comunicando mesmo atravs de NAT ou Firewall.

2.4.3.1 Funcionamento do IAX2

A funcionalidade do IAX2 baseada na economia de banda, e funciona por meio de transmisso de frames e miniframes.Basicamente, a chamada estabelecida e monitorada pelos frames completos, enviados de tempos em tempos, mas o udio trafega de um ponto a outro por meio de miniframes (KELLER, 2009, pg. 124).

Os frames completos possuem as informaes sobre a sinalizao da chamada ou sobre a media e so utilizados para controlar a chamada, ou seja, a inicializao, configurao e

35 encerramento, tambm so enviados de forma confivel e exigem uma confirmao de recebimento imediato, podem eventualmente ser utilizados para transportar media. Os miniframes so responsveis apenas por transportar a media aps a chamada ser estabelecida, alm de no serem enviados de forma confivel por no precisarem de confirmao (KELLER, 2009).

2.4.4 Protocolos MGCP e MEGACO

O protocolo MGCP (Media Gateway Control Protocol) um exemplo de modelo de controle de chamada centralizado. Foi proposto em outubro de 1999, RFC 2705. A sua arquitetura foi definida no RFC 2805 no ano de 2000. O MGCP define um ambiente em que os gateways de telefonia so controlados a partir de um componente central chamada de Call Agent ou Media Gateway Controller (apresentados na arquitetura VoIP). Um gateway MGCP lida com a traduo de udio entre a rede pblica e a rede de comutao de pacotes. Os gateways interagem com um Call Agent que realiza o processamento do sinal e da chamada (gera tom de linha). Os principais componentes do MGCP so: terminais, gateways e call agents. Sob a demanda de um call agent, os gateways procuram por eventos (como o fato de o usurio tirar o telefone do gancho) e fornecem sinalizao para as interfaces dos terminais.Media Gateway Control Protocol (MGCP) - O protocolo MGCP, definido atravs de recomendao RFC 2705 do IETF, usado para controlar as conexes (chamadas) nos gateways presentes nos sistemas VoIP. O MGCP implementa uma interface de controle usando um conjunto de transaes do tipo comando resposta que criam, controlam e auditam as conexes (chamadas) nos gateways. Estas mensagens usam como suporte os pacotes UDP da rede IP, e so trocadas entre os gateways controller e gateways para o estabelecimento, acompanhamento e finalizao de chamadas (BERNAL, 2008, ).

36 MEGACO a evoluo do padro MGCP. Atualmente o MEGACO conhecido com uma designao do ITU (International Telecommunication Union) como H.248 e definido na RFC 3015. Ele semelhante ao MGCP em muitas formas, MEGACO oferece vrias melhorias e funcionalidades que o MGCP no oferece. O MGCP foi desenvolvido com a simples premissa de centralizar o controle de chamadas de um ponto central usando um MGC (Media Gateway Control ou Call Agent) e possuindo diversos MG realizando operaes de baixo nvel como conexes e desconexes.Media Gateway Control Protocol (MEGACO) - O protocolo MEGACO resultado de um esforo conjunto do IETF e do ITU-T (Grupo de Estudo 16). O texto da definio do protocolo e o mesmo para o Draft IETF e a recomendao H.248, e representa uma alternativa ao MGCP e outros protocolos similares. Este protocolo foi concebido para ser utilizado para controlar gateways monolticos (1 nico equipamento) ou distribudos (vrios equipamentos). Sua plataforma aplica-se a gateway, controlador multi-ponto (MCU) e unidade interativa de resposta audvel (IVR). Possui tambm interface de sinalizao para diversos sistemas de telefonia, tanto fixa como mvel (BERNAL, 2008, ).

2.4.5 Protocolo RTP

O Real-time Transport Protocol (RTP) consiste em um protocolo de transporte que atua como uma interface melhorada entre aplicaes de tempo real e os protocolos de camadas j existentes, ou seja, ele tem a funo de transportar os dados de voz codificados em tempo real, dentro dos protocolos apresentados o RTP utilizando para transportar media na pilha H.323 e protocolos SIP e IAX (SILVA, 2006).O protocolo RTP utiliza o UDP como protocolo de transporte. A garantia de entrega e integridade dos dados, fornecida pelo protocolo TCP, no adequada para as aplicaes do tipo multimdia em tempo real, pois gera overhead e atrasos no tolerados por essa categoria de aplicao. No existem portas UDP padro para a transmisso de voz pelas sesses RTP. Essas portas so negociadas dinamicamente pelos protocolos de sinalizao durante o processo de estabelecimento de chamadas. O RTP apresenta mecanismos como nmeros de seqncia e timestamping de pacotes, a fim de garantir que eventuais perdas sero detectadas pelo receptor. A implementao usando UDP/RTP no implementa a configurao ou retransmisso de pacotes perdidos, visto que as mesmas no se adaptam s caractersticas das aplicaes de tempo real (SILVA, 2006, p. 17).

37O protocolo RTP, definido atravs da recomendao RFC 1889 do IETF, o principal protocolo utilizado pelos terminais, em conjunto com o RTCP, para o transporte fim-a-fim em tempo real de pacotes de media (Voz) atravs de redes de pacotes. Pode fornecer servios multicast (transmisso um para muitos) ou unicast (transmisso um para um). O RTP no reserva recursos de rede e nem garante qualidade de servio para tempo real (BERNAL, 2008, ).

2.4.6 Protocolo RTCP

O protocolo Real-time Transport Control Protocol (RTCP) trabalha em conjunto com o RTP, atuando como responsvel pelo transporte de dados. O RTCP tem apenas um tratamento minimo de monitoramento de entrega de dados, uma vez que ele faz uso de pacotes UDP(BERNAL, 2006).

O transporte dos dados incrementado atravs do RTCP (protocolo de controle) que monitora a entrega dos dados e prov funes mnimas de controle e identificao. No caso das redes IP este protocolo faz uso dos pacotes UDP, que estabelecem comunicaes sem conexo (BERNAL, 2008, ).

2.4.7 udio Codec

No sistema VoIP, devido ao fato dos dados terem que ser transportados em tempo real e as larguras de banda serem limitadas e ter pontos crticos, se torna necessrio que as informaes sejam compactadas em tamanhos menores que tenham maior agilidade e evitem o desperdcio de largura de banda para serem transportados, para essa compactao surgiram alguns algoritmos que efetuam essa codificao, cada um com algumas caractersticas diferentes de qualidade e utilizao de banda (DAVIDSON, 2006).

38 No sistema tradicional cada canal de Voz digitalizada necessita de uma banda de 64 kbit/s que so transmitidos usando o codificador (udio Codec) G.711 - Pulse code modulation (PCM) of voice frequencies. J no sistema mais complexo de voz sobre IP, podese utilizar vrios udio Codec's para efetuar essa codificao. Os Codecs so entendidos como sendo vrios modelos matemticos utilizados para compactar as informaes de udio em uma chamada VoIP. O termo Codec refere-se a um COdificador/DECodificador, um dispositivo que converte entre analgico e digital. Na figura a seguir (Figura 8 Tabela de Codec's) pode-se observar uma tabela apresentando uma variedade de Codec's, juntamente com suas caractersticas de largura de banda utilizada (Bit rate), qualidade de voz, algoritmo utilizado para compactao e tempo de atraso na recepo.

Figura 8: Tabela de Codec's Fonte: (BERNAL, 2008).

Nos sistemas tradicionais o sinal de Voz utiliza uma banda de 4 kHz, e digitalizado com uma taxa de amostragem de 8 kHz para ser recuperado adequadamente (Princpio de Nyquist). Como cada amostra representada por um byte (8 bits, com at 256 valores distintos), cada canal de Voz necessita de uma banda de 64 kbit/s (8.000 amostras x 8 bits). Esta forma de digitalizao do sinal de Voz atende a recomendao ITU-T G.711 - Pulse code modulation (PCM) of voice frequencies.

39Nos sistema de transmisso de Voz sobre IP, onde a demanda por banda crtica, torna-se necessrio utilizar tambm algoritmos de compresso do sinal de Voz. Esses algoritmos tm papel relevante pela economia de banda que proporcionam. O seu uso tem sido possvel graas ao desenvolvimento dos processadores de sinais digitais (DSPs), cuja capacidade de processamento tem crescido vertiginosamente (BERNAL, 2008, ).

Os Codec's G.729, G.729 Anexo A e G.723.1 tem licena para que possam ser utilizados, porm no caso de somente repasse, no existe a necessidade desta licena, uma vez que se ocorrer uma chamada utilizando o G.729 e encaminhar usando o mesmo, o sistema no vai precisar COdifificar e DECodificar a voz, vai apenas repassar o que recebeu, assim liberando o uso da licena, ou seja, s se usa a funo dos Codec's em caso de converso de um tipo para outro (MEGGELEN, SMITH, MADSEN, 2005).

3 FERRAMENTAS UTILIZADAS NA SOLUO

Neste captulo ser apresentado as ferramentas que foram utilizadas para o desenvolvimento da soluo. Descreve-se brevemente o que o sistema operacional Debian 5, o servidor de aplicao Apache e linguagem PHP, e uma sesso detalhando o software Asterisk.

3.1 SISTEMA OPERACIONAL DEBIAN 5

O Debian um sistema operacional de Cdigo Aberto (ou software livre) de licena GNU, sendo que um sistema operacional um conjunto de aplicaes bsicas que faz o computador ou servidor funcionarem. O Debian usa o Kernel (ncleo do sistema operacional) Linux, porm a maioria das aplicaes utilizadas em seu conjunto vem de outros projetos de software livre, e so inseridos a um conjunto de aplicaes formando um sistema operacional com vrias funcionalidades (, 2009).

3.2 SERVIDOR DE APLICAO APACHE E LINGUAGEM PHP

O Apache o servidor WEB livre mais utilizado no mundo. Ele foi criado em 1995 por Rob McCool, ento funcionrio do NCSA (National Center for Supercomputing Applications). a principal tecnologia da Apache Software Foundation, responsvel por mais de uma dezena de projetos envolvendo tecnologias de transmisso via web, processamento de

41 dados e execuo de aplicativos distribudos. O servidor de aplicao compatvel com o protocolo HTTP verso 1.1. Suas funcionalidades so mantidas atravs de uma estrutura de mdulos, permitindo inclusive que o usurio escreva seus prprios mdulos utilizando a API do software. disponibilizado em verses para os sistemas operacionais Windows, Novell Netware, OS/2, Unix, Linux e FreeBSD.

3.3 COMPARATIVO

ENTRE

ASTERISK

E

SISTEMAS

PARA

GERENCIAMENTO DE CHAMADAS VOIP

No mercado existem outras ferramentas para o gerenciamento de chamadas VoIP alm do Asterisk, porm tais ferramentas, normalmente apresentam algum tipo de deficincia no conjunto, ou seja, compatibilidade entre protocolos, capacidade de funes ou ajustes. Dentre as ferramentas pesquisadas, pode-se citar o OPENSER e o Freeswitch, porm ambas das ferramentas tem propsitos diferenciados quando comparadas ao Asterisk. Ambos os sistemas delas faz o tratamentos da parte de media da chamada, ou seja, todo o trfego de voz no tratado pelo sistema, ento somente a parte de sinalizao verificada, sendo assim uma diretiva que impediria a possibilidade de utilizao como servidor de media ou media gateway. Alm da questo de voz, os sistemas citados operam apenas utilizando o protocolo SIP, e para que possam utilizar outros protocolos existe a necessidade de aplicaes externas a ele, sendo que mesmo expandindo para esta opo externa, o outro protocolo compatvel seria o H.323, neste caso o Asterisk facilmente configurado para utilizar protocolo SIP, IAX e H323, sem nem uma necessidade adicional de implementao. Verificando essas premissas, pode-se identificar que apenas o Asterisk apresenta um padro que venha a ser compatvel

42 com a soluo de MEDIA GATEWAY VOIP. Na seqncia ser apresentado o modelo proposto para MEDIA GATEWAY VOIP.

3.4 O SOFTWARE ASTERISK

O Asterisk um software de cdigo aberto que tem as mesmas funcionalidades de um PABX convencional, porm utilizando a tecnologia de Voz sobre IP (VOIP), e pode ser considerado o maior conjunto de ferramentas para telefonia livre que existe na atualidade (, 2009). Ele foi inicialmente desenvolvido pela empresa Digium, e hoje recebe contribuies de desenvolvedores de todo o mundo e tem o seu cdigo aberto, devido a isso ele vem crescendo rapidamente e tendo seus horizontes ampliados (, 2009). Uma das principais caractersticas deste software aceitar vrios tipos de compactao de voz e protocolos de comunicao, tornando-o muito completo e podendo ser utilizado para vrios propsitos e tipos de projetos, tais como: Software de gerenciamento de media (Media Gateway) - pode ser definido como um equipamento que gerencia os pacotes de dados podendo converter ele de um formato para outro e alterar o formato de compactao da voz, ou mesmo gerenciar chamadas de um ponto a outro podendo alternar entre as tecnologias utilizando um hardware especifico, por exemplo, direcionar uma chamada que chegou em uma linha de telefone convencional para uma linha virtual gerenciada pelo sistema Asterisk enviado para qualquer ponto de acesso a internet que possa receber a mesma;

43 Unidade de resposta Audvel (URA) - um sistema utilizado por empresas para efetuar um atendimento eletrnico ao cliente, ou seja, um cliente entra em contato com a URA e recebe instrues de atendimento e disca nmeros para prosseguir at o setor desejado; PABX IP - faz o controle de encaminhamento das chamadas dentro da rede telefnica da empresa, passando ligaes entre ramais, com as mesmas funes de um PABX convencional, porm utilizando a rede IP. O Asterisk dispem de uma capacidade enorme de converter e interpretar diferentes protocolos de comunicao de voz, como principais possvel citar os protocolos SIP, H.323 e IAX, e estes so responsveis pela realizao da sinalizao das chamadas na rede IP (KELLER, 2009).

3.4.1 Como funciona o Asterisk

Pode-se dizer que o Asterisk dividido em mdulos, e cada um desses mdulos possui uma funcionalidade diferente e responsabilidade no conjunto, a configurao desses mdulos feita atravs de arquivos-texto de configurao com a extenso .conf, localizados na pasta /etc/asterisk dentro do sistema operacional (KELLER, 2009). Dentre os principais mdulos podemos listar os seguintes: agents.conf Agente das filas de atendimento; cdr.conf Configurao de bilhetes de chamadas (CDR Call Detail Records), parecido com um extrato de chamadas; digivoice.conf Configurao de canais de comunicao de hardware fornecido pela Digivoice;

44 extensions.conf Plano de discagem, pode-se dizer que toda a lgica do Asterisk se encontra neste mdulo de configurao. Neste modulo define-se o destino que as chamadas sero enviadas e identifica-se tambm a sua origem; features.conf Mdulo de configurao de funcionalidades do sistema, como transferncia, captura e outras funes de equipamentos PABX; h323.conf Configurao dos canais de comunicao que utilizam protocolo H.323; iax.conf Configurao dos canais de comunicao que utilizam protocolo IAX; logger.conf Arquivo utilizado para habilitar e desabilitar o log do Asterisk; meetme.conf Mdulo de configurao de salas de conferncia; musiconhold.conf Mdulo para configurar a msica em espera; queues.conf Mdulo para configurar filas de atendimento (DAC Distribuio automtica de chamadas); sip.conf Mdulo de configurao dos canais de comunicao que utilizam o protocolo SIP; voicemail.conf Mdulo de configurao para correio de voz; zapata.conf Mdulo de configurao de canais de hardware produzidos pela Digium e clones; chan_dahdi.conf Mdulo de configurao de canais de hardware produzidos pela Digium.

45 3.4.2 Sintaxe do Asterisk

Todos os Mdulos e arquivos de configurao do Asterisk seguem o mesmo padro de configurao, levando como padro uma sintaxe, que funciona na forma de sesses e tem vrias funes e opes dentro delas, dentro de cada arquivo de configurao do Asterisk possvel encontrar na forma de comentrios e exemplos sobre todas as formas de configurao e funes disponveis em cada mdulo (GONALVEZ, 2007). Exemplo de padro de sintaxe do Asterisk: [sesso1] opo1 = valor opo2 = valor [sesso2] opo1 = valor opo2 = valor

Conforme pode-se observar na sintaxe do Asterisk o nome das sesses est sempre entre colchetes e o valor das opes sempre aps um sinal de igual. Existem sesses com nomes especficos para algumas funes do sistema, normalmente funes padro, que se no caso do programador no preencher dentro de uma sesso o sistema interpreta a padro (default). Algumas delas so: [general] Define os valores padro dentro do arquivo de configurao em questo, ou seja, caso uma sesso no contenha todas as suas caractersticas especificadas, o sistema verifica a sesso [general]; [channels] especifica os canais de comunicao no arquivo zapata.conf;

46 [globals] Sesso destinada criao de variveis globais no plano de discagem.

3.4.3 Configurao de mdulo de canais de comunicao

Tanto os canais de comunicao em protocolo SIP, IAX e H.323 utilizam a mesma forma de configurao (KELLER, 2009), podendo sofrer apenas algumas variaes que so especificadas nos comentrios do arquivo de configurao, sendo que cada protocolo possui um arquivo de configurao especifico para que seja possvel definir os seus canais. Um canal de comunicao, pode ser do tipo, peer, friend ou user: type = peer significa que um canal que recebe chamadas atravs do Asterisk; type = user significa que um canal que faz chamadas atravs do Asterisk; type = friend significa que um canal que faz e recebe chamadas atravs do Asterisk. Todos os canais de comunicao possuem as mesmas possibilidades de ajuste, dentre todos os possveis no Asterisk, ou seja, eles so iguais porm podem ser configurados com caractersticas diferentes. Na sesso [general], que utilizada como um padro no caso de ajustes em comum entre os canais, tem-se os seguintes parmetros principais a definir (KELLER, 2009): context define um contexto padro para recebimento e envio de chamadas no canal; bindaddr especifica o endereo IP da interface que o Asterisk aceita conexes. Pode ser definido como 0.0.0.0 para aceitar de qualquer endereo; bindport especifica a porta que o sistema aceita conexes, sendo que, porta UDP 5060 para protocolo SIP e porta UDP 4569 para IAX2;

47 language Define uma identificao de qual linguagem o Asterisk est utilizando para funes de som, neste caso necessrio verificar os idiomas que a verso do Asterisk em questo tem disponvel; allow Habilita a utilizao de um Codec; disallow Desabilita a utilizao de um Codec.

Na sesso de configurao de cada canal de comunicao do Asterisk, pode-se inicialmente o nome do canal entre colchetes, aps o nome do canal (ou sesso como seria o correto), pode-se definir o seu tipo, sendo peer, friend ou user, conforme especificado anteriormente, aps isso os parmetros principais so (KELLER, 2009): allow Habilita a utilizao de um Codec, podendo se diferenciar do padro utilizado na sesso [general]; disallow Desabilita a utilizao de um Codec, podendo se diferenciar do padro utilizado na sesso [general]; callerid Define as informaes que sero enviadas para o destino da chamada, pode-se dizer que uma informao que identifica o canal de comunicao, como um nome para uma pessoa. context define um contexto para recebimento e envio de chamadas no canal, caso necessrio o canal pode ter mais de um contexto, para isso basta citar o ajuste mais de uma vez, o contexto definido no arquivo extensions.conf; host Defino o endereo IP ou domnio aonde o canal de comunicao est configurado, e tambm pode ser definido como dinmico quando no existir a necessidade deste nvel de segurana; username Define o nome do usurio do canal de comunicao, serve para o envio da autenticao do canal para o Asterisk.

48 secret define a senha do canal de comunicao; dtmfmode Define a forma de passagem de dgitos entre o cliente e o Asterisk, sendo que esta opo valida somente para o protocolo SIP e as opes possveis so: info As informaes de dgitos so passadas na forma de sinalizao SIP (RFC 3265). inband As informaes de dgitos so passadas na forma de um sinal udio e s funcionam utilizando Codec G.711. rfc2833 as informaes de digitos so passadas como eventos de udio ( o sistema mais utilizado e funciona como padro do sistema); auto o Asterisk usa o modo rfc2833 e se o lado do destino no aceitar a configurao o sistema troca para o modo inband automaticamente; Para facilitar pode-se verificar a Figura 9 a seguir como exemplo de configurao de canais SIP:

Figura 9: Exemplo de configurao de canais de comunicao Fonte: do Autor

A Figura apresenta uma estrutura simples de configurao do [general] e apenas um canal de comunicao que inicia a seo com o nome [CANAL], repare que no [general] tem-

49 se habilitados os Codec g729, alaw e ulaw, alm disso configurou-se o qualify, que serve para informar o tempo de resposta do servidor Asterisk at o local(endereo IP) aonde o canal de comunicao est configurado, ou seja, monitorar. Tambm tem-se a funo canreinvite habilitada para que os dados de media sejam enviados de um ponto a outro sem passar pelo servidor Asterisk, e na funo nat necessrio usar desabilitada pois supem-se que o sistema s ser usado com equipamentos que no esto atravs de NAT. O useragent serve apenas como um nome para o Asterisk, este que informado para outros equipamentos como identificao. J na parte do canal de comunicao se definiu o seu type como peer para que ele seja usado somente como receptor de chamadas, e foram configurados o usurio(username) e senha(secret) e o endereo IP como fixo no campo host. Lembrando que as configuraes que o canal de comunicao no estiver especificado so recebidas como herana do [general].

3.4.4 Configurao do plano de discagem

Aps definir as configuraes dos canais de comunicao para que seja possvel receber e enviar chamadas, deve-se definir os planos de discagem e parmetros para encaminhamento. Pode-se dizer que o plano de discagem do Asterisk a parte principal do sistema, pois neste mdulo que definida a origem e o destino de uma chamada. O plano de discagem (dialplan) do Asterisk, definido no arquivo extensions.conf, e composto de quatro partes principais, os contextos, extenses, prioridades e aplicaes (MEGGELEN, MADSEN, SMITH, 2005). Contextos o plano de discagem dividido em sees, que so chamadas contextos, e tem os nomes definidos conforme o padro de configurao de

50 sesses do Asterisk, ou seja, entre colchetes. Quando se define um canal de comunicao, tambm se define para qual contexto ele ser enviado, ento desta forma o sistema faz o envio da ligao. Extenses as extenses so definidas dentro de cada contexto criado, e pode-se definir uma ou vrias em cada contexto, e devem observar a seguinte sintaxe: exten => nome, prioridade, aplicao().

O nome basicamente o que foi discado pelo originador, que aps discar um nmero o sistema verifica na configurao do canal de comunicao originador qual a sua extenso e ento verifica se o nmero discado se encaixa com o nome e segue a prioridade listada executando em cada passo a aplicao definida. Prioridades uma prioridade definida para que o Asterisk possa interpretar o plano de discagem em passos, sendo que possvel adicionar vrias extenses com prioridades diferentes no mesmo contexto e assim o sistema vai percorrer todo o contexto e executar a aplicao desejada, sendo que a prioridade deve ser definida na ordem numrica, ou tambm atravs da letra n que significa prximo, conforme exemplo: exten => nome,1,aplicao exten => nome,2,aplicao exten => nome,n,aplicao Aplicaes Cada aplicao executa uma ao especifica, que pode ser emitir um som, efetuar uma discagem, atender ou at mesmo desligar uma chamada, no total o Asterisk possui 170 aplicaes ou comando que podem ser executados (GONALVEZ, 2007), para obter a forma de funcionamento e uso de cada uma

51 delas basta acessar o console Asterisk e executar o comando core show application direto no console do Asterisk. Podemos observar algumas das principais aplicaes do Asterisk: Answered() tem funo de atender uma chamada; Hangup() tem funo de desligar uma chamada; Dial() efetua a discagem da chamada; Playback() tem funo de tocar arquivos de som no Asterisk; Goto() tem funo de encaminhar a discagem para outra extenso; GotoIf() tem funo de encaminhar a discagem para outra extenso, sendo que diferente do Goto(), ele s faz isso se satisfazer uma condio especifica. Exemplo de plano de discagem: [intra_rede] exten => 9002,1,Dial(SIP/9002/40) exten => 9002,2,Hangup

Neste exemplo tem-se um plano de discagem com nome de intra_rede, onde o usurio de qualquer canal de comunicao do Asterisk pode discar 9002, ento o sistema vai efetuar uma discagem (Dial()) para o canal de comunicao 9002, utilizando o protocolo SIP, e o sistema vai discar durante quarenta segundos, e aps isso efetuar o prximo passo que desligar a chamada (Hangup).

52 3.4.5 Configurao avanada para o plano de discagem

Alm dos planos de discagem simples do Asterisk, que so basicamente utilizados para ligar entre canais de comunicao ou recursos de auto-atendimento, voicemail, entre outros. possvel definir planos de discagem utilizando mscaras de discagem, que representem somente uma parte do nmero discado, ou mesmo um prefixo ou cdigo de rea utilizado na telefonia convencional, alm disso tambm possvel utilizar-se das variveis de canal e expresses matemticas e lgicas, sendo que existem uma srie de variveis disponveis no Asterisk que podem ser verificadas no arquivo /usr/src/astersik-verso/docs/channelcariables que gerado a cada instalao do sistema com a funo de documentao para o programador (KELLER, 2009).

3.4.5.1 Mscaras de discagem

As mscaras de discagem no Asterisk foram desenvolvidas para que fosse possvel efetuar discagem para vrios nmeros sem a necessidade de ter que cadastrar um a um no sistema, dessa forma, so cadastradas apenas mscaras genricas e possvel que seja efetuada ligaes dentro de vrios padres. Existe um padro na rea de telefonia para esse sistema de mscaras de discagem, aonde um caractere substitui uma faixa de numerao, sendo que as mscaras devem sempre ter em seu incio o caractere underline (_) (KELLER, 2009). Na Tabela 1 pode-se observar as mscaras disponveis no Asterisk:

53 Descrio

uer digito de 0 a 9.

uer digito de 1 a 9.

uer digito de 2 a 9.

qualquer nmero, se estiver entre colchetes, neste caso o 1, 2 e

um ou mais caracteres (inclusivo).Tabela 1: Sintaxe das mscaras de discagem do Asterisk

um ou mais caracteres (exclusivo).

Para facilitar o entendimento pode-se analisar as seguintes mscara de discagem:

1 - _[2-5]XXXXXXX 2 - _9NN. A mscara 1, representa um nmero comeando com 2,3,4 ou 5 e com mais 7 dgitos aps isso, podendo ser de 0 a 9. A mscara 2, representa um nmero comeando com 9, e que contm 2 dgitos que vo de 2 a 9 e aps isso um ou mais nmeros quaisquer.

3.4.5.2 Variveis, expresses matemticas e lgicas

As variveis no Asterisk tem alguns detalhes que devem ser levados em considerao antes de serem criadas, tais como: No podem ter espaos em branco. Somente caracteres de A a Z, a a z, - (hfen) e _ (underline) podem ser utilizados para a sua nomenclatura; Para referenciar o valor de uma varivel, deve-se sempre colocar a varivel entre chaves: ${varivel}.

54 As variveis tambm podem ser de trs tipos, globais, de canal e de ambiente. As variveis Globais so criadas na sesso globals do arquivo extensions.conf. O valor de uma varivel global permanece sempre o mesmo para todos os contextos e extenses e pode ser usada por qualquer um definido, possvel definir o valor de uma varivel global utilizando a funo GLOBAL() e para se criar e alterar os valores de variveis pode-se usar a aplicao Set(), conforme exemplo:

[globals] RAMAL=SIP/4003 [ramais] exten => 4003,1,Set(GLOBAL(RAMAL)=SIP/4003) exten => 4003,2,Dial(${RAMAL}) Neste exemplo, utiliza-se na primeira etapa do sesso ramais da varivel global para criar uma chamada SIP para o destino 4003, e depois na segunda etapa, executado um Dial() para a varivel RAMAL. Alm das variveis globais, tem-se as de canal, que so criadas no momento da criao de um canal, ou seja, esto sempre associadas a uma chamada, ento enquanto uma chamada estiver ativa ela pode ser usada e acessada somente pelos canais envolvidos na chamada. Alm das variveis de canal que pode-se criar, existem uma srie que j so pr-definidas e podem ser verificadas conforme o arquivo de documentao que se encontra em no arquivo /usr/src/asrterisk-verso/docs/channelvariables (GONALVEZ, 2007). Uma das variveis pr-definidas mais utilizada a EXTEN, que faz a funo de buscar o valor do nome da extenso que est sendo usada, conforme exemplo:

55 [exemplo] exten => _XXXXXXXX,1,Dial(SIP/TESTE/$

{EXTEN},60) exten => _XXXXXXXX,2,Hangup Neste caso, no primeiro passa da chamada o EXTEN vai buscar os 8 dgitos de 0 a 9, definidos por XXXXXXXX, e vai discar durante sessenta segundos, e no segundo passo efetuar o desligamento da chamada. Por ltimo tem-se as variveis de ambiente Linux, e pode-se referenci-las com a funo ENV().

3.4.6 Outras configuraes do Asterisk

Para que o Asterisk entre em operao necessrio que sejam criados canais e comunicao e planos de discagem que direcionem as chamadas de um ponto a outro, conforme verificado anteriormente, porm alm das configuraes destes itens, pode-se configurar uma infinidade de outras funes e itens de melhoria que esto disponveis em seus arquivos de configurao, algumas destas configuraes so: Ajuste das portas UDP que o Asterisk vai utilizar para trafegar a media das chamadas, ou seja, o protocolo RTP. Essa configurao pode ser definida no arquivo rtp.conf; Configurao de salas de conferncia telefnicas, essa configurao pode ser feita no arquivo meetme.conf; Configurao de consultas de servidores Domain Name Server (DNS), que pode ser feita no arquivo dnsmgr.conf;

56 Ajustes dos arquivos de configurao e opes do console do Astereisk, essas configuraes podem ser feitas no arquivo asterisk.conf. O Asterisk possui muitas opes e possibilidades de implementao, porm isso pode ser utilizado ou no, dependendo da necessidade de cada empresa e projeto, nem sempre so necessrias a utilizao de todos os arquivos de configurao e mdulos do sistema. Na maioria dos casos, apenas necessrio que sejam feitos ajustes nos arquivos dos canais de comunicao e planos de discagem para que se tenha uma soluo eficiente e que venha sanar todas as necessidades de uma empresa, uma vez que nem todas as configuraes so obrigatrias para o seu funcionamento.

3.4.7 Fluxo de funcionamento do Asterisk

O Asterisk possui um fluxo de funcionamento, neste fluxo so configurados canais de comunicao em vrios protocolos diferentes, sendo que esses canais podem receber, enviar ou receber e enviar chamadas, quando um servidor ou equipamento entra em contato com o Asterisk, ele faz isso atravs de um canal de comunicao configurado, e o sistema envia as informaes de discagem da chamada para o plano de discagem, que por sua vez verifica e encaminha novamente essa chamada para outro canal de comunicao de qualquer protocolo compatvel com Asterisk, conforme Figura 10.

57

Figura 10: Fluxo de funcionamento do Asterisk Fonte: do Autor

4 MODELO PROPOSTO

Conforme observa-se no embasamento terico se faz necessrio um sistema que seja compatvel com vrios padres de protocolos VoIP, dessa forma este trabalho vem a contribuir para empresas que necessitem de uma soluo eficiente e de baixo custo para a soluo da grande maioria de problemas nas redes VoIP e que sejam relacionadas a converso e traduo de protocolos em sistemas digitais de voz. Sendo assim, para o desenvolvimento deste trabalho se fez necessrio um estudo para definio de um cenrio onde foi possvel instalar os softwares para que a soluo MEDIA GATEWAY VOIP pudesse atender as necessidades da empresa Brasilfone, provendo acesso restrito e prtico aos arquivos de configurao do sistema Asterisk. O sistema Asterisk pode ser instalado e configurado diretamente no console do sistema operacional, no entanto ao permitir acesso ao console o operador poder ter a liberdade de navegao em toda a estrutura do sistema operacional, sendo assim, prope-se a implementao de uma interface que limite o acesso somente ao sistema Asterisk. Na seqencia ser detalhada a instalao, bem como a definio das principais funes que a interface deve conter.

4.1 INSTALAO DOS SOFTWARES UTILIZADOS NA SOLUO

O Asterisk nasceu no LINUX e tem todo o seu desenvolvimento baseado neste tipo de sistema operacional, ento, inicialmente necessria a instalao de um sistema operacional

59 de Kernel LINUX que seja compatvel com os softwares Asterisk e Servidor de aplicao Apache e PHP. No modelo proposto utiliza-se o sistema operacional Debian 5, que pode ser instalado somente com uma configurao bsica, que j possui todos os pacotes e softwares necessrios para que seja possvel instalar os demais itens da soluo. Aps ter o sistema operacional Debian 5 instalado e com a interface de rede configurada j com acesso a internet, pode-se fazer a instalao de todos os softwares de forma simples e rpida utilizando o APT, que um recurso do sistema operacional Debian 5. O APT (Advanced Packaging Tool) um gerenciador de pacotes para o Sistema Operacional Linux. Foi criado para ser utilizado com a distribuio Debian, porm outras distribuies derivadas tambm herdaram essa ferramenta. O APT possui uma sintaxe simples de linha de comando para fazer o download de pacotes e instala-los. apt-get install [nome do pacote] Para a instalao dos softwares que se fazem necessrios para a soluo proposta os seguintes comandos so utilizados: apt-get install Asterisk - comando utilizado para efetuar download e instalao do Asterisk, (conforme Figura 11);

Figura 11: Instalao do Asterisk Fonte: do Autor

apt-get install php5 - comando utilizado para efetuar download e instalao do interpretador PHP em sua verso 5 (conforme Figura 12).

60

Figura 12: Instalao do PHP5 Fonte: do Autor

apt-get install apache2 - este comando efetua download e instalao do gerenciador de aplicaes apache2 (conforme Figura 13);

Figura 13: Instalao do Apache2 Fonte: do Autor

Aps efetuados os comandos de download e instalao dos softwares, pode-se identificar no console do sistema operacional que por padro os aplicativos estaro inicializados e aptos para ser utilizados. Para que seja possvel testar se os softwares esto funcionando corretamente, pode-se efetuar alguns comandos e verificaes. No caso do sistema Asterisk basta acessar pela linha de comando no console do sistema operacional e digitar Asterisk, que o sistema deve retornar uma mensagem conforme Figura 14.

Figura 14: Verificao de funcionamento do Asterisk Fonte: do Autor

No caso do php5 e apache2 basta abrir um navegador da internet e digitar o endereo IP do servidor aonde foram instalados os pacotes e softwares, ou no caso de estar utilizando o servidor em questo, possvel digitar no endereo do navegador da internet o nome ou

61 endereo IP do servidor, tal como http://localhost. Se a instalao foi concluda com sucesso ir aparecer a seguinte mensagem na tela Its works! (conforme exemplo na Figura 15):

Figura 15: Verificao de funcionamento do Apache2 e PHP5 Fonte: do Autor

Conforme mencionado no incio desta seo aps a instalao dos aplicativos (Apache e PHP) tem-se toda a estrutura de software necessria para que seja possvel implementar a interface de edio dos arquivos de configurao do Asterisk.

4.2 PRINCIPAIS FUNES A SEREM IMPLEMENTADAS NA INTERFACE DE GERENCIAMENTO

Aps implementao do Asterisk e verificaes das necessidades da empresa Brasilfone, pode-se definir uma srie de funes que so rotineiras durante as configuraes do Asterisk. Essas funes devem estar sempre de forma clara e ter acesso prtico pelo sistema, ento baseado nessas informaes pode-se definir os seguintes itens como funes bsicas para serem implementadas em uma interface de gerenciamento:

62 Controle de acesso ao sistema O software desenvolvido deve conter um controle de acesso baseado em sesses, para que possam ser garantidos os itens mnimos de segurana a informao. Funo reload do Asterisk toda vez que so editados os arquivos de configurao do Asterisk, se faz necessrio que o operador entre no console do sistema e execute o comando reload, para que o sistema carregue novamente os arquivos de configurao na memria e ativar as novas configuraes. Funo Start, Stop e Kill do sistema operacional essas so funes de extrema importncia, pois em caso de problemas, pode surgir a necessidade de efetuar a finalizao do processo do Asterisk no sistema operacional. Isso pode ser feito executando o comando Kill no no console do sistema operacional. Os comandos Stop, Start, so respectivamente utilizados para parar e inicializar uma execuo de um sistema (aplicativo). So teis quando no se tem problemas, mas necessrio efetuar alguma alterao no sistema que envolva reiniciar o Asterisk, ento para que no tenha-se o risco de corromper algum arquivo de configurao, efetua-se o Stop e aps as verificaes o Start. Criar, Alterar e Excluir arquivos de configurao do Asterisk A interface de gerenciamento deve permitir a criao, alterao e excluso de arquivos de configurao, assim permitindo que o operador possa customizar e editar conforme a necessidade, uma vez que os arquivos de configurao do Asterisk so apenas arquivos texto com a extenso final do nome .conf. Download dos arquivos de configurao A interface deve possuir uma forma de download dos arquivos de configurao, para que em caso de erro nas alteraes o operador possa restaurar as informaes.

63 Aps definidas as funes que a interface WEB deve conter, pode-se ter uma soluo simples e prtica para configurao e gerenciamento do Asterisk.

4.3 CUSTOMIZAO DA INTERFACE PARA EDIO DOS ARQUIVOS DO ASTERISK

No decorrer do desenvolvimento deste trabalho de pesquisa, foi verificado que existe uma interface para a edio dos arquivos de configurao do Asterisk, o Asterisk Web/PHP Management Interface que se encaixa em partes nas necessidades da Brasilfone, porm com algumas deficincias que foram corrigidas, e tambm excesso de funes que ao invs de ajudar podem prejudicar o operador do sistema. O Asterisk Web/PHP Management Interface um sistema que como o Asterisk, tem seu cdigo aberto e gratuito, sendo assim pode ser encontrado para download em sua pgina oficial , todo o processo de implementao e instalao do sistema tambm est disponvel online na pgina

.

4.3.1 O Asterisk Web/PHP Management Interface e suas funes

A seguir pode-se verificar algumas das telas principais do software, conforme Figuras 16, Figura 17 e Figura 18.

64

Figura 16: Tela Principal do Asterisk Web/PHP Management Interface Fonte: do Autor

Conforme Figura 16, pode-se observar um menu principal na parte superior, aonde temse algumas das funes do Asterisk e sistema operacional (Reload, Start, Stop, Ping, Kill, Help), ao meio da figura, basicamente so atalhos de todas as opes do meu superior, no formato de pgina principal do sistema, porm, nem todas as funes e opes disponveis so necessrias para a soluo proposta a Brasilfone, conforme detalhado nas principais funes que a interface deve conter. Na tela apresentada, somente a opo Edit do menu superior, e as funes de Reload, Start, Stop e Kill sero utilizadas, e as demais so descartadas na soluo proposta. Um dos problemas identificados na interface apresentada refere-se a tela inicial do sistema, que no possui controle de usurio ou sesso, ficando dessa forma totalmente vulnervel a acessos de qualquer local da rede, portanto a soluo proposta inclui controle de usurio e sesso.

65

Figura 17: Seleo de diretrio do sistema Asterisk Web/PHP Management Interface Fonte: do Autor

Na Figura 17, pode-se observar uma tela de seleo de diretrio, a qual permite acesso de edio os arquivos do Asterisk, porm na soluo proposta no necessria esta opo, pois os arquivos a serem editados pertencem apenas diretrio /etc/asterisk. Portanto este menu foi descartado na soluo MEDIA GATEWAY VOIP.

Figura 18: Menu de edio do Asterisk Web/PHP Management Interface Fonte: do Autor

66 Na Figura 18, pode-se observar que o menu na parte superior continua para que se tenha acesso a outras funes, porm na soluo proposta este no necessrio, alm deste ponto no tem-se um tratamento para a excluso dos arquivos ou edio, com apenas um clique sobre o link Delete, j pode-se deletar um arquivo, o que pode causar enganos e problemas, o mesmo ocorre para a edio do arquivo. Tambm no foi encontrada nem uma funo para criar arquivos, o que no caso da soluo proposta a Brasilfone seria uma deficincia do sistema, uma vez que existe essa necessidade.

4.3.2 Desenvolvimento e customizao da interface de gerenciamento

Conforme verificado anteriormente, o software Asterisk Web/PHP Management Interface possui muitas deficincias, e para ser implementado na Brasilfone so necessrias vrias alteraes em sua estrutura. Baseando-se nessa premissa, foram organizadas vrias partes do sistema de forma exclusiva e eliminados grande parte dos arquivos de cdigo PHP que continham partes de software desnecessrios para a soluo MEDIA GATEWAY VoIP. Sobre os arquivos restantes foram efetuadas customizaes de cdigo e novas implementaes para suprir as necessidades da empresa, conforme especificado nas funes que a interface deve conter. As funes e alteraes do software foram desenvolvidas na forma de etapas, conforme as necessidades especificadas. Primeira etapa Foi desenvolvido um controle de sesso, funo que o sistema no continha em sua estrutura, sendo que este controle bsico e essencial para qualquer sistema que venha a ser disponibilizado em rede. Em seguida pode-se observar a tela de acesso, conforme Figura 19.

67

Figura 19: Tela de acesso ao sistema Fonte: do Autor

Segunda etapa Foram customizadas as funes de acesso aos arquivos, Reload, Start, Stop, Kill e Sair, as quais ficaram acessveis