O documento descreve uma solução de telefonia baseada no software livre Asterisk para pequenas empresas, permitindo implementar funcionalidades avançadas de telefonia sobre uma rede IP local de forma barata. O Asterisk permite controlar o roteamento de chamadas entre a rede local e a rede telefônica pública usando protocolos VoIP.
1. TelSL1 – Solução de telefonia sobre redes de dados para pequenas
corporações utilizando softwares livres
Celso Henrique Ribeiro, Rafael Antonio Souza Spotto, Mauro Tapajós Santos
Curso de Bacharelado em Ciência da Computação
Universidade Católica de Brasília (UCB) – Brasília, DF – Brasil
celsohr@gmail.com, rafaelspotto@uol.com.br, maurotapajos@gmail.com
Abstract: Nowadays functions offered by PSTN and Internet protocols
development moves IT sector for building new VoIP applictions. Plain
computer systems can make available functions commonly found on expensive
public or private telephone switches or PABX. Now this article shows that is
possible to build full PABX services upon a local IP network for users. In
order to do this, Asterisk, a free software system developed in Linux which
supports analog and digital technology, can be used to deal with VoIP
protocols and calls routing between PSTN and data network. Here, Asterisk
will be used as a PABX solution over local IP data network together with
softphones running on workstations.
Resumo: As atuais funcionalidades oferecidas pelo sistema telefônico e o
desenvolvimento de protocolos Internet, estimulam o setor de TI a criar
aplicações VoIP. Sistemas computacionais podem implementar diversas
funcionalidades normalmente encontradas em centrais telefônicas privadas,
que são caras e proprietárias. Pode-se disponibilizar sobre uma rede IP e com
softwares livres, várias das funcionalidades encontradas no serviço de
telefonia convencional. O Asterisk, um sistema em software livre desenvolvido
em Linux e que integra tecnologia analógica e digital, pode fazer o controle
completo do roteamento de chamadas e serviços suplementares usando os
protocolos padrões VoIP. Aqui ele será usado como solução de PABX em rede
local, juntamente com, softphones de distribuição livre rodando sobre estações
de usuários.
1. Introdução
O sistema telefônico atual dispõe de diversas funcionalidades que facilitam a
comunicação entre usuários e é marcado por enormes investimentos para implantação e
manutenção. Na maior parte dos casos, são necessários altos investimentos, para fazer
uso dessas vantagens, considerando a necessidade de aquisição e operação de centrais
telefônicas que oferecem essas funcionalidades.
Voz sobre IP-VoIP é uma tecnologia que cria a possibilidade de integrar
aplicações de voz e dados numa mesma rede, facilitando a manipulação das
informações, aumentando ainda mais a interatividade entre usuários do mundo inteiro, e
reduzindo custos de gerenciamento e operação, quando comparado a ligações
telefônicas interurbanas convencionais usando a PSTN.
O Asterisk é um exemplo de sistema de telefonia digital via software, de
plataforma livre, e que pela abrangência de recursos, pode ser uma alternativa.
Considerado um software maduro e estável, possui recursos suficientes que permitem
2. substituir o PABX existente ou complementá-lo com tecnologia VoIP. É um sistema
que permite criar soluções de telefonia com vários ramais internos e funcionalidades
avançadas, como caixa de mensagens, transferência de chamadas e resposta interativa
de voz.
Possibilita ainda, interligar servidores Asterisk em uma rede IP, permitindo
ligações de longa distância sem usar a rede de telefonia pública. Além disso, este
sistema pode se conectar a rede pública por meio de um hardware específico.
Como objetivo do trabalho, foi proposta e implementada uma solução para
implantação da tecnologia de Voz sobre IP numa rede Ethernet local de pequeno porte,
utilizando o Asterisk, sem interligação com a rede pública de telefonia, explorando as
diversas funcionalidades disponíveis em sua arquitetura.
2. Telefonia
A estrutura do sistema de telecomunicações evoluiu muito ao longo do tempo, passando
de uma tecnologia puramente analógica para uma crescente utilização de sistemas
digitais.
A voz, que é de natureza analógica, precisa ser convertida em sinal digital para
utilização em redes digitais, como redes TCP/IP por exemplo, e na recepção, o sinal
precisa voltar a sua forma analógica. Para tanto, são utilizados os CODEC’s
(Codificador/Decodificador).
2.1. Canais FXS e FXO
Para promover a comunicação de um sinal de voz em codificação analógica,
proveniente de um telefone convencional conectado a uma rede de dados, com a rede
PSTN, é necessário utilizar uma interface física.
Normalmente, essa interface é um hardware, por exemplo a placa Zaptel X100P,
que apresenta porta(s) para telefones analógicos internos e porta(s) para a rede PSTN,
respectivamente FXS e FXO.
FXO – Foreign Exchange Office: é a porta utilizada para possibilitar a
comunicação com um PABX ou com uma central telefônica da rede PSTN.
FXS – Foreign Exchange Station: é a porta utilizada para possibilitar a
comunicação com um telefone analógico.
2.2. Centrais Privadas de Comutação Telefônica (PABX)
Centrais Privadas de Comutação Telefônica – CPCT, são centrais que podem ser
utilizadas por qualquer entidade onde o tráfego telefônico interno se caracteriza por
volumes consideráveis e o custo de usar uma grande quantidade de linhas externas se
torna indesejável.
Estas centrais são conhecidas também por PBX (Private Branch Exchange), de
operação manual e PABX (Private Automatic Branch Exchange), de operação
automática, que podem estar interligadas ou não a uma central de comutação da Rede
Pública de Telefonia – PSTN [2].
O PABX se liga a PSTN por um determinado número de linhas ou troncos,
dispondo de linhas internas (ramais) em quantidade superior ao número de troncos. A
grande vantagem do PABX é o seu menor custo de operação quando comparado com a
3. utilização direta da rede pública, por não haver tarifação das chamadas internas e por
demandar menor número de linhas/troncos que o número total de terminais atendidos
[2].
O PABX pode utilizar tanto a comutação analógica como a digital, e desta forma
tratar adequadamente chamadas de terminais e canais analógicos ou digitais,
codificando o sinal de acordo com o desejado e encaminhando para o caminho
especificado. Atualmente, programação computacional é utilizada nestas centrais, com o
objetivo de controlar chamadas e integrar novos serviços e funcionalidades.
O custo de aquisição de um PABX privado ainda é alto, apesar das reduções
provocadas pela evolução digital. Contudo, centrais programadas em software de
distribuição livre, como o Asterisk, podem ser implementadas junto com equipamentos
multimídia (placa de som, fone e microfone), softphones também livres e hardwares
adequados aos canais analógicos ou digitais, exigindo investimentos menores e
favorecendo o uso dos serviços e funcionalidades avançados.
2.2.1. Funcionalidades do PABX
O PABX é considerado uma evolução do PBX. Pode gerenciar as comunicações
de voz dentro de uma empresa, concentrando várias linhas e ramais de colaboradores,
oferecendo uma série de facilidades e serviços avançados, como transferência de
chamadas, chamada em espera e resposta interativa de voz-IVR. Pode também gerar
informações das chamadas, para fins de controle, bilhetagem e tarifação.
3 – Voz sobre IP – VoIP
Um dos mais relevantes problemas que dificultam a popularização da tecnologia VoIP,
é a obtenção de uma sinalização compatível com as redes existentes e que supra as
necessidades emergentes de interconexão. Uma solução única e unanimizada ainda
ainda não foi definida, mas algumas já existem: H.323, SIP e MGCP.
A definição de qual arquitetura usar deve considerar as características de cada
uma e a situação em questão. Será visto no ítem 5, a análise feita sobre o protocolo que
se adequa às situações de uso do Asterisk. Contudo, é relevante destacar alguns pontos
dos dois conjuntos de protocolos de sinalização VoIP mais importantes, descritos na
Tabela 1:
Tabela 1 – Comparação das arquiteturas Sip e H.323
Aspecto SIP H.323
Documento de 128 páginas, o que reflete Documento de 736 páginas, o que reflete
mais simplicidade. maior complexidade para implementação.
Apenas 37 tipos de cabeçalhos de Faz uso de centenas de mensagens.
mensagens diferentes.
Complexidade
Formatação textual, facilitando o Formatação binária.
entendimento visual rápido do tráfego.
Realiza as operações de forma única para Sua completa interoperabilidade exige a
tratamento da uma mesma tarefa. definição de funcionalidades por perfil.
4. Novas características podem ser incluídas Existem algumas predefinições para futuras
de forma fácil e compatível com as inclusões.
versões anteriores.
Escalabilidade
Aceita codecs de áudio e vídeo livres, Codecs devem ser padronizados pelo ITU,
reconhecidos pelo IAB. proprietário ou padrão.
Pode trabalhar nos modos statefull ou É stateful, ou seja, mantém o estado das
stateless. No segundo caso, o chamadas. Uma grande quantidade de
desempenho não sofre interferência por chamadas simultâneas, pode provocar baixa
não ter que armazenar o estado das performance.
chamadas.
Performance
Conferência ocorre de forma distribuída Conferências usa obrigatoriamente a MCU,
pelos participantes, sem a necessidade de que centraliza toda sinalização e pode ser
um equipamento centralizador. um “gargalo”.
Facilidade de transferências, conferências Facilidade de transferências, conferências e
e encaminhamento de chamadas. encaminhamento de chamadas.
Operabilidade
Suporta operação de gateway entre Também suporta operação por gateways.
segmentos de redes diferentes,
possibilitando tradução de protocolo de
sinalização e mídia.
4. Asterisk
Dentre os sistemas em software livre existentes atualmente que provêem aplicações de
telefonia digital, o Asterisk se destaca por integrar tecnologia analógica e digital para
transporte de voz e dados, utilizando eficientemente os protocolos VoIP, sendo
considerado uma atraente alternativa para PABX em software [3].
É distribuído sobre os termos da licença GPL (GNU Public Licence) [4].
Desenvolvido, primeiramente, pela empresa Digium [5], sua principal patrocinadora,
sendo Mark Spencer, seu principal criador e mantenedor.
Além das arquiteturas VoIP apresentadas, o Asterisk também suporta o IAX. O
IAX (Inter-Asterisk-Exchange) é um protocolo que provê controle e transmissão de
streaming media, incluindo vídeo, mas foi primeiramente desenvolvido para o controle
de chamadas de voz sobre IP.
Os principais objetivos do protocolo IAX são: minimizar a largura de banda
usada para controle e transporte de mídia com ênfase em chamadas de voz e prover
suporte nativo para transparência em NAT (Network Adress Translation).
IAX é um protocolo de mídia e de sinalização peer-to-peer. Isto significa que os
endpoints mantém máquinas de estado com as operações do protocolo. Os componentes
de sinalização trabalham no modo cliente-servidor, como o SIP. Com respeito ao
transporte de mídia, o controle de sequência e de temporização estão incluídos nos
frames do IAX, que não usa o RTP (Real-time Transport Protocol).
O IAX é um protocolo aberto e não separa o controle de sinalização e o tranporte
da mídia, ele faz isso sozinho, diferente dos outros protocolos que usam RTP/RTCP
para o transporte da mídia. O transporte da mídia e a sinalização se faz utilizando a
mesma porta UDP (User Datagram Protocol). Por causa disso, ele não sofre de
problemas com NAT. Alé disso, permite que múltiplos streams de mídia possam ser
representados com um único cabeçalho, reduzindo consideravelmente o overhead.
Possui bibliotecas com funções de telefonia que fazem o controle completo do
5. roteamento de chamadas. Dentre outras funcionalidades, como um PABX convencional,
oferece correio de mensagens integrado de voz e dados, filas de chamadas onde agentes
atendem as chamadas e monitoram a fila, conferência de chamadas, música em espera
na fila com MP3, registro detalhado de chamadas (CDR calldetailrecords) e resposta
interativa de voz.
Por meio da parceria da empresa Digium e do projeto Zapata [6], conduzido por
Jim Dixon, também foi possível investir em hardware de telefonia de baixo custo,
permitindo que o Asterisk possa ter um hardware específico para sua interligação com
a rede púbica de telefonia PSTN.
O Asterisk pode ser usado nos seguintes contextos:
Soluções de telefonia em redes de dados locais (como Ethernet) com
protocolos VoIP H.323, SIP, IAX e MGCP, em conjunto com SoftPhones
e/ou HardPhones, sendo estes equipamentos ou softwares que realizam as
funções de telefone neste tipo de solução.
Tornar viável conexões de uma rede local VoIP com a rede pública de
telefonia ou com um PABX, por meio de placas específicas que provêem
canais analógicos ou digitais. O Asterisk oferece suporte a estes tipos de
placas.
Conectarse à provedores de serviço de telefonia VoIP, como o
FreeWorldDialUp, que é uma provedora de serviços de voz em tempo real
de alto desempenho utilizando comunicação IP por meio da Internet. [7].
Possibilita conectar vários escritórios em várias localidades diferentes, por
uma rede privada de dados ou pela Internet, através de conexões seguras.
4.1. Principais funcionalidades
As principais funcionalidades do Asterisk são:
Interligação com a PSTN: o Asterisk tem suporte a placas que provêem
canais físicos ISDN E1 e T1, FXO e FXS.
CDR CallDetailRecords – Registro detalhado de chamadas: tem
capacidade de registrar todas chamadas que são realizadas. Armazena
duração da chamada, número de origem, destino, data e hora.
Interligação de Servidores Asterisk: permite a interligação de um ou mais
servidores, aumentando a abrangência do sistema de telefonia.
Conferência: podese configurar salas de conferência, onde usuários podem
se logar e falar com todos usuários logados.
DAC – Distribuição Automática de Chamadas em Filas de Espera:
permite configurar filas de espera e distribuir as chamadas entre os membros
de uma organização ou agentes específicos para atendimento.
Música em espera: podese configurar uma ou mais músicas para chamadas
que entram na fila de espera.
6. IVR – Resposta de voz interativa: permite criar menus interativos de voz,
onde clientes podem ser encaminhados para telefones ou setores específicos.
Integração com banco de dados: pode fazer conexão com banco de dados
para configuração dinâmica do plano de discagens, tarifação (billing) e gerar
estatísticas.
Caixa de mensagens unificada de voz e texto: tem caixa de mensagens de
voz poderosa, onde usuários podem configurar mensagem de ocupado e
indisponível e aplicações para ouvir suas mensagens ou encaminhala para
outro usuário. Ainda se pode configurar um correio eletrônico para que as
mensagens de voz possam ser encaminhadas.
Transferência de chamadas: permite transferir uma chamada para outro
telefone.
Estacionamento de chamadas: permite parar uma chamada em um telefone
para poder atender em outro.
4.2. Arquitetura
O Asterisk funciona essencialmente como um middleware, conectando as
tecnologias de telefonia na base e as aplicações de telefonia no topo em uma visão
externa [3], como mostra a Figura 1.
Tecnologias de telefonia podem ser digitais usando protocolos VoIP, canais
ISDN do tipo T1, E1, PRI e BRI, e analógico como PSTN. Aplicações de telefonia
incluem distribuição automática de chamadas, conferência, caixa de mensagens,
atendimento automático.
Figura 1 – Visão externa do Asterisk
4.2.1. Arquitetura interna
Quando o Asterisk é inicializado, o DML (Dynamic Module Loader) lê e
inicializa cada um dos drivers que disponibilizam canais, formatos de arquivo,
detalhamento de chamadas, CODECs, e liga com as API's internas [3]. Então, o
Switching Core PBX, o núcleo comutação, começa a aceitar chamadas das interfaces e
tratá-las de acordo com o dialplan (plano de discagens), usando as aplicações para
chamar telefones, conectar com a caixa de mensagens, fazer conexão com troncamento
externos, entre outros.
O Core provê um Scheduler (Agendador) e um Gerenciador de I/O para que
as aplicações e os drivers possam usar [3]. Além disso, existe o Code Translator, com
7. a função de tradutor que permite usar canais com codificadores e decodificadores
(CODECs/DECoder) de diferentes tipos para que usuários possam falar um com o
outro. A maioria das funcionalidades que se pode tirar proveito vem dos canais,
CODECs, aplicações, formato de arquivos e varias interfaces de programação, assim
como mostra a Figura 2.
Figura 2 – Arquitetura interna (core) do Asterisk
4.3. Canais, codecs e protocolos
Os canais, codecs e protocolos suportados pelo Asterisk são.
4.3.1. Canais
Canais são conexões lógicas com vários tipos de sinalização e caminhos usados
para conectar chamadas. Eles podem ser físicos FXS, FXO, PRI, BRI, T1 e E1,
providos por placas. Podem também ser baseados em softwares, com alguma
combinação de CODEC com protocolo de sinalização, por exemplo GSM com SIP ou
G.711 com IAX [11].
O Asterisk suporta vários tipos de hardware que provêem canais físicos, como
placas ISDN e placas de canais T1/E1 disponíveis no mercado.
4.3.2. Codecs
CODEC(COder/DECoder), é um software codificador dos sinais da voz, para
que o sinal possa ser transmitido digitalmente. A Tabela 2 mostra os CODECs que o
Asterisk suporta:
Tabela 2 – CODECs suportados pelo Asterisk
CODEC Bitrate (Kbps) Requer Licença
G.711 64 Não
G.726 16, 24 ou 32 Não
G.723.1 5,3 ou 6,3 Sim
G.729 8 Sim
GSM 13 Não
8. CODEC Bitrate (Kbps) Requer Licença
iLBC 13,3 ou 15,2 Não
Speex 2,5 à 22,4 Não
4.3.3. Protocolos
Os principais protocolos VoIP, que definem a sinalização de uma chamada,
como o estabelecimento e encerramento de uma comunicação, registro e autenticação de
usuários e sinalização acústica de serviços avançados, como tom de discagem, tom de
chamada, tom de número inacessível, tom de aviso de chamada em espera e tons de
programação e o tráfego real de voz dogotaçizada são suportados pelo Asterisk [3].
Além dos protocolos padrão SIP, H.323, IAX e MGCP, o asterisk tem suporte
também a protocolos proprietários, como o SCCP (Cisco Skinny) e o UNISTIM,
protocolo da Nortel.
4.4. Plano de discagens
O plano de discagens é a peça mais importante na configuração do Asterisk. O
arquivo responsável por sua configuração é o extensions.conf. Ele controla como todas
as chamadas de entrada e saída são encaminhadas e manuseadas.
Ele consiste em um conjunto de contextos, cada contexto consiste em um
conjunto de extensões. Cada extensão é uma instrução para que o Asterisk possa tomar
uma determinada decisão em relação à um chamada de entrada ou saída.
Quando o Asterisk recebe uma chamada, de entrada ou saída, esta chamada
pertence a um contexto. A qual contexto a chamada pertence, depende de qual canal a
chamada foi originada. Um contexto é configurado para cada canal.
Os contextos podem ser usados para implementar um número importante de
recursos, incluindo:
Segurança: controle de acesso a ligações de longa distância;
Roteamento: rotear chamadas baseadas em uma extensão;
Auto-atendimento;
Menus multicamada: um menu para cada setor de uma empresa, por
exemplo;
Autenticação: pedir por senha para certas extensões;
Decisões baseadas em horário;
Permite criar macros: funções para aplicações normalmente usadas;
Permite o uso de variáveis;
Permite o tratamento de strings.
5. Solução para PABX local
A definição do ambiente para implantação de uma rede VoIP, passa por algumas etapas,
considerando os passos necessários para elaboração da rede e os recursos disponíveis.
Uma solução de telefonia para pequenas corporações sobre uma rede de dados
com software livre é um caso de uso aplicável no mercado atualmente. Por isso, a
solução implementada, pretende criar um ambiente real de funcionamento de um
sistema de telefonia. As etapas envolvidas nesse processo, devem contemplar desde
levantamento de requisitos do ambiente, análise dos requisitos, elaboração da solução
até testes e manutenção.
9. Assim, foi escolhido um ambiente de pequeno porte, caracterizado por poucos
computadores conectados em uma rede local Ethernet, com a finalidade de validar o
funcionamento do sistema e sua ampla quantidade de funcionalidades.
5.1. Motivação
Pequenas corporações, geralmente utilizam um PABX proprietário para prover
ramais e conexão com a rede pública de telefonia (PSTN). Esse sistema é caracterizado
por ter um alto custo de implantação, provocado pelo custo dos equipamentos
utilizados, e pelo alto custo operacional.
As pequenas corporações normalmente possuem uma rede de dados para o
desenvolvimento de suas atividades. Estas redes, na maior parte dos casos, podem
agregar o serviço de telefonia IP.
Com esse intuito, são mostrados cenários onde o Asterisk funciona como
provedor do serviço de PABX em software.
5.2 – Ambiente Montado
A Figura 3 mostra como foi montado o ambiente com rede local Ethernet 100,
um servidor Asterisk sobre distribuição Debian Sarge com processador de 2.4GHz e
RAM de 512MB, além de quatro estações cliente com telefones VoIP: 3 Linux e 1
Windows. Acesso à Internet também foi disponibilizado junto com os serviços DHCP e
DNS.
Figura 3 – Ambiente de caso de uso
Todas as estações eram baseadas em softphones. Os softphone propostos foram:
• Softphone IAXComm para protocolo IAX
• Softphone X-Lite para protocolo SIP
• Softphone GnomeMeeting para protocolo H323
Em função de melhor dsempenho e funcionalidades.
O endereço IP das estações com Softphones podem ser dinâmicos permitindo
que um usuário possa se logar no servidor de qualquer estação que possua um
Softphone instalado.
5.3. Análise do protocolo VoIP
Para escolher a arquitetura de protocolos para o servidor Asterisk é preciso
analizar critérios como:
10. Nível de funcionalidades suportadas pelo servidor;
Habilidade de trabalhar com a topologia NAT (Network Adress
Translation);
Segurança;
Uso de banda passante.
O protocolo SIP foi projetado pela IETF (Internet Engineering Task Force) para
interoperar com as aplicações da Internet existentes, implementando a sinalização VoIP
de maneira consistente O Asterisk tem um suporte maior para este protocolo do que
para MGCP e H.323 [13].
O IAX tem a capacidade de diminuir o uso de banda passante porque tem a
habilidade de juntar multiplas sessões em um único fluxo de dados. Isso permite que
múltiplos streams de mídia possam ser representados com um único cabeçalho de
datagrama, diminuindo consideravelmente o overhead na rede. Além disso, ajuda a
diminuir a latência e reduzir processamento, possibilitando um número maior de canais
na rede [12].
O H.323 controla todas as chamadas através de um gatekeeper. Para trabalhar
em um rede que implementa NAT, é preciso ter um proxy rodando como gatekeeper. O
Asterisk não pode agir como um gatekeeper H.323, precisando usar uma aplicação a
parte para esta tarefa, conforme [12].
5.4. Análise do Codec
Numa rede corporativa é importante diminuir a sobrecarga da rede de dados e
usar CODECs que ocupam menos largura de banda. Além disso é preciso avaliar a
qualidade da voz. Para escolher um CODEC é preciso avaliar, principalmente, os
critérios de largura de banda e qualidade da voz.
É importante ressaltar que é recomendado padronizar um CODEC apenas para a
rede inteira, para que não hajam problemas com a qualidade da voz e não sobrecarregue
o servidor com tradução entre CODECs diferentes.
Dentre todos os CODECS, três tem destaque para uma rede de dados
corporativa: GSM, iLBC e Speex, porquê ocupam pequena largura de banda e são
públicos (livres).
5.5. Descrição das funcionalidades implementadas na solução
O ambiente utilizado para implantar a rede VoIP, é configurado com quatro
computadores. O sistema será dotado de algumas funcionalidades descritas nos
próximos itens, que possibilitam a operação satisfatória do ambiente corporativo
definido, cabendo descrever dois casos de uso básicos:
Caso de Uso 1:
“Uma chamada é recebida por um colaborador de determinado departamento,
tocando seu terminal, cujo número corresponde ao informado pelo emissor. Se o
receptor atender o chamado, a conexão será estabelecida e o diálogo ocorrerá. Caso não
atenda, a chamada será direcionada para a caixa de mensagem do terminal receptor,
onde quem originou a chamada será orientado a deixar uma mensagem, que por sua vez
será enviada para o endereço eletrônico do receptor.“
Caso de Uso 2:
11. “O emissor fará uma chamada para o departamento. A chamada será direcionada
para um menu de voz. Ao término da mensagem o emissor deverá informar o número
que correponde ao receptor desejado. Caso não disque nenhuma opção, é encaminhado
para a fila de espera de chamadas, onde escutará uma música em espera até que um
membro o atenda.”
5.5.1. Telefones VoIP nas estações
Existem duas situações usando Asterisk. Em uma situação, os pacotes com a voz
codificada, podem ser configurados para passar pelo servidor, Na outra, a mídia pode
ser configurada para não passar pelo servidor, apenas a sinalização para estabelecer uma
chamada.
Se a mídia não passar pelo servidor Asterisk, não há possibilidade de
sobrecarregá-lo, porém, perde três funcionalidades: não registra os tempos de duração
das chamadas; assim que uma chamada é estabelecida o servidor deixa de monitorá-la,
impossibilitando a tarifação, a transferência e o estacionamento de chamadas somente
são possíveis se a mídia passar pelo servidor.
Há dois tipos de configurações de telefone: uma configuração global e um
configuração específica para cada um.
Pode-se configurar um telefone apenas para realizar chamadas (users), apenas
para receber chamadas (peers) ou os dois (friends). Foi configurado uma senha para
cada usuário e um número para caixa de mensagens. Todos telefones devem ser
configurados para serem utilizados por um contexto no plano de discagens.
Os arquivos de configuração para os telefones telefones, são: sip.conf, iax.conf,
h323.conf e mgcp.conf.
As principais aplicações que o Asterisk utiliza para telefones são:
Dial(telefone) – Toca um telefone
Answer() - Atende um telefone
Hangup() - Desliga a chamada
5.5.2. Caixa de mensagens de voz e dados unificada
É permitido configurar uma caixa de mensagens de voz para cada usuário,
quando este está ocupado ou indisponível.
O telefone emissor após gravar uma mensagem, tem como possibilidade realizar
as seguintes ações: aceitar; revisar, regravar ou ir para a telefonista.
No arquivo de configuração de caixa de mensagens, é configurado uma senha de
acesso e um correio eletrônico para que as mensagens de voz possam ser encaminhadas.
As mensagens de voz podem ser gravadas em um dos três formatos: wav, gsm e wav49,
sendo o formato gsm o que ocupa menos espaço em disco, seguido do wav49 e wav,
conforme [11].
Qualquer usuário que quiser acessar sua caixa de mensagens deve ser orientado
a discar no número escolhido pelos administradores do servidor Asterisk. O número
escolhido neste projeto foi o 9000. Discando para esse número o usuário ouvirá uma
voz orientando a discar o número da sua caixa de mensagem e senha.
As principais aplicações utilizadas pelo Asterisk neste item são:
Voicemail (número de correio) - Encaminha para a caixa de mensagens.
12. VoicemailMain () - Para acessar a caixa de mensagens e configuração de
mensagens de voz.
5.5.3. Resposta de voz interativa - IVR
A resposta de voz interativa, conhecida em inglês como IVR (Interactive Voice
Response), são menus de voz que permitem que chamadas possam ser encaminhadas
para um determinado usuário, um determinado setor de uma corporação ou ainda pode
ser encaminhada para fila de espera.
Foi criado um menu de voz para que quando um usuário ligue para o número de
determinado departamento com mais de um telefone, ouvirá as opções que foram
definidas conforme a seguinte mensagem de entrada: “Você ligou para o CESMIC,
disque 1 para falar com Mauro Tapajós, disque 2 para falar com Eduardo Lobo, disque
3 para falar Raissa“.
O sistema é configurado para espera alguns segundos até que uma opção seja
informada. O número discado encaminhará a chamada para o destino informado e fará
tocar o telefone desejado.
As principais aplicações utilizadas pelo Asterisk neste item são:
Wait (segundos) – Espera por tantos segundos.
Record (nome da mensagem) - Grava uma mensagem.
Playback (mensagem) - Toca uma mensagem.
GoTo () - Vai para um determinado lugar de um contexto.
5.5.4. Registro detalhado de chamadas e tarifação
O registro detalhado de chamadas é uma funcionalidade que o Asterisk tem que
pode ser configurada para registrar as chamadas em arquivo de texto comum ou fazer
conexão com banco de dados e registrar em tabelas.
O Asterisk tem suporte ao banco de dados PostgreSql diretamente, sem usar um
drive ODBC e tem suporte a outros bancos de dados usando um driver ODBC.
É registrado quem efetuou a chamada, o receptor, a duração, o protocolo, o
canal, entre outros.
Uma vez habilitada essa funcionalidade, o servidor registra automaticamente
todas chamadas que passam por ele. Quando a mídia não passa por ele, a duração da
chamada não é registrada.
A tarifação somente é possível quando é configurado uma conexão com banco
de dados. A partir daí, aplicativos podem fazer cálculos sobre duração de chamadas e
tarifar. Um exemplo de aplicativo é o Asterisk-stat [14], que gera gráficos e faz
consultas no banco de dados.
5.5.5. Conferência
Para o uso da conferência e de música em espera é preciso de um temporizador.
Placas Zaptel provêem esse temporizador. Quando não é possível ter uma placa, é
possível usar um temporizador através do módulo usb : uhci-hcd usado no Linux para
gerenciar portas usb. Para tanto é preciso compilar um módulo chamado “ztdummy“,
um driver que pode ser compilado junto ao código-fonte dos drivers da Zaptel. Para
conseguir os código-fonte desse módulo é preciso baixá-lo do CVS da empresa Digium.
13. Uma vez configurado esse módulo e ele em funcionamento é possível configurar
salas de conferência. As salas são referenciadas por um número e uma senha de acesso.
Caso o usuário queira entrar na sala, ele deve discar para o número referenciado no
plano de discagens e então é orientado a discar a senha de acesso. Caso confirmada, o
usuário entra na sala e fala com todos os usuários que estiverem nela.
A principal aplicação utilizada pelo Asterisk é neste item é:
MeetMe (sala de conferência) – Encaminha o usuário para uma sala de
conferência.
5.5.6. Música em espera
Também com o auxílio do módulo ztdummy, a música em espera pode ser
configurada para usuários que são encaminhados para filas de espera e pode ser
configurada para tocar durante um tempo pré-definido. Enquanto está na fila de espera,
o usuário ouve uma música configurada ou várias músicas em seqüência, até que um
membro da organização ou um agente atenda a ligação.
O aplicativo padrão que o Asterisk usa para tocar músicas é o mpg123 [15],
porém pode ser configurado outro aplicativo. Como foi o caso deste projeto que usou o
Madplay.
As principais aplicações utilizadas pelo Asterisk neste item são:
WaitMusicOnHold (segundos) - Ouve uma música em espera por um
determinado tempo.
MP3Player (arquivo) – Toca uma música em MP3.
5.5.7. Distribuidor automático de chamadas em filas - DAC
Filas de espera podem ser configuradas no plano de discagens para que um
usuário possa ser encaminhado. Enquanto espera o atendimento da chamada ele ouve
uma música.
Pode ser configurada uma fila para cada setor de uma empresa ou uma fila única
para toda empresa.
As chamadas que chegam na fila de espera podem são atendidas por membros
que podem ser telefones comuns ou por agentes. Agentes são usuários específicos para
atender chamada em fila de espera, como em call-centers.
Existem seis maneiras de se distribuir as chamadas para telefones ou agentes,
infomrando a maneira desejada na diretiva strategy do arquivo de configuração
queue.conf.
5.5.8. Transferência de chamadas
A mídia tem que passar pelo servidor para que uma chamada possa ser
transferida.
Quando o usuário quer tranferir uma chamada, ele tem duas opções:
Usa o Softphone para transferir;
Usa o servidor para transferir;
Com o Softphone, é preciso somente clicar no botão de transferência e digitar o
número desejado e então o telefone de destino tocará.
Com o servidor há dois tipos de transferência:
14. Transferência sem assistência;
Transferência com assistência;
5.5.9. Estacionamento de chamadas
É usado para estacionar uma chamada. Auxilia quando um usuário está
atendendo um telefone fora de sua sala. Ele pode estacionar a chamada em uma
determinada extensão e quando se mover de volta a sua sala digita a extensão onde a
chamada está estacionada e atende novamente.
5.5.10. Captura de chamadas
A captura de chamadas funciona quando um telefone de outro usuário está
tocando e se quer puxar esta chamada. Se digita uma determinada seqüência, como
“*8“, e a chamada é capturada.
5.5.11. Interfaces gráficas para as funcionalidades
Existem interfaces gráficas para o Asterisk fazer tarifação, configuração,
gerenciamento, visualização de status, gerenciamento de call center , interfaces de uso,
como mostra [16].
Neste trabalho, não foram utilizadas interfaces gráficas de configuração para o
Asterisk.
6. Conclusões
O Asterisk é um sistema livre robusto, capaz de suportar diversas funcionalidades
presentes em PABX de porte comercial. Com ele é possível fazer uso dos protocolos de
suporte a VoIP para implantar sistemas de telefonia sob a rede de dados, e ainda permite
utilizar as tecnologias existentes na rede pública de telefonia.
Implementado sobre uma rede local de pequeno porte, permite criar uma
ambiente com comportamento estável, confiável e seguro, integrando a rede de dados
com rede digital de voz. Sua arquitetura provê interoperabilidade de clientes Linux e
Windows.
O Asterisk é capaz de reduzir significativamente o custo de implantação e
operação de um sistema de telefonia quando comparado com tecnologias tradicionais de
telecomunicações. Sua implantação em redes de pequeno porte exige baixos
investimentos, poucos recursos de hardware e software, pequena largura de banda
disponível e conhecimento em rede de computadores para configurá-lo adequadamente.
Este trabalho visou fornecer parâmetros de configuração da solução com
Asterisk no papel de PABX dentro do contexto de uso numa rede local. Cabe
acrescentar que o Asterisk é livre sob licença GPL e possui um razoável número de
implementações funcionais suportado por uma comunidade visivelmente atuante.
Referências
[1] – JESZENSKY, Paul Jean Etienne. Sistemas Telefônicos. 1ª edição brasileira. 2004.
[2] – PINHEIRO, José Maurício Souza. Centrais Privadas de Telefonia. Disponível em:
www.projetoderedes.com.br/artigos, acessado em 05 dez. 2005.
[3] – SPENCER, Mark, ALLISON, Mark e RHODES, Christopher. The Asterisk
15. Handbook version 2
[4] – GNU, General Public License. Disponível em:
<http://www.gnu.org/licenses/gpl.html>
[5] – Digium, The primary developer and sponsor of Asterisk. Localizado em:
http://www.digium.com
[6] – Asterisk Documentation Project, The History of Zapata Telephony. Disponível
em: <http://www.asteriskdocs.org/modules/tinycontent/index.php?id=10>
[7] –Free World Dial UP, Communication for geeks by geeks. Disponível em:
http://www.freeworlddialup.com
[8] – Digium, Telephony for business. Wildcard TE410P. Disponível em:
<http://www.digium.com/index.php?
menu=product_detail&category=hardware&product=TE410P>
[9] – Asterisk Brasil, A comunidade brasileira do Asterisk. Localizado em:
<http://asteriskbrasil.org>
[10] – Asterisk Documentation Project. Disponível em: http://www.asteriskdocs.org
[11] – GONÇALVES, Flavio Eduardo Andrade. Asterisk PBX – Guia de Configuração.
Disponível em: http://www.voffice.com
[12] – MEGELLEN, Jim Van, SMITH, Jared, MADSEN, Leif. Asterisk – The Future
of Telephony, O’Reilly.
[13] – VoIP Wiki, A reference guide for all things VoIP. Disponível em:
http://www.voip-info.org
[14] – Asterisk-stat, CDR Analyser. Disponível em: <http://www.voip-
info.org/wiki/index.php?page=Asterisk+CDR+Areski+GUI>
[15] – Real Time MPEG Audio Player for Layer 1,2 and Layer3. Disponível em:
<http://www.mpg123.de>
[16] – Asterisk GUI, Graphical Users Interfaces. Disponível em: <http://www.voip
info.org/wiki/view/Asterisk+GUI>