Buscar

Apostila PBX Asterisk 2017

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

O PBX Asterisk
Prof. Glaucionor Oliveira
O Asterisk é um software de PBX� (Private Branch eXchange) híbrido com licença GPL(General Public Licence) que integra tecnologias como TDM (Multiplexação por Divisão de Tempo), telefonia IP e IVR (Resposta Interativa por Voz) com funcionalidade DAC (Distribuição Automática de Chamadas).
Esse software roda em plataforma Linux, podendo também funcionar em outros sistemas operacionais como o Windows, FreeBSD e outros, porém com recursos limitados. A Digium é a empresa criadora e desenvolvedora primária do Asterisk, sendo Mark Spencer seu criador e principal mantenedor. Essa empresa além de investir no desenvolvimento do código fonte do Asterisk, fabrica hardwares de telefonia de baixo custo que funciona em conjunto.
O Asterisk é uma plataforma completa de telecomunicações. Ele é muito mais que um PABX comum, pois permite uma conectividade em tempo real entre as redes PSTN e redes VoIP. Além de possuir as mesmas características de um PABX, ele possui uma série de recursos adicionais como:
Possibilidade de conectar empregados trabalhando de casa para o PABX da empresa, através de conexões banda larga;
Correio de voz enviado por e-mail no formato mp3 (MPEG-1/2 Audio Layer 3) ;
Música em espera para clientes esperando em filas, suportando música em mp3;
Filas de chamadas onde agentes de forma conjunta atendem e as chamadas e monitoram a fila;
Salas de conferência, onde varias pessoas podem falar simultaneamente;
Identificação do numero chamador;
Siga-me;
URA - Resposta Interativa por Voz permitindo navegar usando reconhecimento de voz ou teclado do telefone;
DAC - Entrega automática de chamadas;
Gerência de filas de chamadas (queue);
Direcionamento de chamadas;
Billing (Sistema de bihetagem); 
Gravar conversas ou conferências;
FAX over IP;
O Asterisk usa a CPU do servidor para processar os canais de voz, ao invés de ter um DSP (processador de sinais digitais) dedicado aos canais de voz. Isso permitiu uma redução de custos, porém o sistema fica muito dependente da performance da CPU, para atenuar esse problema deve-se optar por uma máquina servidora dedicada.
Ele foi projetado para permitir a adição de novas interfaces e tecnologias de maneira simples. As principais interfaces são divididas em: hardware Zaptel e Não-Zaptel. A diferença entre eles está na capacidade de realizar conferências, pois somente os Zaptel oferecem esse serviço. Segue abaixo alguns modelos de hardwares:
T410P (Zaptel) - Placa E1/T1(Padrão de telefonia Europeu/Americano) com 4 portas PCI (Peripheral Component Interconnect) 3.3 volts;
E110P (Zaptel)– Placa com E1/T1 com 1 porta;
TDM400P (Zaptel)– Placa com 4 portas para telefones analógicos e ADSI (Analog Display Service Interface);
T405P (Zaptel)– Placa E1/T1 com 4 portas (PCI 5 volts);
ISDN4Linux – É um driver antigo para placas ISDN BRI (Basic Rate Interface), acesso básico;
ISDN CAPI – É outra forma de suportar as placas ISDN BRI no Linux. 
Voicetronix – Possui placas com maior densidade de canais FXS (Foreing Exchange Station) e FXO (Foreing Exchange Office).
A figura 4.1 mostra algumas dessas placas:
 Placas Digium
