Enterprise network with software Asterisk PBX based on the ...
Asterisk - Muito mais que um PBX IP - Estudo de Caso
-
Upload
alex-galhano-robertson -
Category
Documents
-
view
222 -
download
41
description
Transcript of Asterisk - Muito mais que um PBX IP - Estudo de Caso
Universidade Federal Fluminense Escola de Engenharia Departamento de Telecomunicações
Trabalho Final do Curso de Engenharia de Telecomunicações
ASTERISK: MUITO MAIS QUE UM PBX IP
- UM ESTUDO DE CASO -
Aluno
Alex Galhano Robertson
Orientador Marcos Tadeu Von Lutzow
ASTERISK: MUITO MAIS QUE UM PBX IP
- UM ESTUDO DE CASO -
Aluno Alex Galhano Robertson
Orientador
Marcos Tadeu Von Lutzow
Dedico este trabalho final de curso a todas as pessoas que me apoiaram e me ajudaram
a seguir em frente nesta dura jornada: meu pai, minha mãe, minhas sogras e principalmente
minha esposa e minha filha. Sem essas pessoas seria impossível.
Agradeço a ajuda inestimável de Marcio Pinheiro Gomes que, além de ajudar com as compilações mirabolantes, me encorajou e me concedeu o direito de expor o projeto realizado
em sua empresa. Obrigado.
ÍNDICE
1. APRESENTAÇÃO.....................................................................................................................1
MAIS UM DOCUMENTO SOBRE VOIP ? ...............................................................................................1
2. INTRODUÇÃO..........................................................................................................................2
ASTERISK: MUITO MAIS QUE UM PBX IP...........................................................................................3
Arquitetura...................................................................................................................................4
A questão comercial.....................................................................................................................6
3. O PROJETO...............................................................................................................................7
METODOLOGIA .................................................................................................................................9
FASE 0 – PLANEJAMENTO..................................................................................................................9
A pesquisa ....................................................................................................................................9
Características do projeto .........................................................................................................11
FASE 1 – PRÉ-CONFIGURAÇÃO ........................................................................................................13
Som.............................................................................................................................................13
Rede............................................................................................................................................14
FASE 2 – INSTALAÇÃO.....................................................................................................................15
FASE 3 – CONFIGURAÇÃO ...............................................................................................................17
Sintaxe........................................................................................................................................18
Configuração geral ....................................................................................................................19
Configuração de clientes e protocolos.......................................................................................21
Configuração de facilidades ......................................................................................................23
Configuração de encaminhamentos...........................................................................................24
REDE CELULAR...............................................................................................................................25
Tronco Celular...........................................................................................................................25
Callback .....................................................................................................................................26
Roteamento.................................................................................................................................27
OUTRAS CONSIDERAÇÕES ...............................................................................................................28
4. ALGUMAS CARACTERÍSTICAS E INFORMAÇÕES IMPORTANTES......................29
O AMBIENTE DE REDE .....................................................................................................................29
SOBRE O IAX..................................................................................................................................29
CODECS ........................................................................................................................................30
PREÇO .............................................................................................................................................31
5. DIFICULDADES ENCONTRADAS .....................................................................................34
GATEWAY H.323 ............................................................................................................................34
PLACA-MÃE....................................................................................................................................36
SINCRONISMO .................................................................................................................................36
DOCUMENTAÇÃO DO SOFTWARE.....................................................................................................37
Outras referências......................................................................................................................37
6. CONCLUSÃO ..........................................................................................................................39
7. REFERÊNCIAS.......................................................................................................................41
ÍNDICE DE FIGURAS
FIG. 2.1 - ARQUITETURA INTERNA DO ASTERISK ................................................................................................................5
FIG. 2.2 - ASTERISK BUSINESS EDITION..............................................................................................................................6
FIG. 3.1 ESTRUTURA DE TESTES..........................................................................................................................................8
FIG. 3.2 ESQUEMA GERAL DA REDE DE VOZ ......................................................................................................................12
FIG. 3.3 TRONCO CELULAR ...............................................................................................................................................26
FIG. 5.1 AMBIENTE DE TESTE H.323 .................................................................................................................................34
FIG. 5.2 SOLUÇÃO FINAL DO PROBLEMA H.323 ................................................................................................................35
FIG. 6.1 REDE COMPLETA EM FUNCIONAMENTO ...............................................................................................................40
ÍNDICE DE TABELAS
TABELA 4.1 PRINCIPAIS CODECS.....................................................................................................................................31
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
1
1. Apresentação
Mais um documento sobre VoIP ?
VoIP é o assunto do momento. Na internet, existe uma infinidade de documentos que tratam
de voz sobre IP. Eles explicam tudo o que se precisa saber sobre esta tecnologia. Basta um pouco de
paciência e alguma sensibilidade para fazer a busca correta e conseguir garimpar as informações
desejadas.
Entretanto, esta é uma situação especial, pois fui o responsável pelo projeto de implantação
de um PBX IP open source em uma empresa de médio porte. Isto me criou uma oportunidade sem
igual de: 1) aprimorar meus conhecimentos sobre redes de dados; 2) ter um primeiro contato muito
produtivo com a rede de voz e; 3) realizar a integração destas duas redes de naturezas distintas. Era
tudo que eu precisava para desenvolver um trabalho final de curso, pois participei ativamente de
todas as etapas do projeto.
Portanto, respondendo a pergunta do subtítulo, este trabalho não pretende ser apenas mais
um documento sobre Voz sobre IP. Pelo contrário, pouco ou quase nenhuma teoria de VoIP será
apresentada já que há muitos documentos disponíveis sobre este assunto.
Neste trabalho, é descrito um projeto e a implementação de um PABX para solução
completa de voz de uma empresa. A pesquisa, os conceitos básicos do software, os procedimentos
de instalação e configuração e as dificuldades encontradas são os pontos onde me concentrei para
escrever este documento.
Logicamente, alguns dados como nome da empresa, números de telefones e outras
informações de caráter sigiloso que porventura venham aparecer no decorrer do texto estarão
trocados para valores fictícios.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
2
2. Introdução
Desde o início dos tempos, a comunicação foi essencial para o progresso cultural e
econômico da humanidade. Todas as formas de comunicação (do sinal de fumaça ao "torpedo"
SMS) deram, e ainda dão, sua contribuição para o desenvolvimento do homem. A escrita, por sua
vez, aparece como uma forma de perpetuar o conhecimento, transferindo para o papel (ou
computador, palmtops, e outros) tudo o que falamos e pensamos.
Entretanto, nada substitui a voz. Alguém até poderia argumentar dizendo que um indivíduo
com deficiência auditiva se comunica por meio de sinais feitos com as mãos. Mas, e quando se
precisa ou se quer falar enquanto se executa outras tarefas como segurar um copo, digitar ou
martelar um prego? Comunicar-se apenas por gestos está longe de ser ideal. Se a voz não fosse
importante, a humanidade teria ficado com o telégrafo e não se desenvolveria o telefone. Esta
necessidade e o avanço tecnológico fez com que hoje a rede telefônica tenha alcance mundial,
conectando pontos de um extremo a outro do planeta.
Mas e quanto à comunicação de dados? Hoje, esta rede também cobre praticamente todo o
planeta. Ela conecta os pontos utilizando-se de uma tecnologia que torna mais barato, em relação a
telefonia convencional, o custo para ligar dois ou mais pontos.
Já se pode perceber que há uma grande economia quando se associa telefone convencional
com a rede de dados, uma vez que ambas possuem uma grande abrangência. Outra possibilidade
seria substituir trechos da rede telefônica por outro trecho da rede de dados. Ainda temos uma
infinidade de possibilidades de uso dessa interconexão de redes de duas naturezas diferentes.
A rede de dados que vem sendo amplamente utilizada é a rede IP. Sua arquitetura permite
que ela tenha um custo relativamente baixo, que seja de grande flexibilidade e que tenha um bom
grau de penetração nas residências. Esta tecnologia de rede vem sendo aprimorada cada vez mais
para que seja possível integrar voz e dados. A esta integração da voz trafegando em uma rede de
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
3
dados - mais precisamente na rede IP – dá-se o nome de VoIP (Voice over Internet Protocol), ou
Voz sobre IP.
Este trabalho trata exatamente desta integração entre as redes e alguns outros serviços
possíveis de maneira muito prática e particular. Não serão abordas aqui as teorias pertinentes a
tecnologia de voz sobre IP nem serão apresentadas fórmulas mágicas do tipo “Siga os passos tenha
seu PABX IP funcionando em algumas horas.”
Aqui, serão citadas as características básicas do software utilizado e alguma informação
adicional sobre softwares e hardwares auxiliares para que seja possível o entendimento do objetivo
maior que é a instalação de um PABX implementado via software, instalado em um PC rodando o
sistema operacional Linux. Este PABX será capaz de fazer muito mais que um PABX
convencional, por um preço incomparavelmente menor. Mais precisamente, este trabalho será um
estudo de caso e descreverá alguns procedimentos adotados e as dificuldades encontradas durante
todo o processo, da pesquisa à sua efetiva implementação.
Asterisk: muito mais que um PBX IP
No último período letivo, houve a oportunidade de acompanhar um trabalho final [1] que
apresentava o Asterisk [2], inclusive com uma demonstração onde dois soft-phones se
comunicavam via SIP utilizando o PABX. Este software será, mais uma vez, alvo de estudo e
assunto de um projeto final. E, apesar de existir um trabalho sobre ele, faz-se necessário uma breve
reapresentação para que não haja dúvidas sobre o tema e para que se possa acompanhar a exposição
sem maiores dificuldades.
O Asterisk é um PABX implementado por software, desenhado para rodar em um
Computador Pessoal (PC). A princípio, pode ser instalado em qualquer sistema de código aberto,
mas com amplo suporte para Linux. Os sistemas operacionais baseados em BSD, apesar de
apresentar algumas dificuldades, também suportam o Asterisk.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
4
O Asterisk é capaz de interconectar telefones convencionais e telefones IP, sejam eles desk-
phones (hard-phones) ou soft-phones. Ele se integra facilmente ao sistema convencional de PABX
pré-existente ou, se for o caso, é capaz de substituí-lo. Também implementa várias facilidades como
Unidade de Resposta Automática (URA), Discagem Direta para Ramal (DDR), filas de espera,
estacionamento de chamadas, música na espera, encaminhamento pela rota de menor custo,
encaminhamento de acordo com o número chamador ou com o número discado, interação com
banco de dados e ainda faz muito mais do que um PABX convencional é capaz.
Descrevendo-o resumidamente utilizando termos mais técnicos, pode-se dizer que o
Asterisk é:
• Um gateway VoIP – SIP, H.323, MGCP, SCCO e IAX;
• Um gateway de telefonia – RDSI, MFC, R2D, SS7, E&M, etc;
• Um gateway de CODECs – G.711, G.723, G.729, GSM, iLBC, etc;
• Unidade de Resposta Automática;
• Sistema de mensagens de voz;
• PABX
Uma lista completa de todas as funcionalidades e características do Asterisk pode ser
encontrada na sua página na Internet, na seção ‘Features’ [3].
Arquitetura
O Asterisk foi desenhado para permitir a maior flexibilidade possível. APIs específicas
foram definidas em torno do núcleo central do sistema de PBX. Elas possibilitam uma grande
abstração do hardware, do software e de protocolos facilitando assim a programação de novos
objetos, sejam comandos, canais de comunicação, CODECs1 ou formato de arquivo. Por exemplo,
1 Um CODEC é a parte do sistema que COdifica e DECodifica a informação a ser transportada, neste caso, a voz. A explicação mais detalhada é fornecida no capítulo 4.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
5
novos comandos2 podem ser incorporados facilmente ao software. Um programador C com
conhecimento razoável é capaz de adicionar estas funcionalidades.
O núcleo do Asterisk trata internamente as funções de comutação, tradução de CODECs,
execução de aplicações, escalonamento e gerenciamento de Entrada/Saída.
Para os módulos carregáveis, o Asterisk oferece quatro tipos de APIs diferentes. API de
canais, API de aplicações, API para tradução de CODECs e API de formato de arquivos.
Fig. 2.1 - Arquitetura interna do Asterisk
A integração do Asterisk com o sistema de dados é feita de forma muito simplificada através
de uma facilidade denominada AGI (Asterisk Gateway Interface). Na prática, AGI é um programa
em C, Python, PHP, bash script, perl script, ou qualquer outra linguagem que o administrador se
sinta confortável. Foi necessário escrever alguns scripts para implementar algumas funções do
projeto em questão.
2 Os comandos, no Asterisk, são chamados de Aplicações (Applications). Elas dizem qual ação deverá ser tomada nas diversas situações.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
6
O Asterisk foi desenhado para facilitar a implementação de novas funcionalidades e
pretende ser um PBX independente de qualquer fabricante de software ou hardware, a não ser no
que se diz respeito a Digium [4]. Maiores detalhes sobre esta exceção na próxima seção.
A questão comercial
A questão comercial foge bastante do assunto deste trabalho, mas vale a pena citar que,
Mark Spencer, da Digium, o autor da maior parte do código do Asterisk é detentor dos direitos de
cópia de partes do código fonte do Asterisk.
Apesar disso, o Asterisk está licenciado segundo a GPL [5] (General Public License ou
Licença Pública Geral), portanto pode ser utilizado e modificado livremente por qualquer pessoa
que assim desejar, desde que seja distribuído juntamente com o código fonte e as modificações que
tenham sido efetuadas.
A Digium é o principal patrocinador do projeto Asterisk. Ela aprova (ou rejeita) as
contribuições da comunidade para o Asterisk; Ela hospeda a lista de discussão oficial, servidores,
bugtracking, etc. A Digium também fabrica os hardwares TDM3 para o Asterisk. Assim, o Asterisk
é a grande “vitrine” dos produtos da Digium tendo como um dos objetivos “vender” estas placas.
Recentemente, a Digium lançou uma versão comercial [6] do Asterisk, o Asterisk Business
Edition. Ela também teve seu site totalmente reformulado ultimamente, tendo ganhado um design
muito mais profissional e com forte apelo comercial.
Fig. 2.2 - Asterisk Business Edition
3 Entende-se por placas TDM como aquelas utilizadas para se comunicar com o sistema de telefonia convencional, utilizando Time Division Multiplexing, ou seja, Multiplexação por Divisão do Tempo.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
7
3. O projeto
A empresa XPTO decidiu que precisava de uma solução de baixo custo para comunicação
interna e para sua central de atendimento. Para esta solução, deveria ser possível a implementação
de mais de uma fila de atendimento, com reconhecimento do número chamador, discagem direta
para ramal, encaminhamento pela rota de menor custo e, principalmente, que suportasse voz sobre
IP realizando a integração dos serviços de telefonia convencional, telefonia IP e telefonia celular.
Também era necessário que a nova solução apresentasse alguma interação com o sistema de banco
de dados existente.
Já no início das pesquisas, o Asterisk surgiu como o favorito e logo foi adotado como a
solução perfeita, pois ele atendeu todas as necessidades da empresa e por se mostrar uma solução
extremamente flexível e de fácil integração com outros serviços. Agora faltava criar e executar um
plano de ação.
Contudo, na realidade não existiu um planejamento propriamente dito. As ações estavam
sendo tomadas quando aparecia a necessidade. Desta forma, o cronograma foi se apresentando de
forma natural.
Nesta etapa, ainda se fazia necessário estudar o software que ainda não passava de uma
promessa de sucesso. Passou-se muito tempo enquanto se estudava o Asterisk. Foi feita uma
instalação experimental do software, ainda sem nenhuma placa TDM. O objetivo deste primeiro
teste foi a familiarização com o ambiente de configuração. Apesar de ter sido utilizada a
configuração de exemplo com algumas poucas modificações, a experiência foi válida e muito
proveitosa. Um ramal IP, através de um softphone instalado em um PC rodando Linux, “falou” com
alguém fora da empresa. Foi o ápice. Conseguiu-se estabelecer contato com o suporte técnico da
Digium, nos Estados Unidos, via IP pela internet, sem gastar nenhum centavo.
Apesar de simples, o diálogo reproduzido abaixo foi um marco no desenvolvimento da
solução.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
8
Digium: - Hello.
XPTO: - Hello. Can you hear me?
Digium: - Yes. Can I help you?
XPTO: - I´m just testing! It works!
Digium: - Yes, it works! Bye.
Logo depois, montou-se uma estrutura de testes que aproveitava um ramal do PABX
convencional existente na empresa. Assim poderíamos realizar ligações entre softphones IP e
ramais convencionais ou até mesmo realizar ligações para fora da empresa. Também, ligações
entrantes para o ramal utilizado poderiam ser atendidas pelo softphone.
Uma vantagem observada nesta implementação é que seria possível utilizar tantos telefones
IP quantos fossem desejados. Por exemplo, já era possível implementar a comunicação interna de
algum setor, utilizando apenas telefones IP instalados nas estações de trabalho, reaproveitando a
rede IP existente. O inconveniente desta “solução” é que existia apenas um canal de entrada/saída
de ligações.
Esta integração do Asterisk em teste com o PABX convencional se deu por meio da
utilização de uma placa de fax-modem com chipset Intel Ambient MD-3200, ou seja, uma placa
clone da Digium funcionando como FXO ligado em uma posição de ramal, FXS, do outro PABX.
Um desenho esquemático desta ligação pode ser visto abaixo.
Fig. 3.1 Estrutura de testes
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
9
Com o passar do tempo, progressos cada vez mais significativos foram alcançados, até que
se pode efetivamente criar pelo menos uma ordem cronológica para implementação do PABX.
Assim, apesar de simples, estabeleceu-se um planejamento lógico a ser seguido.
Metodologia
Para facilitar o entendimento do processo de implantação, neste trabalho a instalação do
PBX IP foi subdivida em quatro etapas – Planejamento, Pré-configuração, Instalação e
Configuração – cada uma com objetivos bem definidos.
Fase 0 – Planejamento
Nesta fase são definidos todos os serviços e facilidades que serão implementados. Qual o
perfil dos usuários4 do sistema, que CODECS e protocolos de transporte e sessão serão utilizados e
o plano de numeração. Também deve ser decidido se será utilizada interface gráfica de gerência e
configuração e, caso positivo, qual será a interface.
Nesta fase, também está presente a pesquisa de material e soluções, onde se decide qual a
necessidade, que funções devem ser implementadas e como elas devem ser implementadas.
A pesquisa
Para que se conheça toda a capacidade do conjunto de software e hardware que se tem à
disposição e ser capaz de especificar o que é – e o que não é – possível implementar é preciso
pesquisar e ler muito. A documentação do oficial disponibilizada no site do Asterisk, um rascunho
da apostila [7], além de desatualizada, está longe de ser suficiente, e para adquirir este
conhecimento foi necessário realizar muitas pesquisas na internet. O site de buscas ‘Google’
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
10
<http://www.google.com.br> sempre é um ótimo ponto de partida. A cada pesquisa, é necessário
seguir alguns links para filtrar o que realmente é informação válida ou apenas lixo. Os links que
foram aproveitados neste trabalho estão em uma seção do capítulo de Referências.
Dentre as dezenas de páginas visitadas, recomenda-se, principalmente, a leitura das páginas
referentes ao Asterisk do site VOIP-info.org [8]. Este site é um wiki5 muito rico em informações e é
atualizado constantemente por membros da comunidade que desenvolve e utiliza o Asterisk. Além
de resultados de pesquisas e experiências práticas, há também vários links com referências a outros
sites que também dão suporte à voz sobre IP e telefonia em geral.
Para informações em português pode-se tentar o site AsteriskBrasil.org [9]. Infelizmente,
esta foi uma tentativa frustrada de fazer um site em português com o mesmo assunto, o software
Asterisk. Basicamente, as poucas informações técnicas que se encontram neste site são uma cópia
do primeiro, VOIP-info, em inglês. O site nacional é mais útil para quem não sabe nada do assunto
e deseja alguma informação básica para utilizar o serviço de Voz sobre IP e para quem está
procurando alguma empresa ou profissional para ajudá-lo.
Outras fontes de pesquisa muito valiosas são as listas de discussão que existem em torno do
Asterisk. A lista oficial do Asterisk, Asterisk-Users [10], de tão movimentada faz com que fique
difícil acompanhar as discussões, mas por isso mesmo, é uma ótima fonte de informação. Outra
lista recomendada é a do site AsteriskBrasil.org [11], em português. Todas as duas têm muita
informação repetida, mas isto não as torna ruim.
Outros sites muito úteis para quem pesquisa, desenvolve e aplica soluções de Voz sobre IP,
incluindo o Asterisk, estão na seção de referências deste documento. Muitos deles também se
encontram espalhados pelo wiki VOIP-info.
4 Os usuários, neste caso, são os funcionários que iriam utilizar o sistema e, principalmente, os atendentes do call-center. 5 WIKI é a abreviação de “What I Know Is...”, em portugês, “O que eu sei é...”. É um conceito amplamente utilizado em redes colaborativas. Essencialmente, é o anarquismo da Web; sua auto-regulação. É um projeto de documentação feito pela comunidade.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
11
Características do projeto
Neste caso, a máquina onde o Asterisk seria instalado contava com duas placas de rede (uma
on-board e outra PCI), som on-board full duplex, vídeo AGP, uma placa Digium TE405p (4x
E1/T1) e duas placas de fax/modem com chipset Intel Ambient-MD3200. A empresa já possuía
equipamentos de telefonia IP, que eram um par de gateways da Planet, VIP-400, com duas FXSs e
duas FXOs, cada um. Originalmente, eles faziam a interconexão filial-matriz através de um enlace
de 2Mbps, dividindo espaço com tráfego de dados. Estes gateways utilizam protocolo H.323 e os
CODECs G.711 (PCM – Lei-A e Lei-µ) e G.723. Também foram adquiridos dois bancos de canais
Adtran-750, equipados com 24 FXSs, unidade de controle e unidade de energia com gerador de
campainha. A interface do banco de canais com o Asterisk é feita através de uma T1.
A conectividade com a operadora telefônica é feita através de uma interface E1 por uma
PRI (Primary Rate ISDN).
Esta solução deveria atender a pelo menos 24 ramais convencionais e mais alguns ramais IP.
Não havia um número exato de ramais IP, mas sabia-se que esta quantidade, a princípio, ficaria
entre 1 e 10 ramais. Foi adotado o SIP como protocolo a ser utilizado nos telefones IP. Troncos
entre Asterisk utilizariam o protocolo proprietário IAX do Asterisk. Todos os ramais estariam
separados em grupos. Cada grupo possuiria suas facilidades individuais. As permissões para
realizar determinado tipo de ligação também seriam especificadas de acordo com o grupo.
O SIP [12] foi escolhido como protocolo padrão para conexão de telefones IP por se mostrar
flexível e apresentar inúmeras vantagens já reconhecidas sobre o padrão da ITU6, H.323. Além
disso, pode-se dizer que o SIP já foi adotado como padrão para aplicativos de comunicação no
ambiente da Internet.
O IAX [13] foi escolhido para implementação dos troncos entre os PABX Asterisk porque
traz grandes vantagens no que diz respeito à utilização otimizada da banda utilizada para
6 A ITU – International Telecommunication Union (União Internacional de Telecomunicações), além de outras atribuições, é o órgão responsável pelas padronizações no meio das telecomunicações.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
12
comunicação reduzindo o overhead do protocolo IP. A eficiência na utilização da banda pode
chegar a 200% em alguns casos. Também é capaz de criptografar a comunicação e utiliza o mesmo
canal para controle e para transmissão da voz. Outra grande vantagem é ser transparente a
implementações de NAT.
Algumas facilidades do PABX, como o callback e interação com um banco de dados
externo, não são pré-definidas no software. Felizmente, o Asterisk é muito flexível e algumas
opções desejadas que não eram nativas puderam ser construídas através de AGIs.
Resumidamente, era necessário ter uma rede de voz que interligasse filial-matriz com dois
ramais convencionais na filial, duas linhas telefônicas convencionais na filial, 24 ramais
convencionais na matriz, ligação com a rede RDSI através de uma PRI na matriz, possibilidade para
interligação de tantos telefones IP quantos forem necessários, interligação com rede de telefonia
celular e interligação com banco de dados existentes.
Fig. 3.2 Esquema geral da rede de voz
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
13
O planejamento inicial (figura 3.2) mostra que o esquema de interligação entre filial e matriz
seria realizada utilizando um gateway VIP-400, da Planet, utilizando protocolo H.323, mas como
veremos no decorrer do trabalho, infelizmente não foi possível realizar tal configuração.
Fase 1 – Pré-configuração
É quando ocorre toda a preparação do ambiente a ser instalado o PABX. Aqui se estabelece
toda a configuração de som, rede, placas TDM e do computador em si, tanto fisicamente como a
preparação do sistema operacional [14]. Para o caso da necessidade de outros hardwares, as
configurações destes equipamentos também se enquadram nesta fase. No caso estudado, havia um
banco de canais que ficou com a configuração padrão.
Som
A configuração do som é necessária para que se possa utilizar a facilidade de Music on Hold
ou Música em espera. Depende muito da plataforma em que o asterisk está instalado. Por vezes, é
tão simples que o rc.hotplug7 consegue configurar a placa de som automaticamente. Outras vezes
pode ser tão complicado que seria capaz de fazer um administrador menos experiente desistir e
modificar a plataforma.
Para placas mais comuns, normalmente não se encontra grande problema. Um cuidado
importante é evitar placas que, de tão novas, ainda não possuem um driver disponível para Linux.
Outro ponto que se deve prestar atenção é a versão do programa utilizado para tocar as
músicas. No projeto em questão, foi utilizado o ‘mpg123’ [15]. Em algumas versões mais novas do
Slackware8, este programa é um link para sua versão mais nova, o ‘mpg321’, que não funciona com
o Asterisk. Portanto, deve-se ficar atento às versões e distribuições encontradas em sua plataforma.
7 /etc/rc.d/rc.hotplug é um dos arquivos de inicialização do slackware. Sua função é semelhante a do plug and play do Windows, mas pode causar alguma instabilidade no sistema. 8 Slackware <http://www.slackware.org> é uma distribuição Linux. Ela foi escolhida para a instalação do PABX simplesmente por conta da familiaridade do programador com ela.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
14
Para resolver este problema, foi preciso fazer um downgrade do aplicativo em questão e apagar o
link simbólico.
Rede
Logicamente, as funções básicas de rede como roteamento, endereço IP, etc devem estar
disponíveis. Afinal, este é um PABX IP!
Adicionalmente, é recomendável a configuração de firewall para que a segurança do
servidor não fique comprometida. Também é interessante a aplicação de QoS para a rede. Apesar de
opcionais, estes dois itens são muito importantes para manter o sistema e a rede saudáveis.
Para este projeto, foi utilizado como firewall, o ‘iptables’, do Linux, abrindo-se apenas as
portas necessárias para comunicação de determinadas máquinas. Todas as outras formas de
comunicação foram vedadas, mesmo para máquinas conhecidas. Máquinas que não são conhecidas,
ou seja, não têm seu endereço IP cadastrado são impedidas de se comunicar com o PABX. É
preciso ter grande atenção com a questão da segurança. O próprio software para tocar as músicas
em espera está vulnerável e com sérios problemas de segurança [15].
Além disso, pode-se marcar os pacotes de voz para priorizá-los nos roteadores da rede. Esta
opção não foi adotada no projeto.
Outra medida com relação à aplicação de regas de QoS [16] na rede é priorizar determinado
tipo de tráfego utilizando o pacote ‘iproute2’ através do comando ‘tc’. O propósito é priorizar o
tráfego de voz, alocando banda para ele e, caso esta banda não estivesse em uso, os recursos
alocados poderiam ser utilizados para dados. Este objetivo é facilmente alcançado utilizando a
disciplina de controle de fluxo HTB (Hierarchical Token Bucket). A utilização da disciplina SFQ
(Stochastic Fair Queue) também é recomendada para a distribuição uniforme e justa do tráfego que
passa por determinado canal.
Infelizmente, a aplicação das regras de QoS ainda não foi implementada neste projeto e o
tráfego de voz na rede ainda compete com o tráfego de dados sem nenhuma prioridade.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
15
Fase 2 – Instalação
Compreende a instalação propriamente dita. Esta etapa também pode ser subdivida em:
A) aquisição dos programas e drivers necessários;
B) instalação e configuração dos drivers e outros pré-requisitos e;
C) instalação do software Asterisk.
A instalação foi fase mais trabalhosa do projeto. Dependendo do hardware onde será
instalada, ela poderá até inviabilizá-lo. Ela certamente apresentará mais problemas que qualquer
outra. Portanto, junto com a configuração, esta é também a fase mais crítica do projeto. Se algo der
errado aqui, pode comprometer todo o resto.
Para ilustrar tamanho cuidado nesta fase, pode-se citar dois momentos de dificuldade da
implementação do projeto. O primeiro quando tentamos instalar o PABX em uma placa mãe que,
apesar de ser muito boa para a maioria das aplicações, não funcionou corretamente com o Asterisk.
E o segundo, quando da instalação do tronco Matriz-Filial, onde se pretendia utilizar o gateway da
Planet VIP-400 na filial. As duas experiências estão detalhadas do capítulo que trata de problemas e
dificuldades encontrados no projeto, o capítulo 5.
Entretanto, a instalação do software na sua versão estável, não é complicada podendo até ser
enumerada em poucos passos:
A) Baixar código fonte do site;
B) Descompactar
C) Instalar utilizando ´make´, ´make install´ e ´make samples´
Para a instalação via CVS, também não há grandes dificuldades nesta etapa. Basta digitar
esta seqüência de comandos na linha de comando do Linux:
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
16
Também será preciso efetuar a instalação de softwares auxiliares como iproute2, mpg123,
entre outros.
Em todos os casos, deve-se ter em mente que se estiver utilizando hardware da Digium ou
ztdummy – um módulo do kernel do Linux que irá prover o Asterisk com um timer Zaptel mesmo
se não houver nenhum placa Digium instalada no sistema. Ele resgata a temporização do módulo
usb-uhci, que deverá ser carregado antes do ztdummy. – será necessário o pacote ‘zaptel’ para que
algumas aplicações sejam incluídas em tempo de compilação como o ‘Meetme()’. Para utilizar
interfaces E1 / T1, deve-se instalar o pacote libpri. Para compilar o Asterisk, o pacote ‘Bison’
também deve estar instalado. Para aplicativos como o Astmam9 será necessário possuir os pacotes
‘ncurses’ e ‘ncurses-development’. Por conta da nova funcionalidade DUNDi [17] (Distributed
Universal Number Discovery), agora também são necessárias as bibliotecas zlib e zlib-devel. É
claro que também serão necessários os drivers das placas TDM, se forem utilizadas.
A instalação das interfaces gráficas de gerenciamento e monitoramento do Asterisk também
está contida nesta fase. Devem ser instaladas cada uma de acordo com suas próprias orientações. A
instalação pode ser tão simples quanto descompactar um arquivo .PHP no seu servidor WWW ou
tão complicada que faz pensar em trocar o software.
Portanto, cada instalação de software deverá seguir a orientação de seu distribuidor
independente de sua finalidade.
9 Astman é um gerenciador em modo texto que já vem com o Asterisk.
cd /usr/src
export CVSROOT=:pserver:[email protected]:/cvs/cvsroot
cvs login
password is anoncvs
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
17
Fase 3 – Configuração
Depois que toda a infra-estrutura necessária foi preparada, é hora de “dar forma” ao PABX.
Nesta fase, são adicionados os ramais IP e convencionais, as caixas postais de voz são configuradas,
a URA é implementada, etc. Enfim, tudo o que foi planejado nas outras fases, será implementado
agora.
Esta, provavelmente, é a fase mais demorada do projeto, pois, ao ir configurando as
facilidades, todo tipo de teste é realizado.
Além disso, durante a configuração, acaba-se percebendo que algumas decisões não estavam
de acordo com o perfil de determinado grupo de usuários ou simplesmente não era possível de se
implementar, seja por limitação da solução ou por falta de experiência do programador10.
Constantemente, o projeto sofre mudanças e até hoje ainda se faz algumas poucas modificações de
maneira a adaptar as funções que se deseja ter implementadas.
Para ajudar na tarefa de configuração, muitas páginas na internet estão disponíveis. É
aconselhável iniciar a leitura pelo site VoIP-info.org. Várias referências de grande valia para esta
tarefa se encontram na seção “Outras referências”, no capítulo 6.
A configuração do Asterisk é, de certa forma, muito simples, pois seus arquivos de
configuração são desenhados para utilizar uma linguagem bem intuitiva. Por exemplo, para
especificar que o telefone IP de nome 'host_tel_1' está atrás de NAT, e pega IP dinâmico por
DHCP, as linhas correspondentes do arquivo 'sip.conf' ficam assim:
10 Neste trabalho, deve-se entender o programador como o profissional que realiza a configuração do PABX e suas facilidades.
[host_tel_1]
...
nat=yes
host=dynamic
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
18
Todos os outros arquivos de configuração seguem a mesma idéia. Texto plano com
argumentos fáceis de identificar e programar. A maior dificuldade é conhecer todas as opções de
configuração possíveis. A própria instalação do Asterisk oferece arquivos de configuração de
exemplo, mas eles não apresentam todas as opções existentes. Se forem instalados, eles ficarão no
diretório padrão (/etc/asterisk) com os nomes xxx.conf. Estes arquivos, além dos exemplos de
configuração, ainda contam com a valiosa ajuda de comentários que explicam a maioria das opções
possíveis.
Sintaxe
A sintaxe dos arquivos segue um padrão simples
Uma vez que o valor para um determinado objeto tenha sido declarado, ele carrega esta
informação até o final do arquivo. Para modificar seu valor basta declará-lo novamente.
Daqui para frente, o objeto2 terá como conteúdo 'novo_valor2' até o fim do arquivo ou até que ele seja declarado novamente com outro valor.
; Um comentário
[contexto1]
objeto1 => valor1 ; Outro comentário
objeto2 = valor2
----------------
objeto2 = novo_valor2 ----------------
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
19
Os sinais ‘=’ e ‘=>’ têm o mesmo valor prático, sendo utilizados em momentos diferentes
apenas para uma visualização mais amigável, de acordo com o que o programador desejar. Pode-se,
por exemplo, utilizar ‘=’ para atribuir um valor a uma variável e ‘=>’ para declarar um objeto.
Neste trabalho, os arquivos de configuração do Asterisk foram divididos em quatro
categorias:
Configuração geral - administração, módulos, bilhetagem, banco de dados, canais zap;
Configuração de clientes/protocolos - iax, sip, h323, mgcp, skinny;
Configuração de facilidades - voicemail, filas, agentes, música em espera;
Configuração de encaminhamentos - extenções, rotas, daytime/nighttime, URA.
Configuração geral
asterisk.conf
Neste arquivo são informados os caminhos dos diretórios que o Asterisk utiliza. Raramente
ele precisará ser modificado.
admin.conf
Este arquivo trata das configurações para administração do Asterisk. São definidos usuários,
niveis de acesso, senhas, forma de autenticação e etc.
modules.conf
Aqui se deve carregar ou impedir o carregamento dos módulos que o Asterisk deverá ou não
utilizar. Recomenda-se não carregar nenhum módulo que não seja utilizado pelo sistema. O
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
20
principal prejuízo por carregar módulos que não serão utilizados é o consumo desnecessário de
recursos computacionais. Neste projeto, não foi utilizado o protocolo MGCP ou SKINNY, portanto
estes módulos foram desabilitados. O módulo do protocolo H.323 estava apresentando problemas e
também foi desabilitado.
postgresql.conf / mysql.conf
Nestes arquivos, são configuradas opções específicas a cada sistema de banco de dados que
o administrador escolheu utilizar. Aqui são configurados parâmetros como endereço do servidor,
nome do usuário e senhas.
zapata.conf
Este é um dos arquivos mais importantes para o Asterisk. Nele são feitas as configurações
de todos os canais ZAP, que são os canais TDM. Tudo deve estar de acordo com a configuração
feita no zaptel.conf (explicado abaixo). Aqui são definidas as propriedades de determinado canal ou
grupo de canais. Funções como bilhetagem, cancelamento de eco, chamada em espera, conferência,
número chamador, entre muitas outras são habilitadas ou desabilitadas neste arquivo.
Uma das opções configuráveis mais importantes no zapata.conf é o contexto que os canais
devem estar. Os contextos serão estudados mais adiante, mas pode-se adiantar que eles definem os
ramais ou telefones para onde se pode fazer ligações. Isto é muito útil para restringir determinados
tipos de telefones para certo grupo de canais. Por exemplo, no projeto alvo deste estudo, os canais
de 56 a 70, que servem o setor de suporte técnico, não podem realizar ligações internacionais ou
para celulares de qualquer operadora.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
21
zaptel.conf
Na verdade, este arquivo define os parâmetros das placas TDM da Digium e clones. Ele não
configura o Asterisk, propriamente dito. Ele deve ser editado antes do Asterisk ser iniciado. Os
canais TDM e suas características não precisam do Asterisk rodando para que sejam configurados.
A configuração é efetivada rodando o programa ‘ztcfg’.
Este arquivo, diferentemente dos outros citados neste capítulo, está localizado em
/etc/zaptel.conf.
A sintaxe deste arquivo também é ligeiramente diferente. Aqui, comentário é feito com o
caractere ‘#’.
Configuração de clientes e protocolos
mgcp.conf e skinny.conf
Como não foi utilizado nada com relação a estes protocolos estes arquivos simplesmente
foram deixados em sua forma original e seus módulos foram impedidos de carregar no
modules.conf, visto anteriormente.
Como o próprio nome sugere, o mgcp.conf estabelece os parâmetros para o caso do Asterisk
ser utilizado como gateway para o protocolo MGCP [18] (Media Gateway Control Protocol). Por
sua vez, o skinny.conf, estabelece os parâmetros para o driver do protocolo SCCP, o Skinny Call
Control Protocol [19], para telefones IP da Cisco.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
22
h323.conf
A princípio, foi feita alguma modificação neste arquivo para que se pudesse utilizar o
Asterisk também como gateway H.323 e fazê-lo se comunicar com o gateway da Planet na filial.
Entretanto, não se obteve sucesso e ele foi deixado no diretório mas não está sendo utilizado. Seu
módulo também foi impedido de carregar no arquivo modules.conf. Mais detalhes sobre o problema
ocorrido com o protocolo H.323 está neste trabalho, no Capítulo 5.
sip.conf
Todos os user agents11 da empresa são telefones IP que utilizam o protocolo SIP. Portanto
este arquivo foi bastante modificado. Os clientes SIP foram adicionados e configurados neste
arquivo.
Alguns parâmetros eram particulares para cada “telefone SIP”, pois existiam clientes ligados
diretamente na rede local enquanto outros estavam fora da empresa e estavam conectados através de
links ADSL e outros ainda passavam por enlaces rádio.
iax.conf
Este arquivo foi utilizado apenas para implementar o tronco entre matriz e filial, pois não
estava sendo utilizado nenhum user agent com tecnologia IAX.
Em cada ponto, foram criados um usuário e uma senha com características específicas para
que se pudesse estabelecer este canal.
11 Um User Agent é um cliente SIP ou IAX ou de qualquer outro protocolo. Neste caso, pode ser um telefone ou um softphone.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
23
Configuração de facilidades
voicemail.conf
Configura as caixas postais de voz. Aqui é possível definir, entre outras coisas, se as
mensagens devem ser enviadas por email, como um anexo, e em que formato. Para o projeto em
questão, foram definidas 6 caixas postais. Todas enviam email avisando que “Você tem uma nova
mensagem de voz”, mas nem todas trazem o áudio da mensagem em anexo.
queues.conf
As filas de espera devem ser configuradas aqui. Esta aplicação é muito útil para call-centers.
Existe a possibilidade se definir várias filas de entrada, cada uma com suas características distintas.
É possível definir para cada fila o grupo da música em espera, se haverá alguma mensagem
institucional sendo apresentada de tempos em tempos e, se houver, define qual o intervalo de
tempo. Também se pode estimar o tempo de espera para o atendimento e uma mensagem dirá ao
cliente este tempo.
Neste projeto, foram implementadas 5 filas diferentes, mas todas com configurações
simples, e todas com a mesma categoria de música em espera.
agent.conf
Primeiramente, deve-se saber o que é um “agente”. Um agente é a entidade criada para
atender uma ou mais filas de espera. Não se define que filas um agente pode atender, mas que
agentes podem atender determinada fila, no arquivo queues.conf.
Um agente pode ser um canal como Zap/12 ou Sip/1234, ou um usuário com login e,
opcionalmente, uma senha. Quando o atendente chega para trabalhar, ele digita seu código em
qualquer posição de atendimento (a ser definido pelo plano de numeração) e a partir deste momento
ele está habilitado a receber chamadas das filas a que foi designado.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
24
As políticas e estratégias para chamamento destes agentes também são definidas neste
arquivo.
musiconhold.conf
Simplesmente, define os perfis de música e os locais em que se encontram que podem ser
colocadas a disposição dos clientes.
Configuração de encaminhamentos
extensions.conf
Este é sem dúvida o arquivo mais longo da configuração do Asterisk e requer muita atenção
ao editá-lo. Extensões, ramais, rotas, daytime/nighttime, URA, login/logout dos agentes, fluxo de
chamadas, etc. Enfim, tudo está definido aqui.
Como este arquivo tende a ser muito extenso, pode-se dividi-lo em partes funcionais
menores e incluí-los no arquivo maior de acordo com esta linha:
#include “novo_arquivo.conf”
O novo arquivo ‘novo_arquivo.conf’ seguirá a mesma sintaxe do ‘extensions.conf’. Ele esrá
expandido no arquivo principal como se estivesse escrito da posição do include.
Cada extensão, ramal, rota, seção da URA é escrita da seguinte maneira:
exten => 1234,P,Aplicação(parâmetro)
onde,
1234 é o ramal ou rota ou número a ser digitado na URA. Tem o nome de extensão. Pode
conter tantos dígitos quantos forem necessários. Também podem conter wildcards e/ou
expressões regulares modificadas.
P é a prioridade. Define a ordem de execução das aplicações. Devem estar em ordem crescente
e ser consecutiva. Pode-se colocar um ‘n’ (de Next) após a prioridade 1.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
25
Aplicação é o nome da aplicação. Define a ação a ser executada.
Parâmetro é, como esperado, um parâmetro que depende de cada aplicação.
Rede Celular
Na intenção de aumentar a eficiência da comunicação entre os funcionários, a empresa
contratou um “plano empresa” da operadora de telefonia celular ABCOM.
Este plano conta com cerca de 15 aparelhos, cada um com uma franquia de minutos que
pode ser compartilhada ente si. Além disso, 3 números fazem ligações para todos os outros
celulares da empresa sem nenhum custo.
Os 3 números “tarifa zero” ficam no centro de operações enquanto os outros ficam em
trânsito, com técnicos de campo.
Quando algum técnico deseja falar com o centro de operações, ele liga para um dos números
“tarifa zero”. A pessoa que atenderia a ligação desliga o telefone e liga de volta imediatamente. Um
callback manual.
Este cenário requer que o Asterisk resolva três problemas: 1) o tronco celular; 2) a
implementação do callback e; 3) o roteamento dessas chamadas pelo tronco celular.
Tronco Celular
O tronco celular era o menor problema e a solução não é exclusividade do Asterisk. Este
tronco é implementado colocando-se um gateway onde, de um lado existe uma porta FXS, como
uma operadora, e do outro existe um aparelho celular que vai ser o aparelho ‘Tarifa Zero’. Pode ser
instalado em qualquer PABX, em uma porta FXO.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
26
Fig. 3.3 Tronco celular
Callback
Antes de qualquer coisa, é preciso ressaltar que a solução de callback, apesar de estar sendo
utilizada para a parte da rede celular, poderia ter sido implementada utilizando qualquer tronco de
saída, incluindo o troco RDSI ou por uma linha telefônica convencional utilizando uma placa FXO
clone. Ela não está atrelada apenas ao troco celular.
O callback poderia ter sido implementado diretamente no ‘extensions.conf’, sem nenhuma
interação com servidores fora do Asterisk. Entretanto, foi previsto que a quantidade de telefones
celulares em trânsito poderia aumentar. Então ficou decidido que seria utilizado um script que se
utilizava da facilidade AGI, que pesquisava uma base de dados para certificar que o número
chamador pertencia a empresa e, assim, estaria habilitado a receber a chamada de volta.
Inicialmente, este script foi escrito em linguagem Bash – que na verdade não chega a ser uma
linguagem propriamente dita, mas um script de linha de comando – sem interação com banco de
dados, apenas utilizando um comando de bifurcação “case”.
O Asterisk recebe a chamada em um número pré-determinado que seja capaz de reconhecer
o número chamador. Não é possível implementar o callback utilizando apenas a própria interface
celular pois ela não permite que o número chamador seja repassado ao Asterisk. O CallerID é
passado como parâmetro para o script pelo AGI. O script apenas verifica se o número está
cadastrado e, se estiver, faz a ligação de volta colocando o chamador em um contexto onde ele
ouvirá uma mensagem de URA solicitando que o técnico escolha com que departamento ele deseja
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
27
falar. Assim que ele escolhe a opção desejada, a chamada vai para a fila de espera correspondente
até que alguém a atenda.
A criação da chamada é feita simplesmente escrevendo um arquivo com as informações
pertinentes devidamente formatadas no diretório de spool, de acordo com as instruções indicadas
[20] no site VoIP-info.org. Na prática, o arquivo tem este formato:
Este arquivo faz uma chamada para o número 12345678 pelo tronco do grupo 2, que utiliza
tecnologia Zap e conecta esta chamada com o ramal 84, no contexto ‘extensions’.
Quando o Asterisk encontra um novo arquivo no diretório /var/spool/asterisk/outgoing, ele
tenta processa-lo como uma chamada, de acordo com o padrão descrito acima.
Roteamento
O Asterisk cria a ligação para os celulares da empresa através do contexto
“ABCOM_empresa”. Este contexto também efetua as chamadas realizadas dos ramais internos, e
não apenas serve ao callback. Sendo assim, não é necessária nenhuma configuração especial para
realizar o encaminhamento de chamadas pelo tronco celular. Basta seguir os passos para
configuração do arquivo ‘extensions.conf’ normalmente.
Chamadas que chegam pelo tronco celular são imediatamente terminadas com a aplicação
Hangup().
Channel: Zap/g2/12345678 MaxRetries: 2 RetryTime: 60 WaitTime: 30 #
Context: extensions Extension: 84 Priority: 1
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
28
Outras considerações
A gravação das mensagens personalizadas, como as da URA, deve ser executada durante a
Fase 1 ou Fase 2 para que, na Fase 3, o programador possa se concentrar apenas na configuração do
PABX.
Infelizmente, no projeto em questão, as mensagens não foram gravadas antecipadamente.
Isto acabou levando a uma situação onde foi necessário fazer as gravações de maneira precária, sem
que um profissional de comunicação fosse contratado e sem o menor cuidado com a sonorização do
ambiente, pois era preciso cumprir um prazo de entrega. Por um lado, tecnicamente, não houve
prejuízo para a empresa, muito embora esta situação esteja longe de ser comercialmente ideal.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
29
4. Algumas Características e Informações Importantes
O ambiente de rede
O ambiente em que este projeto foi desenvolvido não sofreu nenhuma alteração especial
para a utilização como rede telefônica. Esta rede tem seu tráfego de voz e de dados disputando os
mesmo recursos de processamento e de banda. Esta situação não é recomendável em hipótese
alguma, mas infelizmente está implementada desta forma.
Idealmente, deveria se ter uma rede separada apenas para voz. Entretanto, isto não é
desejável, ou mesmo, economicamente interessante. O mais indicado é aplicar regras de QoS
sempre que for possível, alocando banda e priorizando pacotes em todos os pontos que se tem
controle.
Como já foi dito neste documento, a aplicação de QoS é relativamente fácil de ser
implementada com a utilização das disciplinas HTB e SFQ juntamente com a utilização do
‘iptables’ para priorização de pacotes.
Outro aspecto muito importante diz respeito à utilização de um firewall, principalmente se o
PBX tiver contato com a Internet. Todas as portas que não oferecem os serviços de voz,
gerenciamento e outros conhecidos e habilitados na máquina devem estar fechadas e apenas
máquinas conhecidas deverão ter acesso ao PABX. Mais uma vez, o ‘iptables’ é utilizado para
implementar esta firewall. Programas instalados no servidor podem apresentar algumas
vulnerabilidades, como é o caso do mpg123, para música em espera.
Sobre o IAX
O IAX [13] (InterAsterisk eXchange) é o protocolo de Voz sobre IP proprietário do
Asterisk, desenvolvido pela Digium. Ele utiliza uma única porta, 4569 UDP, tanto para controle
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
30
quanto para conversação e por causa disso trabalha com NAT sem problemas. Ao contrário do SIP,
sempre haverá áudio se sua conexão foi estabelecida.
Quando está operando em modo tronco, o IAX permite que várias conexões compartilhem o
mesmo canal, reduzindo consideravelmente o overhead criado pelos pacotes IP.
IAX é mais eficiente do que RTP para qualquer número de chamadas, com qualquer
CODEC [21]. Os benefícios variam vão de algo em torno de 2,4 kbps para uma chamada até
triplicar a capacidade de chamadas por Megabyte para quando está utilizando o G.729, medido no
nível de MAC, quando no modo tronco.
Para maiores informações, consulte a seção “Outras referências” no capítulo 5 deste
documento.
CODECs
CODECs são utilizados para converter um sinal analógico de voz em versões digitalmente
codificadas. Eles podem variar na qualidade do som, largura de banda, requerimentos
computacionais, etc. O acrônimo é formado as inicias de duas palavras, COde/DECode ou, em
português, Codificar/Decodificar.
Cada aparelho (telefone, gateway, ATA, etc.) pode utilizar um ou mais CODECs. Nem
sempre, as duas pontas da conversação falam o mesmo CODEC. Neste caso, o Asterisk pode atuar
como um gateway de protocolos de compressão de voz, fazendo a tradução de um protocolo para o
outro, nos dois sentidos da conversação.
A tabela a seguir, baseada principalmente em dois documentos encontrados na Internet
[22][23], mostra algumas características relevantes dos algoritmos mais comuns:
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
31
Algoritmo Banda Banda IP Precisa de licensa
G.711 PCM 64kbps 80kbps Não ACELP 5.6kbps 16.27kbps Sim
G.723.1 MP-MLQ 6.4kbps 17.07kbps Sim
G.726 ADPCM 32kbps 48kbps Sim G.728 LD-CELP 16kbps 32kbps Sim
G.729(A) CS-ACELP 8kbps 24kbps Sim RFC 3951 ILBC 15,2kbps 27.7kbps Não
GSM RPE-LTP 13kbps Não
Tabela 4.1 Principais CODECs
Alguns CODECS são gratuitos e podem ser utilizados sem maiores preocupações. Outros,
têm os direitos autorais de seus códigos ou algoritmos protegidos, e para utiliza-los é necessário o
pagamento de suas licenças.
No Asterisk, podemos verificar que CODECs estão instalados e assim verificar se o sistema
está apto a realizar a tradução de um para outro digitando o comando ‘show translations’ na
interface CLI (Console Line Interface).
Preço
A questão do preço é algo que causa alguma confusão com muitas pessoas. Pelo fato do
Asterisk ser um software de código aberto e poder ser baixado da internet de graça, rodar sobre um
sistema operacional também gratuito, e ter todas as funcionalidades e sistemas auxiliares baseados
também em software livre, as pessoas acham que toda solução envolvendo o Asterisk também
deveria ser de graça, ou quase de graça.
Entretanto, investe-se muito tempo e dinheiro estudando as tecnologias envolvidas no
projeto, testando e implementando soluções para que no final, o cliente consiga uma economia,
algumas vezes, de mais de 50% da conta telefônica.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
32
Além disso, é preciso considerar o preço do hardware TDM. As portas FXS, FXO, T1 e E1
não são baratas. Outros hardwares auxiliares como banco de canais, são muito caros, não importa o
fabricante. Determinados projetos ainda podem utilizar ATAs ou gateways de voz sobre IP mais
simples, que também encarece a solução.
Outra coisa que aumenta assustadoramente o preço das peças é o fato de que elas precisam
ser importadas. Em alguns casos, as placas E1 cotadas pela empresa XPTO chegaram a encarecer
quase 100% em relação ao preço nos Estados Unidos. Este absurdo, apenas a título ilustrativo, –
pois ninguém compraria deste fornecedor – serve para mostrar como a importação realmente
encarece o preço das placas.
Neste projeto especificamente, além da máquina que serviu de plataforma, um Pentium 4,
3GHz com 2Gbytes de RAM, foi adquirido mais uma placa Quad E1/T1, dois banco de canais
Adtran 750 equipados com 24 FXS, módulo de energia e de controle cada um, dois gateways para
telefonia celular. Sem contar com a mão de obra, tempo para estudo e desenvolvimento da solução
final e a conta com a operadora de voz local.
É claro que uma solução mais modesta pode realmente não ser custosa. Tome-se, por
exemplo, um projeto SOHO (Small Office – Home Office) que solicitou pelo menos um ramal IP
implementado via softphone instalado no notebook do pequeno empresário, um ramal convencional
no escritório e mais um ramal convencional para atender a casa. O Asterisk pode ser instalado em
um K6-II, 300 MHz e 128Mbytes de RAM com uma placa FXO, clone. Esta máquina seria muito
mais barata do que a utilizada no projeto da XPTO. E para os dois ramais analógicos, um ATA com
2 FXS que também funciona como roteador resolveria o problema por muito menos que um banco
de canais. Ou seja, neste caso, um PABX completo com URA, fila de chamada, 2 ramais analógicos
e possibilidade para quantos ramais IP desejar que permitem fazer ligações de qualquer lugar do
mundo como se estivesse em seu escritório não teria custado nem um décimo do PABX da XPTO.
Se for observado apenas o total gasto para implementar a solução, parece que foi muito caro,
mas quando se leva em consideração tudo o que o PABX pode fazer, desde servir de gateway para
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
33
os diversos CODECs e protocolos até a integração com o banco de dados interno e o produto de
CRM que se formou no final, conclui-se foi um ótimo investimento. A relação custo-benefício
quando o Asterisk é utilizado como solução de comunicação sempre é favorável.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
34
5. Dificuldades Encontradas
A maior dificuldade foi, com toda certeza, escrever a documentação. Como acontece nas
tarefas na maioria das empresas de pequeno e médio porte, esta implementação não foi devidamente
documentada. A maior parte do texto técnico está escrito em forma de comentário nos arquivos de
configuração e scripts. Infelizmente, pode-se dizer que este texto – que não é técnico – é a
documentação mais elaborada com relação ao projeto em questão.
Dentre as dificuldades técnicas, pode-se citar algumas, que seguem na forma de seções deste
capítulo.
Gateway H.323
A princípio, a intenção da empresa XPTO era fazer o ‘Planet’ VIP 400 falar diretamente
com o Asterisk, utilizando o protocolo H.323, com pode ser visto na figura 3.2.
Os primeiros testes até foram bem sucedidos. Através de um ramal IP instalado em um PC
conseguiu-se estabelecer uma ligação com um ramal convencional ligado à porta FXS do Planet
através do Asterisk.
Fig. 5.1 Ambiente de teste H.323
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
35
Infelizmente, após a chegada da placa TE405p e da instalação da PRI, quando foi dado
início à instalação definitiva, a comunicação entre Asterisk e Planet não aconteceu mais. Foram
feitas várias tentativas de compilação e configuração, inclusive com um downgrade do Asterisk,
mas nenhuma delas foi bem sucedida.
A solução encontrada foi implementar a comunicação Planet-Asterisk utilizando as portas
FXOs do Planet ligadas diretamente às portas FXSs do Asterisk, pelo banco de canais, e manter o
par de Planets falando H.323 entre si para que fosse possível utilizar as portas FXS no lado da filial,
já que a empresa gostaria de aproveitá-las para os dois ramais da filial sem ter que desembolsar
mais verba para aquisição das placas FXS.
Fig. 5.2 Solução final do problema H.323
Esta seria uma solução temporária e esforços seriam concentrados para estudar e resolver o
problema.
Entretanto, como acontece na maioria dos casos, outros projetos com maior prioridade e
urgência foram surgindo e este estudo acabou ficando em segundo plano. Até hoje a solução
paliativa continua funcionando.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
36
Placa-Mãe
Placas-Mãe com chipset que não seja Intel podem se tornar uma grande dor-de-cabeça. A
primeira instalação foi feita utilizando uma placa-mãe ASUS [24], mas com chipset da empresa
Via Technologies. Com esta configuração, além do problema de compartilhamento de interrupção,
os erros “HDLC-Abort” e “HDLC-FCS Error” ocorriam com uma freqüência acima do normal,
chegando a cerca de cinco vezes por segundo.
Este problema foi corrigido quando, numa atitude quase desesperada, a placa-mão foi
trocada por outra ASUS, mas agora com chipset Intel.
Sincronismo
Após a troca da placa, um erro – no mínimo curioso – persistia. Quando a placa TE405p era
configurada para utilizar o clock do seu oscilador interno, o circuito sincronizava com a central sem
maiores transtornos. Mas quando se tentava resgatar o relógio da central da operadora, aparecia
uma diferença de 443 bps. A medição foi feita com um aparelho analisador de tráfego (lite2000) da
operadora.
Perdeu-se muito tempo discutindo e investigando a causa do ocorrido, quando se resolveu
revisar a máquina onde estava instalado o Asterisk.
Detectou-se uma situação no mínimo inesperada. Em cada slot que se colocava a placa
TE405p havia um comportamento diferenciado do sistema, com relação a interrupções.
A conclusão chegada após análise da máquina foi que além de um mau-contato no slot em
que a placa E1/T1 estava instalada, a posição de slot na placa mãe também influenciou esta
instalação do PABX.
A maquina foi totalmente desmontada, inclusive tendo sua placa-mãe retirada do gabinete, e
montada novamente. O problema de mau-contato foi resolvido. Depois se procurou por tentativa e
erro o slot que a placa E1 melhor se comportava. Encontrado este ponto, a cada placa que era
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
37
adicionada na máquina, realizavam-se testes para detectar alguma falha, mas apenas a placa da
Digium sofria efeitos da posição na placa-mãe.
Isto pode ter acontecido devido ao sistema de filtragem da alimentação desta placa estar mal
dimensionado, o que faria sofrer interferências via alimentação, ou por falta de blindagem adequada
no circuito de recuperação de clock (PLL).
Documentação do software
A documentação do site do Asterisk é simplesmente sofrível e está longe de ser suficiente
para o entendimento e a implementação de um sistema de telefonia computacional.
Desde o início, durante as primeiras pesquisas, até hoje, a grande dificuldade é a falta de
documentação. É tudo muito incompleto ou simplesmente não documentado. Boa parte de
documentos antigos ainda é utilizada como referência, apesar de terem sido escritos utilizando uma
sintaxe que já foi modificada. Felizmente, o Asterisk manteve a compatibilidade com a sintaxe
antiga e a mais nova.
A melhor saída é contar com sites especializados em VoIP e/ou Asterisk que reúnem uma
boa quantidade de documentos sobre o Asterisk. Como exemplo, pode-se citar três representantes
expressivos: o Asterisk User Documetnation Project [25], o VoIP-info.org [8]e o AsteriskBrasil.org
[9], dedicado a Voz sobre IP. As listas de discussão [10] [11], apesar de recorrentes, sempre são
muito úteis. A lista do site nacional citado acima é muito boa e a lista oficial da Digium também,
mas é excessivamente movimentada.
Outras referências
Além das referências citadas no decorrer do texto, pode-se acrescentar estas que, apesar de não terem sido utilizadas diretamente para a confecção deste documento, foram muito úteis durante o projeto.
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
38
Introdução ao Asterisk http://www.voip-info.org/tiki-index.php?page=Asterisk+introduction
Dicas de Instalação http://www.voip-info.org/tiki-index.php?page=Asterisk+installation+tips
Dicas de dimensionamento de hardware http://www.voip-info.org/tiki-index.php?page=Asterisk+dimensioning
QoS para Asterisk http://www.voip-info.org/tiki-index.php?page=Asterisk+QoS
Arquivos de configuração do Asterisk http://www.voip-info.org/tiki-index.php?page=Asterisk+config+files
Erlang.com – Site sobre telefonia http://www.erlang.com/
Estudo do protocolo IAX2 http://www.voip-info.org/tiki-index.php?page=Asterisk+bandwidth+iax2
Sorting Through GSM Codecs: A Tutorial http://www.commsdesign.com/design_corner/OEG20030711S0010
iLBC codec specification (rfc3951.txt) http://www.ietf.org/rfc/rfc3951.txt
RTP Payload Format for iLBC speech (rfc3952.txt) http://www.ietf.org/rfc/rfc3952.txt
Voice Over IP - Per Call Bandwidth Consumption http://www.cisco.com/en/US/tech/tk652/tk698/technologies_tech_note09186a0080094ae2.shtml
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
39
6. Conclusão
Após todo o processo de pesquisa, instalação, documentação e implementação do Asterisk
pode-se concluir que a tecnologia de voz sobre IP veio para ficar. Ela pode até não substituir a
telefonia convencional e seus circuitos dedicados, mas com certeza elas vão coexistir por muito
tempo.
Os documentos encontrados durante as pesquisas apontam para uma valorização da telefonia
computacional como a alternativa ao sistema convencional de comunicação, pois com ela é possível
realizar a integração de voz, dados e imagem num mesmo servidor por um preço elativamente
baixo. Apesar de não ter sido implementado neste projeto alvo do estudo de caso, o Asterisk é um
software capaz de suportar e compor o cenário para o Triple Play (som + dados + imagem).
Além disso, a utilização da telefonia computacional aumenta a relação custo-benefício em
praticamente todos os casos em relação aos equipamentos da telefonia convencional, pois possui
vários recursos que na telefonia convencional são muito onerosos.
Em relação ao ambiente de rede pode-se notar que, ao contrário do que se imaginava há
algum tempo atrás, a Internet hoje está sendo utilizada como backbone para as conexões de voz.
Não há condições de se garantir a qualidade da ligação, mas ela está sendo utilizada com um
sucesso maior do que o esperado. Tanto é verdade, que operadoras de telefonia convencional já
possuem produtos de VoIP baseados na Internet. Portanto, para o cliente caseiro ou para uma
pequena empresa, voz sobre IP trafegando na internet, apesar da falta de confiabilidade, é uma
opção que está sendo amplamente utilizada.
Quanto ao software e sua implementação, pode-se dizer que não é fácil adquirir o
conhecimento necessário para uma boa implementação do Asterisk. Hoje, algumas empresas já
vendem distribuições voltadas para solução de PBX. O público, normalmente não conhece teoria de
telefonia e mal conhece teoria de redes. O resultado é uma solução aquém do potencial do software,
que muitas vezes não atende a todas as necessidades e muito propícia a ocorrência de erros. É
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
40
recomendável que soluções para voz sobre IP e integração das redes telefônica e de dados, mesmo
com a aparente facilidade do Asterisk, sejam implementadas por profissionais com conhecimento
suficiente das áreas afins.
Enfim, quanto da solução como um todo, pode-se dizer que foi implementada com sucesso.
Mesmo tendo existido alguns problemas, todos eles, de uma forma ou de outra, foram
transpassados. Todas as requisições foram atendidas. É verdade que ainda faltam corrigir algumas
pendências como gravação profissional das mensagens de voz do atendimento automático e a
correta implementação do gateway H.323, que hoje funciona com uma solução paliativa, mas todas
as funções requeridas estão em funcionamento.
A representação completa da rede de voz da empresa XPTO em funcionamento hoje se
encontra na figura abaixo.
Fig. 6.1 Rede completa em funcionamento
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
41
7. Referências
[1] Eduardo Mendes Tavares, Luiz Schara (Orientador) Implantação de um PBX VoIP Multifuncional – Dezembro de 2004
[2] Asterisk.org – Home http://www.asterisk.org
[3] Asterisk.org – Features http://www.asterisk.org/index.php?menu=features
[4] Digium – Home http://www.digium.com
[5] GNU – General Public License http://www.gnu.org/copyleft/gpl.html
[6] Asterisk Business Edition http://www.digium.com/index.php?menu=product_detail&category=software&product=ABE
[7] The Asterisk Handbook – Version 2 (Draft) http://www.digium.com/handbook-draft.pdf
[8] VoIP-info.org http://www.voip-info.org
[9] AsteriskBrasil.org http://www.asteriskbrasil.org
[10] Lista de Discussão - Asterisk Users http://lists.digium.com/mailman/listinfo/asterisk-users
[11] Lista de Discussão - AsteriskBrasil http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil_listas.asteriskbrasil.org
[12] RFC-3261 – Session Initiation Protocol ftp://ftp.rfc-editor.org/in-notes/rfc3261.txt
[13] IAX – Inter Asterisk eXchange Specification http://www.cornfed.com/iax.pdf
[14] The Asterisk Documentation Project – Volume One: An Introduction to Asterisk http://www.asteriskdocs.org/modules/tinycontent/content/docbook/current_v1/docs-html/book1.html
[15] MPG123 Home Page
http://www.mpg123.de/
[16] Linux Advanced Routing and Traffic Control HOWTO http://lartc.org/howto/
UNIVERSIDADE FEDERAL FLUMINENSE ASTERISK: MUITO MAIS QUE UM PBX IP ENGENHARIA DE TELECOMUNICAÇÕES UM ESTUDO DE CASO
42
[17] Distributed Universal Number Discovery Home Page http://www.dundi.com/
[18] RFC-2705 - Media Gateway Control Protocol ftp://ftp.rfc-editor.org/in-notes/rfc2705.txt
[19] SCCP – Skinny Call Control Protocol Introduction http://www.cisco.com/en/US/tech/tk652/tk701/tk589/tsd_technology_support_sub-protocol_home.html
[20] Asterisk Callback
http://www.voip-info.org/tiki-index.php?page=Asterisk+auto-dial+out
[21] IAX vs. SIP, by Mark Spencer http://www.voip-info.org/tiki-index.php?page=IAX+versus+SIP
[22] Bandwidth Consumption http://www.voip-info.org/tiki-index.php?page=Bandwidth%20consumption
[23] CODECs, do site VoIP-info.org http://www.voip-info.org/tiki-index.php?page=codecs
[24] ASUS Home Site http://www.asus.com
[25] Asterisk User Documentation Project http://www.asteriskdocs.org/