Instale o dongle no seu FreePBX 14 e Asterisk 13


Sejam muito bem-vindos a mais uma postagem do site freepbx brasil. Esta documentação vai lhe auxiliar a fazer a instalação do seu modem Dongle e utilizar para receber e efetuar ligações no freepbx. Antes de qualquer coisa não deixe de colaborar com conteúdos para alimentar essa base de conhecimentos. Vamos ao trabalho!

Laboratório:

  1. FreePBX 14;
  2. Asterisk 13;
  3. Dongle: Modelo E1553;
  4. Modulo Dongle: Huawei 3G Dongle Channel Driver, Version 1.1, Revision 43gh=47cg

[ Processo de Instalação ]

yum install asterisk13-devel automake git -y
git clone https://github.com/wdoekes/asterisk-chan-dongle.git
cd asterisk-chan-dongle
./bootstrap
./configure --with-astversion=13.32.0
Obs.: --with-astversion=13.32.0 onde "13.32.0" será a versão do seu asterisk
make
make install
fwconsole restart
chown asterisk:asterisk /etc/asterisk/dongle.conf
chmod 755 /etc/asterisk/dongle.conf
asterisk -rx "dongle show devices"
echo 'KERNEL=="ttyUSB*", MODE="0666", OWNER="asterisk", GROUP="dialout"'>/etc/udev/rules.d/92-dongle.rules
Obs.: A linha acima, fique atento que estamos exectando um echo no conteúdo para dentro do arquivo. Se dentro do diretório do seu asterisk (Caminho: /etc/asterisk/) não existir o arquivo "dongle.conf", faça o download aqui do arquivo pronto, só ajustar para o seu ambiente.

aviso Se no momento de rodar o "MAKE" se deparar com o erro:
smsdb.c:26:21: fatal error: sqlite3.h: No such file or directory #include

Rode o seguinte comando: yum install libsqlite3x-devel -y

Agora partindo do principio que o processo de instalação foi finalizado com sucesso, antes seguir para as configurações no painel do seu freepbx, vamos fazer alguns ajustes no arquivo de configuração o "dongle.conf" para que seu Laboratório funcione perfeitamente.

[root@freepbxbrasil ~]# vim /etc/asterisk/dongle.conf



[root@freepbxbrasil ~]# asterisk -rx "dongle show devices"

Obs.: O comando acima você identifica o status do seu dongle,com informações da operadora, IMEI do chip e numero, antes de seguir precisa ter certeza que está tudo correto com os passos anteriores.

Agora vamos as configurações no freepbx.

No caminho: Connectivity ➔ Trunks

Opção: + Add Custom Trunk

Na guia "General" defina apenas o nome do tronco como "Dongle0".

Ainda na mesma tela de configuração, vá até a guia "custom Settings", adicione a seguinte linha: "Dongle/dongle0/$OUTNUM$" em seguinda pressione o Submit (Salvar) e apply (Aplicar).

Agora que já criou o tronco de saida das suas chamadas, precisamos configurar duas coisas para que funcione de fato, sua rota de saida e entrada, para receber e efetuar ligações.

No caminho: Connectivity ➔ Outbound Routes

Será configurada a rota de saída.

Opção: + Add Outbound Route

Na guia "Route Settings" defina o nome da sua rota de saída neste laboratório será "Saida Dongle" na mesma tela, penultima opção é a "Trunk Sequence for Matched Routes" aqui você define por qual tronco, essa rota que está criando vai sair com chamadas, neste caso vamos definir o tronco que foi criado dongle0, na mesma tela mas na guia "Dial Patterns" deve ser configurado as suas regras de discagens, vou descreva-las e também deixa a imagem abaixo pra ficar facil o entendimento. Vamos definir uma regra apenas para chamadas locais e DDD para movel(Celular) que seria "9XXXXXXXX" observe que estamos tratando apenas ligações que comecem com "Nove" mais oito digitos que somando tormam "nove digitos" exatamente uma discagem para celular local e para DDD adicionamos mais dois digitos, que deve ficar assim, "ZZ9XXXXXXXX", vale lembra que no caso de chamadas longa distância nacional, é necessario adicionar o codigo da operadora, no meu caso estou usando um chip da operadora vivo, logo a discagem pra longa distancia deve ser "015 + DDD + NumeroDestino."