Fonte: www.digium.com
Para poder alocar várias chamadas o Asterisk utiliza CODECs (Coder/Decoder), que são responsáveis pela compressão dos dados, reduzindo a utilização da banda passante. Existem vários modelos suportados, como o G.729 que permite codificar a 8 Kbps, a uma compressão de 8/1. O Asterisk é responsável por intermediar a conversação entre CODECs variados, ficando totalmente imperceptível para o usuário final, o tipo de CODEC que está sendo usado em cada terminal. Abaixo podemos ver alguns CODECs suportados: 
G.711 (64Kbps)
G.723.1 (5,3-6 Kbps)
G.726 (32 Kbps)
G.729 (8 Kbps)
GSM (Global System for Mobile Communications) (12-13 Kbps)
iLBC (Internet Low Bitrate Codec) (15 Kbps)
LPC (Linear Predictive Coding) (2.5 –10 Kbps)
Speex (Speech codec) (2.15-44.2 Kbps)
Todos os CODECs apresentados são de licença Open Source, com exceção do G.729 que necessita de licença comercial, e somente pode ser usado gratuitamente para uso educacional. O G.711, GSM e G.729 possuem melhor desempenho, os outros têm qualidade inferior ou consomem muita CPU.
Para estabelecer conexões entre um telefone e outro, é preciso um protocolo de sinalização, onde este irá determinar o ponto de destino e também questões relacionadas à sinalização de telefonia como campainha, identificador da chamada, desconexão, etc. O Asterisk funciona como um gateway de mídia fazendo a comunicação entre variados protocolos. Os principais protocolos utilizados são:
SIP – Pode ser usado na rede local (LAN). É o protocolo padrão de fato para telefonia IP no momento, porém tem problemas no uso do NAT (Network Address Translation), pois, o uso da banda com RTP (Real-time Transport Protocol) é alto;
IAX (Inter Asterisk Exchange)v1 e v2 – Protocolo proprietário do Asterisk. Ele é eficiente em banda passante e pode passar facilmente por firewalls com NAT. É mais usado para interligar dois ou mais Asterisks (WAN - Internet).
H323 – É um dos protocolos VoIP mais antigos, usado em muitas implementações. É excelente para videoconferência, mas é complexo e pouco adotado em telefonia IP.
MGCP (Media Gateway Control Protocol)– Este protocolo foi feito para ser usado em conjunto com H.323, SIP, IAX. Sua grande vantagem é a escalabilidade. Possui gerenciamento centralizado, mas ainda é pouco adotado.
Existem vários cenários de uso do Asterisk, um dos mais simples consiste em conectá-lo a uma rede LAN provendo a substituição ou acrescentando novos ramais ao sistema telefônico já existente na empresa. 
Outra possibilidade é o uso do Asterisk para conexão via Internet ao sistema telefônico fixo e celular via uma operadora VoIP. Para este modelo é necessária a compra de minutos de ligação junto a operadora.
A interligação do Asterisk ao sistema telefônico de uma operadora de telecomunicações ou um PABX usando interfaces analógicas ou digitais por ser realizado utilizando-se basicamente dois tipos de placas: a FXO (Foreign eXchange Office) utilizada para interligar linhas analógicas de centrais (PABX ou Pública) e a FXS (Foreign eXchange Station) que pode receber telefones analógicos, secretária eletrônica, máquina de fax e tronos de PABX. 
Atualmente é comum encontrarmos softswitches, que são PCs que têm a função de comutar os circuitos de telefonia VoIP. No caso do Asterisk, ele faz estas funções de forma integrada, o licenciamento é gratuito e pode ser feito em um ou mais servidores, de acordo com a necessidade. Na figura 4.2 apresenta esse cenário com uso do Asterisk:
Uso do Asterisk como softswitch
O Asterisk possui uma funcionalidade de gateway de media, podendo converter sinais analógicos (FXS e FXO) ou digitais (ISDN) vindos da central telefônica ou de telefones IP, e transmiti-los pela rede corporativa de dados eliminando os custos de ligações de longa distância entre as filiais. Para isso cada filial deverá ter um Asterisk, onde este se comunica com o outro através do IAX. A figura 4.3 ilustra esse ambiente:
Ambiente em empresa de médio porte em uma mesma cidade
 A interface de gerenciamento permite ao programador se conectar ao Asterisk e emitir comandos, ou ler eventos de PABX usando a interface sockets do TCP/IP.
