Implementação de Asterisk com FreePBX – Tecnologia de Ponta
September 1, 2012 Andre FreePBX, Tutorial 1
Utilizar telefonia por IP traz diversas vantagens para o consumidor final, tais como:
Geração de relatórios de ligações;
Criação de políticas personalizadas de discagem, como por exemplo força o uso de uma determinada operadora para discagens para DDD e outra operadora em discagens para DDI (os chamados dialplans);
Redundância de troncos de telefonia analógicos ou digitais;
Criação de URAs (Unidade de Resposta Audível) personalizadas, etc.
Este laboratório tem como objetivo configurar de forma básica um servidor PBX IP para SIP Phones.
Servidor Linux com a distro FreePBX 2.7.0.0;
Uso de um link VONO (da GVT) como tunk;
Uso de Software Ekiga Phone como cliente SIP Phone.
INSTALAÇÃO DO FreePBX:
Primeiramente, o ideal é baixa a versão mais estável diretamente do link http://www.freepbx.org/download-freepbx. Feito isso, mãos à obra:
Escolha para instalação, a versão 1.6 do Asterisk:
Particionar o disco:
Prosseguir com todo o processo normal de instalação Linux.
Após a instalação, fazer o login no terminal do servidor e verificar a existência dos bancos asterisk e asteriskcdrdb, que são respectivamente o banco de dados das configurações do Asterisk e o banco de registros de chamadas.
Agora, de uma estação remota, acesse o endereço do servidor via Browser:
Após escolher o modo de administração, fazer login com o usuário admin e senha admin.
Agora, vamos à criação do "trunk", que é propriamente dito o link que comunica o servidor à rede de telefonia externa. Vamos criar um tronco SIP, que é o tipo de tronco para contas de aplicações SIP de clientes.
É importante obedecer alguns padrões como fornecer os dados de conexão com o seu link externo. Os cados utilizados aqui serão:
Usuário: tux
Domain: vono.net.br
*Obs: usuário e senha fictícios, é claro!
É importante também inserir o string da conexão, que é a linha de registro deste tronco do seu Asterisk com o host externo. Essa string deve seguir o padrão LOGIN:[email protected]:PORTA/LOGIN . Essa configuração deve ser inserida no campo Register String da página de configuração do tronco SIP.
No nosso caso, fica assim esta linha: tux:[email protected]@vono.net.br/tux.
A configuração então fica assim:
As Dial Rules são as regras de discagem que serão processadas pelo tronco quando ele receber o número da rota. Alguns meta caracteres importantes para a construção dessas regras são:
X – números de 0 a 9;
Z – números de 1 a 9;
N – números de 2 a 9;
. – qualquer posição;
| – ignorar número que o usuário discou;
+ – adicionar um número que o usuário não discou mas que o tronco exige;
[num1-num20] – intervalo entre num1 e num20.
[num1num20] – num1 e num20.
Na regra 0+ZZXXXXXXXXXX, o tronco diz que qualquer número que chegar até ele começando com números de 1 a 9 (prefixos das cidades) e vier acompanhado de mais 8 números de 0 a 9, sairá para o link externo com 0 (zero) na frente. No nosso caso é extremamente importante, pois o VONO usa a regra um zero antes de qualquer número digitado como regra de discagem obrigatória.
Após criado o tronco, vamos às rotas de saída (Outbound Routes):
As rotas de saída dizem exatamente para qual tronco cada tipo de ligação vai. Essas rotas também contam com regras de discagem que devem contemplar todos os formatos possíveis válidos para o usuário digitar.
Na regra 0|ZZ[2-5]XXXXXXX a rota diz que o zero que o usuário digitar antes do prefixo da cidade será removido antes de ser entregue ao tronco. Nesta mesma regra, esta rota entende apenas números que iniciem com 0 (mesmo que seja removido), que tenha 2 números de 1 a 9 (prefixos) após e mais o grupo de 8 números (grupo este que deverá iniciar com número de 2 a 5 para serem processados por esta rota).
É importante também verificar se o tronco foi registrado com sucesso no servidor. Para tal, execute o comando 'asterisk -rvv' no servidor e execute a linha de comando 'sip show registry' para exibir todos os tunks SIP registrados.
Abaixo vou demonstrar um exemplo real de registro SIP:
Criação das rotas
A rota acima é apenas de ligações para DDD fixo e está configurada para sair preferencialmente pelo tronco VONO e, caso este esteja inoperante, utilizar o tronco analógico, que pode ser um link analógico da operadora conectado à uma placa de E1 ou mesmo a uma placa analógica de telefonia.
Rota para celulares locais:
Rota para ligações fixas interurbanas:
Rota de ligações para celulares interurbanos:
Nunca podemos esquecer que, além de salvar as configurações, temos que aplicá-las, o que vai implicar em recarregar o serviço do Asterisk.
Hora de criar as contas SIP:
Vamos criar um usuário com o login 1980:
O campo 'secret' se refere à senha do usuário.
Outro detalhe é o campo 'context'. Ele diz exatamente para quais rotas o usuário pode ligar. Por hora, vamos utilizar o padrão do FreePBX, que é o 'from-internal', que permite o uso de qualquer rota.
É importante também ativar a tecnologia GSM e o codec G722:
Agora é só testar ligando de um aplicativo SIP, como o Ekiga Phone por exemplo. Para tal, a configuração no cliente deve ficar da seguinte forma:
Usuário: 1980
Servidor: <IP_do_servidor_FreePBX>
Domínio: <IP_do_servidor_FreePBX>
Antes de fazer a primeira chamada, faça login via ssh no servidor e acesse o console do Asterisk com o seguinte comando: 'asterisk -rvv', em seguida. faça alguma ligação e verá o 'verbose' da ligação, como no modelo abaixo:
Eu disquei do meu aplicativo SIP cliente o número 88249623 mas o Asterisk converteu para 02188249623, pois, segundo uma das regras de discagem do tronco VONO, toda vez que receber um número qualquer com 8 dígitos apenas, ele adiciona 021 a este.