No caso estamos usando o "ZERO" para efetuar uma chamada, com as regras de dialplan acima podem ser feitas chamadas tanto local quanto DDD, ligações para outro estado o usuario local não precisa colocar o código da operadora somente "0 + DDD + NumeroDestino". Após definir essas configurações salve e aplique, assim você deve conseguir efetuar chamadas de saida pelo seu modem.

No caminho: Connectivity ➔ Inbound Routes
Será configurada a rota de entrada, que pode direcionar para uma URA, Fila etc.

Opção: + Add Inbound Route

No campo "Description" defina uma descrição para sua rota de entrada, no campo "DID Number" adicione o numero do chip adicionado ao dongle que foi definido no campo exten=5511988775544 dentro do arquivo dongle.conf, coloque somente o numero "5511988775544", na mesma tela a ultima opção "Set Destination" você vai definir o destino que vai receber a chamada quando a ligação externa chegar pelo seu chip/dongle, em seguida salve e aplique as configurações, agora se seguiu atentamente os passos anteriores, já deve conseguir, receber e efetuar ligações usando o seu dongle.

Qualquer dúvida sobre modelos de modens compatíveis veja o link sobre requisitos e limitações.

Espero que essa documentação tenha lhe auxiliado, não deixe de nos enviar o seu feedback, até a proxima!

     

FreePBX 15 crie seu phonebook para seus aparelhos IP

Olá sejam muito bem-vindos a nosso primeiro post de 2020, antes de qualquer coisa não deixe de contribuir, nos envie seus materiais, assim faremos deste site um grande repositório de informações sobre FreePBX e tecnologias associadas para todos.

Este material auxiliará na criação de um phonebook(Lista de contatos) no seu FreePBX 15, desta forma seus aparelhos ip conseguem provisionar uma lista de contatos. Vamos lá?!

Laboratório:

  • Linux CentOS 7;
  • FreePBX 15.0.16.20;
  • TFTP;
  • Aparelho IP Yealink T21P E2 - Firmware: 52.80.0.3

Antes de iniciarmos, vale informar que neste laboratório foi feito o start do provisionamento manual na parte aparelho, assim o mesmo busca no repositorio do servidor seu arquivo de phonebook, mas para funcionar de forma automática, existe a necessidade de configurar o recurso option66 no DHCP server, basicamente a função deste é fazer com que todo novo dispositivo que subir na rede ele vai até o seu TFTP checar se existe algum tipo de configuração para aquele modelo. Essas configurações não se limita apenas a aparelhos da linha yealink, qualquer aparelho que tenha suporte a provisionamento pode-se fazer o uso deste método.

Primeiramente vamos preparar o terreno no lado do FreePBX com nosso arquivo de contatos para provisionamento e o principal, o arquivo de provisionamento do aparelho, este é o master, nele você define tudo que vai ser configurado no aparelho, aqui nao vamos abordar ele a fundo, somente a linha de provisionamento dos contatos, mostro abaixo e o arquivo usado no laboratório está disponivel($exemplo_mac.cfg) ,observe que o arquivo é estruturado pelo endereço mac do aparelho "$mac.cfg".

 
    #to specify a XML phonebook for update
    #lan example for a right server_address:http://192.168.0.132:9/file_provision/contactData1.xml
    local_contact.data.url = tftp://192.168.1.88/phonebook/phonebook.xml

Abaixo o modelo de phonebook usando XML conforme o padrão aceito pelo aparelho.

   


        
        







Obs. Na dúvida defina as permissões no arquivo para usuario e grupo asterisk.

Agora nas configurações do yealink vamos setar o ip do servidor de TFTP.

Seguindo os passos da imagem acima, primeiro clique em "Settings > Auto Provision" no campo "Server URL" precisa adicionar o seu servidor que esta hospedado a sua lista de contatos, por fim clique em "Autoprovision Now", assim ele vai buscar de imediato no servidor o arquivo de provisionamento, faça isso.

Agora vamos conferir se a nossa lista de contatos foi provisionada, na imagem acima estamos checando pela GUI do aparelho, os contatos foram carregados com sucesso, agora quando algum ramal da sua lista ligar para o aparelho vai apresentar o nome do mesmo.

Espero que essa documentação possa lhe auxiliar, encerramos por aqui, até a proxima!

     

Aprenda a criar Backups no seu FreePBX