A AGI (Asterisk Gateway Interface) serve para adicionar funcionalidade ao Asterisk com muitas linguagens de programação diferentes como Perl ( Extraction and Report Language), PHP (Hypertext Processor), Pascal ( Linguagem de programação extruturada), Shell (Interpretador de comandos), Java (Linguagem de programação orientada a objeto).
Instalação do Asterisk
 A instalação do Asterisk requer alguns cuidados como: hardware mínimo necessário, sistema operacional adequado, ordem de instalação dos módulos e configuração básica.
Ohardware mínimo necessário deverá ser um computador com clock de processador superior a 300 Mhz e 256 Mb de RAM. Apesar dele funcionar em quase todas as distribuições Linux, é mais recomendável instalá-lo em arquiteturas mais robustas como Suse, Mandrake, Slackware, Red Hat, CentOs, etc.
 A versão mais atual é a 1.2, e pode ser baixada no site: www.asterisk.org. Os módulos a serem copiados são: Zaptel, Libpri, Asterisk, Addons e Sounds. Todos devem ficar na mesma pasta. Antes de instalá-los deverá ser verificado se as seguintes bibliotecas estão instaladas:
ncurses, e o -devel referente
openssl, e o -devel referente
zlib, e o -devel referente
bison, e o -devel referente
Após a verificação deverá ser feita a instalação e a compilação dos módulos. Primeiramente é necessário acessar a pasta Zaptel e executar os comandos: make clean e make install. Se os serviços de conferência ou música em espera estiverem nos planos, também deverá ser compilado o módulo ztdummy. Em seguida, executam-se os comandos make clean e make install na pasta Libpri e na pasta Asterisk e executam-se os mesmos comandos com a adição do make samples para a instalação de exemplos de configuração. A aplicação destes comandos (make clean e make install) deve ser realizada também nas pastas Asterisk-Addons e Asterisk-sound finalizando o processo de instalação. 
Depois de instalado, executam-se os comandos: asterisk –vvvc para iniciar e stop now para interromper a aplicação; ambos localizados na pasta /usr/bin/. O console de um processo do Asterisk pode ser acessado a qualquer tempo. Existem muitos parâmetros que podem ser usados para configuração e monitoramento. Os principais são indicados na tabela 4.1. 
Tabela 4.1 – Parâmetros usados no Asterisk
Fonte: o Autor
	COMANDO
	FUNÇÃO
	-h
	É o help, mostra as opções de parâmetros que podem ser utilizados.
	-C <configfile>
	Inicia o Asterisk com o arquivo de configuração diferente do padrão.
	-f
	Inicia o Asterisk, mas não coloca um processo em background.
	-c
	Habilita o modo de console, iniciando o Asterisk em foreground (na frente).
	-r
	Conecta a uma instancia do Asterisk já iniciada.
	-n
	Desabilita a cor do console.
	-i
	Pede pelos códigos criptográficos de inicialização.
	-p
	Roda como prioridade em tempo real.
	-q
	Modo silencioso, suprime as mensagens.
	-v
	Inclui mensagens detalhadas.
	-d
	Habilita debug extra em todos os módulos.
	-g
	Faz com que o Asterisk descarregue o núcleo em caso de segment violation.
	-x<cmd>
	Executa o comando <cmd>(válido apenas com r).
Executar o comando de inicialização do Asterisk não é o suficiente para fazê-lo funcionar adequadamente, para que isso ocorra é necessário que sejam programados os arquivos de configuração.
Configuração básica do Asterisk
Existem vários arquivos que controlam o Asterisk, e todos eles possuem a extensão “.conf” e estão localizados na pasta /etc/asterisk. Esses arquivos são responsáveis pela configuração de hardware, telefones SIP, plano de discagem, envio e recebimento de chamadas. Os arquivos de configuração são mostrados na tabela 4.2:
Tabela 4.2 – Arquivos de configuração do Asterisk.
Fonte: o autor
	ARQUIVO
	FUNÇÃO
	asterisk.conf
	Responsável pela configuração dos diretórios para os componentes. Caso algum caminho de instalação seja especificado durante a compilação, será escrita neste arquivo.
	extensions.conf
	Responsável pelo plano de controle e fluxo de execução das chamadas. Contém as regras de discagem. Os componentes são conhecidos como “contextos”
	sip.conf
	Possui informações referentes as configurações SIP do Asterisk. Ele registra e cadastra os clientes SIP que se registrarão no servidor local, e em servidores remotos.
	oh323.conf
	Arquivo de configuração para utilização de H.323 do pacote asterisk-oh323. Ele pode cadastrar como um gatekeeper. Esse módulo não é compatível com o H.323 que originalmente acompanha o Asterisk.
	zapata.conf
	Possui configurações referentes a interfaces que utilizem o driver zaptel (como as das placas Digium). Define o protocolo PRI utilizado: EuroISDN, DMS100, National ISDN, Lucent 5ESS, etc.
	musiconhold.conf
	É responsável pela configuração das músicas de espera. Podem ser configuradas várias classes de músicas e suporta diferentes tipos de áudio, desde que exista uma aplicação compatível.
	cdr_mysql.conf
	Arquivo que contém a configuração a ser aplicada a sistema de CDR para gravar as informações em uma base de dados MySQL
	IAX.conf
	Usado para configurar clientes que usam Inter-Asterisk Exchange protocol Geralmente utilizado para interconectar servidores Asterisk
	logger.conf
	Responsável pela configuração dos logs do Asterisk. Possui vários níveis de log. Pode ser configurado para enviar logs para a tela ou arquivos
	agents.conf
	Usado para as configurações referentes aos agentes usados nas filas configuradas no arquivo queues.conf
	enum.conf
	Usado para configurações de ENUM. Pode ser usado para configurar o Asterisk para acessar primeiro um endereço via ENUM para depois via PSTN
	modules.conf
	Configura quais módulos devem ou não ser carregados quando o Asterisk é iniciado. Um módulo pode ser carregado também CLI, através dos comando load
	queues.conf
	Arquivo responsável pela configuração das filas de entrada
	RTP.conf
	Configuração do RTP (Real Time Protocol) para o Asterisk. Ele limita as portas a serem usadas, e é útil para configuração de firewalls
	voicemail
	Configura Voice Mail
	meetme.conf
	Responsável pela configuração das conferências. Podem haver senhas nas conferências.
Todos esses arquivos complementam a configuração do Asterisk incluindo funcionalidades, extensões ou serviços. Para que o Asterisk funcione de forma básica, é necessário que sejam configurado os arquivos sip.conf, extension.conf e zaptel.conf. 
O arquivo sip.conf, como descrito na tabela 4.2, possui informações referentes as configurações SIP do Asterisk, contendo parâmetros relacionados à configuração dos telefones e operadoras SIP. Todos os clientes devem estar previamente configurados para poderem fazer e receber chamadas.
Este arquivo é lido de cima para baixo e sua primeira seção contém as opções gerais, sendo identificada como: [general] e as seguintes são os nomes dos clientes, sempre entre colchetes. A tabela 4.3 mostra as variáveis que implementam a seção [general]:
Tabela 4.3 – Variáveis da seção [general]
Fonte: o Autor
	VARIÁVEL
	DESCRIÇÃO
	Allow
	Permite que um determinado codec seja usado.
	Bindaddr
	Endereço IP onde o Asterisk irá esperar pelas conexões SIP. O comportamento padrão é esperar em todas as interfaces e endereços secundários.
	Context
	Configura o contexto padrão onde todos os clientes serão colocados.
	Disallow
	Proíbe um determinado codec.
	Port
	Porta que o Asterisk deve esperar por conexões de entrada SIP. O padrão é 5060.
	Tos
	Configura o campo TOS (tipo de serviço) usado para SIP e RTP.
	maxexpirey
	Tempo Maximo para registro em segundos.
	defaultexpirey
	Tempo padrão para registro em segundos.
	Register
	Registra o Asterisk com outro host.