Olá sejam muito bem-vindos a mais uma documentação para ajudar a comunidade, antes de qualquer coisa não deixe de contribuir, nos acione e envie material para que possamos fazer deste site um grande repositório de informações para todos.

Este material te auxilia a fazer o passo a passo para criação do backup no seu FreePBX, vamos lá!

Faça o login na interface web do FreePBX visitando o endereço IP do seu PBX.

Navegue em Admin -> Backup e Restauração


Clique em Backups e depois em New Backup


Escolha um "nome" e uma "descrição" para o backup e insira um "endereço de e-mail" que será notificado quando o backup for executado. Para fazer backup de tudo em seu servidor, incluindo correios de voz, gravações, arquivos de configuração, etc., você deverá clicar e arrastar os seguintes Modelos para a seção Itens de backup:

  1. Backup Completo
  2. CDRs
  3. Sistema de áudio
  4. Correio de voz

Observe que isso NÃO incluirá gravações de chamadas, o que pode tornar seu backup muito grande. No entanto, se você precisar deles incluídos no seu backup, você pode clicar no "+" (mais) na parte inferior da lista "Itens" e adicionar um diretório com o caminho "__ASTSPOOLDIR __/monitor" (sem as aspas).

Em Storage Locations, arraste “Local Storage (local)” para a coluna Storage Servers (Opcional) Se você deseja executar o backup automaticamente em uma base regular, escolha a frequência que deseja que o servidor faça backup. Se você estiver configurando backups automáticos, é altamente recomendável definir um tempo ou quantidade "Excluir após", caso contrário, os backups antigos nunca serão removidos e você poderá ficar sem espaço em disco.


Acima em -Hooks são scripts que podem ser definidos para interagir antes e depois do backup.

Clique em Salvar.


Para executar o backup agora, vá até o fundo novamente e clique em "e executar"

Após isso você já pode contar com uma rotina de backup automatica, configurando da forma que melhor lhe atender! É possível conferir a listas de backups, os mesmos ficam salvos no caminho: /var/spool/asterisk/backup no linux.

Espero que essa documentação possa lhe auxiliar, encerramos por aqui, até a proxima!


     

Tronco entre duas Centrais (FreePBX 14 x Issabel)



Olá sejam muito bem-vindos a mais uma documentação para auxiliar a comunidade não só freepbx, mas também Issabel, este que usa o freepbx(2.11) não muda muita coisa, somente a interface web, mas o coração é do nosso guerreiro, bom vamos lá. Este trata a interligação de um Freepbx com um Issabel usando tronco IAX2, o mesmo server para uma comunicação entre sites, se necessário. Vamos por a mão na massa!

Antes de seguir não deixe de compartilhar os conteúdos do nosso site e contribuir com o mesmo, assim conseguimos ainda mais ajudar a comunidade.


Laboratório (Freepbx)

  • Virtualbox 6.0;
  • CentOS 7;
  • HD 10GB;
  • Memoria: 1024 MB;
  • Freepbx 14.

Laboratório (Issabel)

  • PROXMOX 5.3;
  • CentOS 7;
  • HD 40GB;
  • Memoria: 1024 MB;
  • Issabel.

Observações: O HD do Issabel está um pouco maior por ser um servidor de laboratorio que já existia, mas não se preocupe com esse detalhe, se for o caso pode criar ambos do mesmo tamanho.

Configurações [FreePBX]

Crie um tronco do tipo IAX2 com as seguintes informações:

Trunk Name: Issabel
Trunk Name (Outgoing): Issabel
PEER Details:
username=freepbx
type=friend
trunk=yes
transfer=no
secret=AsteriskHelp
qualify=yes
host=IP_DO_SERVIDOR_ISSABEL
disallow=all
context=from-internal
allow=ulaw&alaw&gsm

Se caso tiver alguma duvida, suas configurações devem estar como a imagem abaixo:



Uma parte do trabalho foi feita que é criar o tronco, agora precisamos adicionar uma rota de saida para conseguir ligar para outra ponta, Issabel!

Nas rotas de saída crie uma rota com as seguintes informações abaixo:



Acima em Route Name coloque o nome da rota de saida, esta foi definida como "dial-issabel", em Trunk Sequence for Matched Routes, este você deve atribuir o tronco que foi criado, neste caso issabel.