As definições das entidades padrão SIP vêm após a seção [general], cujas variáveis são exibidas na tabela 4.4:
Tabela 4.4 – Variáveis de configuração das entidades SIP.
Fonte: o Autor
	VARIÁVEL
	DESCRIÇÃO
	Type
	Configura a classe de conexão. A variável do tipo peer recebe chamadas, do tipo user faz chamadas e do tipo friend faz os dois ao mesmo tempo.
	Host
	Configura o endereço IP ou nome do host. A opção mais comum é dynamic. Essa opção espera que o telefone se registre.
	username
	Esta opção configura o nome do usuário que o Asterisk tenta conectar quando uma chamada é recebida.
	Secret
	Um segredo compartilhado para autenticar os peers e users.
A figura 4.4 mostra um exemplo de configuração do arquivo sip.conf:
Figura 4.4 – Exemplode configuração do sip.conf.
Fonte: Gonçalves (2005).
 O arquivo extensions.conf é responsável pelo plano de controle e fluxo de execução das chamadas. Este arquivo é dividido em quatro seções: contexto, extensão, prioridade e aplicações. Os contextos têm um papel importante na organização e segurança do plano de discagem. Eles estão diretamente ligados aos canais.
Pode-se definir mais de um contexto quando se deseja atribuir permissões de discagens diferenciadas.
Os contextos recebem o seu nome dentro de colchetes, por exemplo: [novo_contexto]. Todas as instruções colocadas após ele são partes do contexto. As variáveis estão localizadas no contexto [Globals], e podem ser usadas por todo o plano de discagem. 
Dentro de cada contexto são definidas diversas extensões. São elas que determinam o fluxo das chamadas. No Asterisk ela é uma string que dispara um evento. O comando “exten=>” é seguido pelo número da extensão, prioridade e aplicação.
Prioridades são passos numerados na execução de cada extensão.
Aplicações são partes fundamentais do Asterisk, elas tratam o canal de voz, tocando sons, aceitando dígitos ou desligando uma chamada. As principais aplicações são:
Aswer(): responde um canal que está tocando;
Dial(): Disca para um ramal ou extensão
Playback(): Toca um arquivo de som previamente gravado;
Hangup(): Desliga um canal ativo; 
Goto(): Pula para um contexto específico.
O extenions.conf aceita uma série de variáveis que servem de argumento para os comandos. 
Um exemplo de configuração do extensions.conf pode ser visto na figura 4.5:
Figura 4.5 – Exemplo simples do extensions.conf
Fonte: Gonçalves (2005).
Para implementar o sistema de VoIP através do Asterisk pode ser utilizado o softfone da Lucent chamado X-Lite, cuja interface pode ser visto abaixo. Sua configuração é muito simples e oferece 3 tipos de codec.
 
Provedores de VoIP:
TAHO, Sistema IP, Lig VoIP, Onda VoIP, NET Brás, Telefonia, VoIP Nordeste, etc...
TAHOT
O Asterisk não é o único software para a implementação de Telefonia IP. Veja abaixo outros programas para realizam um pouco do que a plataforma Asterisk fornece.
VOVIDA NETWORK VOCAL
SIP EXPRESS ROUTER (SER)
PBX4LINUX
OPENPBX VOICETRONICS
Para mais informações sobre a tecnologia do Asterisk acesse os link:
www.asteriskbrasil.org
www.digium.com
www.voffice.com.br
www.asterisk.org
www.sangoma.com
� PBX (Private Branch eXchange) é um centro de distribuição telefônica pertencente a uma empresa que não inclua na sua atividade o fornecimento de serviços telefônicos ao público em geral.

Continue navegando