Agora na guia "Dial Patterns" adicione a regra de discagem para conseguir ligar nos ramais da central ISSABEL, este que estão na range 3000 ao 3999, sendo assim será usado a mascara 3XXX.

Configurações [Issabel]

Crie um tronco do tipo IAX2 com as seguintes informações:

Trunk Name: freepbx
Trunk Name: freepbx
PEER Details:
username=issabel
type=friend
trunk=yes
transfer=no
secret=AsteriskHelp
qualify=yes
host=IP_DO_SERVIDOR_FREEPBX
disallow=all
context=from-internal
allow=ulaw&alaw&gsm

Se caso tiver alguma duvida, suas configurações devem estar como a imagem abaixo:


Agora vamos configurar uma rota de saída para para que seu server Issabel possa discar para os ramais do servidor FreePBX.



Assim como no tronco anterior, este foi adicionado a regra de discagem para conseguir ligar nos ramais da central FreePBX, este que estão na range 1000 ao 1999, sendo assim será usado a mascara 1XXX.

Agora que os troncos e rotas foram criadas, vamos checar o status da interligação em ambos os lados.

[root@asteriskhelp ~]# asterisk -vvvvvvvvcgi
asteriskhelp*CLI> iax2 show peers
Name/Username    Host                    Mask                                      Port           Status      Description                     
issabel/freepbx  192.168.1.95       (S)  255.255.255.255                           4569  (T)      OK (1 ms)             


[root@issabel~]# asterisk -vvvvvvvvcgi
issabel*CLI> iax2 show peers
Name/Username    Host                    Mask                                      Port           Status      Description                     
freepbx/issabel  192.168.1.38       (S)  255.255.255.255  4569 (T)                                OK (1 ms)             

Testes de ligações

  -- Called IAX2/freepbx/1000
    -- Call accepted by 192.168.1.38 (format ulaw)
    -- Format for call is (ulaw)
    -- IAX2/freepbx-16860 is ringing
    -- IAX2/freepbx-16860 is ringing
issabel*CLI> 

Called IAX2/issabel/3000
    -- Call accepted by 192.168.1.95:4569 (format ulaw)
    -- Format for call is (ulaw)
    -- IAX2/issabel-18020 is ringing
    -- IAX2/issabel-18020 is ringing
asteriskhelp*CLI> 

Os testes foram efetuados com sucesso, desta forma a comunicação entre os servidores esta estabelecida e testada, espero que esta documentação possa lhe auxiliar, não deixe de comentar e contribuir com o site da comunidade.


     

FreePBX - Transferencia de ligação customizada


Olá , sejam bem-vindos a mais uma documentação voltada para o ambiente asterisk e FreePBX, esta trata a transferência cega (Blind transfer) ou seja, você transfere a chamada para o ramal destino sem saber se ele quer ou não atender, essa demanda especifica surgiu e achei interessante compartilhar com a comunidade. Este processo será necessário algumas customizações nos arquivos conf do asterisk, nada de outro mundo, fiquem tranquilos. A inicio será alterado o contexto padrão da variável “${TRANSFER_CONTEXT}” esta que é acionada todas vezes que é executado uma transferência e logo a seguir dentro do contexto customizado será tratado a variável de canal “${BLINDTRANSFER}” usada na transferência cega, desta forma quando transferir a chamada ele aguardará o time especificado e logo a seguir devolve a chamada para a extensão que originou a transferência.

No terminal do linux vamos as alterações nos arquivos do asterisk, sempre sugiro que faça esse processo no seu ambiente de testes para não ter problemas com o sistema em produção.

A descrição do laboratório são de dois ambientes que um usando Debian 8(Raspberry Pi) e o outro CentOS6.

Laboratório 01:

  • Raspberry Pi;
  • Asterisk 11.21;
  • Debian 8.

Laboratório 02:

  • Servidor IBM;
  • Asterisk 11.21;
  • CentOS 6.
[root@asteriskhelp ~]# vim /etc/asterisk/globals_custom.conf

TRANSFER_CONTEXT = custom-test_transfer

Logo em seguida pressione a tecla [ESC], depois ":x!" para sair do arquivo salvando as alterações.
Obs. Sem as ASPAS!

A seguir será adicionado o contexto que vai tratar a transferência e devolve-la para o ramal que originou.

[root@asteriskhelp ~]# vim /etc/asterisk/extensions_custom.conf

[custom-test_transfer]
exten => _X.,1,NoOp(Entering custom-test_transfer)
exten => _X.,n,Set(timeoutd=25) ; Aqui adicione o tempo que deseja como timeout
exten => _X.,n,Set(extLeng=${LEN(${EXTEN})})
exten => _X.,n,NoOp(The extenlength is ${extLeng})
exten => _X.,n,Dial(Local/${EXTEN}@from-internal,${timeoutd})
exten => _X.,n,Set(CALLERID(name)=RB:${CALLERID(name)})
exten => _X.,n,Dial(Local/${BLINDTRANSFER:4:${extLeng}}@from-internal)
exten => _X.,n,Hangup()

Logo em seguida pressione a tecla [ESC], depois ":x!" para sair do arquivo salvando as alterações.

Agora será necessário executar um reload no asterisk para que ele reconheça o novo contexto criado, observe a seguir que serão rodados três comando, um para entrar no console do asterisk, outro para dar o reload nos contextos o ultimo para checar se o já existe e foi reconhecido pelo asterisk.

[root@asteriskhelp ~]# rasterisk -vvvvvvvcgi

asteriskhelp*CLI> dialplan reload
asteriskhelp*CLI> dialplan show custom-test_transfer

[ Context 'custom-test_transfer' created by 'pbx_config' ]
  '_X.' =>          1. NoOp(Entering custom-test_transfer)        [pbx_config]
                    2. Set(timeoutd=25)                           [pbx_config]
                    3. Set(extLeng=${LEN(${EXTEN})})              [pbx_config]
                    4. NoOp(The extenlength is ${extLeng})        [pbx_config]
                    5. Dial(Local/${EXTEN}@from-internal,${timeoutd}) [pbx_config]
                    6. Set(CALLERID(name)=RB:${CALLERID(name)})   [pbx_config]
                    7. Dial(Local/${BLINDTRANSFER:4:${extLeng}}@from-internal) [pbx_config]
                    8. Hangup()                                   [pbx_config]

-= 1 extension (8 priorities) in 1 context. =-

Agora que já alimentou os arquivos e o asterisk reconheceu o contexto, como mostra o resultado acima, já pode iniciar os testes. Lembrando que essa documentação foi homologada em ramais SIP que utilizam o modulo "chan_sip".

Espero que tenha auxiliado e até a próxima, abraços.


     

FreePBX - Script de Instalação customizada



Olá sejam bem-vindos a mais uma documentação voltada para Freepbx, esta será curta e objetiva.

O nosso amigo e parceiro RAFAEL TAVARES da Ibinetwork desenvolveu um script de instalação customizada do freepbx 14 e asterisk 13 para Linux CentOS versão 7, este estamos trabalhando em melhorias juntamente com o apoio da comunidade no telegram [FreePBX Brasil Community] o mesmo faz a instalação dos módulos básicos para uso no dia-dia, regras sip para o firewalld, instalação dos áudios em português, codec g729 e tratamento de hangupcause, abaixo o link do script onde pode conferir mais detalhes, contamos com a sua ajuda para melhora-lo ainda mais.



     

FXO DINSTAR - DISCONNECT TONS CADÊNCIA - ASTERISK 11



O procedimento abaixo não será extenso como a maioria, apenas para documentar as configurações desconexão do equipamento DINSTAR(FXO), ao observar que existe uma certa carência deste tipo de documentação para tal modelo, este processo foi resolvido juntamente com o auxilio do Luciano Cavalcante amigo e parceiro da comunidade FreePBX Brasil Community.

Laboratório:

  • Asterisk 11;
  • DINSTAR – MODELO DAG1000-4O;
  • Linha Analógica da Operadora Oi.

Antes de mais nada se possível atualize seu equipamento, abaixo o link para acesso ao diretório compartilhado com as ultimas firmwares.


No equipamento no caminho:

Advanced » FXO Parameter

Segue a imagem abaixo:



Preencha com as seguintes informações de cadência: 250,230,250,230,250,230,330,230

Confira as demais informações acima e se caso tiver algo diferente no seu equipamento, ajuste.

Espero que esta documentação ajude e não deixe de compartilhar e contribuir com a comunidade, se caso você tiver alguma documentação relevante que queira compartilhar aqui, nos contate que será um prazer criarmos um post com novos conhecimentos.