INTEGRAÇÃO VIVO VOZ NEGÓCIO (VVN) | ASTERISK/FREEPBX/ISSABEL


Aviso importante:

Este material foi elaborado exclusivamente para fins educacionais e acadêmicos, com o objetivo de compartilhar o conhecimento sobre a configuração do sistema de telefonia em ambientes controlados. Não incentivamos ou recomendamos o uso das informações aqui contidas em ambientes de produção ou comerciais sem autorização expressa das operadoras envolvidas, neste caso a Vivo e o produto Vivo Voz e Negócio (VVN).

A utilização indevida ou fora do escopo acadêmico descrito neste material, sem o consentimento da operadora, pode violar os termos de serviço da Vivo, além de outras regulamentações aplicáveis ao uso de tecnologias de telecomunicação. A responsabilidade pelo uso das informações é exclusivamente do usuário, não cabendo ao autor qualquer responsabilidade por eventuais danos, interrupções de serviço ou ações legais que possam surgir em decorrência de sua aplicação.


UPDATE 18/07/2024 - Ajuste no arquivo de hosts do seu servidor linux. Frequêntemente nos grupos do telegram, a comunidade tem reclamado que o trunk não registra e/ou status não estabiliza como "registered" etc, na maioria dos casos tenho observado que o servidor em questão não está resolvendo o host metapabx.vivo.net.br da vivo, por este motivo, estamos complementando com essa orientação, que não é mandatória.

UPDATE 25/04/2024 — Adicionado as configurações para PJSIP usando Asterisk Puro, material criado pelo Neimar Avila este que foi de base para produção deste conteúdo do site.

UPDATE 11/04/2024 — Ajustado a linha de REGISTER do tronco SIP para quem está fazendo uso do CHAN_SIP.

UPDATE 02/03/2024 — Adicionado os campos de configuração do VVN para quem utiliza Issabel fazendo uso do CHAN_SIP.

UPDATE 19/06/2023 — Alterando o USER_AGENT (SIP/PJSIP) estabelecer o REGISTER, troca de OPTIONS e conseguir utilizar. Este material foi baseado na contribuição do Neimar Avila que compartilhou no grupo do telegram as configurações para fazer o uso do Vivo Voz e Negócio no asterisk puro, e do Lucas Adriano que topou este desafio comigo, de dedicar o feriado a homologar em seu ambiente freepbx e gerar esta documentação para comunidade, agradeço o apoio.

Com a modernização da telefonia, as operadoras estão começando a disponibilizar PABX via Cloud, a Vivo fornece o Vivo Voz e Negócio, se trata de um plano de baixo custo, onde voce consegue configurar as linhas através de um login e senha utilizando o protocolo SIP no asterisk.

Laboratório:

  1. Vivo Voz e Negócio(VVN);
  2. FreePBX 15;
  3. Asterisk 18.

No site de gestão da vivo, em linhas, copie a senha do hardphone do número que deseja configurar no seu FreePBX.
Caso não tenha a senha do hardphone voce pode resetar a senha, esta que chegará em seu e-mail. Com isso, vamos no Freepbx para darmos os inícios nas configurações;

Antes de seguir com as configurações na web, faz necessário alterar o user_agent do seu FPBX.

#Arquivo PJSIP(chan_pjsip)
/etc/asterisk/pjsip_custom_post.conf

#Parametros
[global](+type=global)
user_agent=MicroSIP/3.19.22

#reload no asterisk
asterisk -rx "core reload"

#No CLI consultar o user_agent
asterisk -rx "pjsip show settings" | grep -i "user_agent"

Deve ser apresentado o user_agent definido, MicroSIP/3.19.22

#Se estiver utilizando SIP
#Arquivo SIP(chan_sip)
/etc/asterisk/sip_general_custom.conf

#Parametro
useragent=MicroSIP/3.19.22

#reload no asterisk
asterisk -rx "core reload"

#No CLI consultar o user_agent
asterisk -rx "sip show settings" | grep -i "user agent"



Na guia Connectivity e depois em Trunks, adicione um trunk do tipo PJSIP.

Na aba General, vamos adicionar somente o DDD+número, na plataforma da vivo encontra em "linha/ramal".
Na aba Dialed Number Manipulation Rules não faz necessário alterações, segue para aba pjsip Settings, nesta será feito as seguintes configurações;

General:

Abaixo os campos como devem estar definido:

Username = DDD + Número de Telefone
Auth username = DDD+Numero
Secret = Senha do Hardphone
Authentication = Outbound
Registration = Send
SIP Server = metapabx.vivo.net.br
SIP Server Port = 5060
Context = from-pstn
Transport = 0.0.0.0-udp

Na aba Advanced vamos checar e alimentar os seguintes parâmetros:

DTMF Mode = RFC 4733
Send Line in Registration = Yes
Send Connected Line = No
Permanent Auth Rejection = No
Forbidden Retry Interval = 30 Seconds
Fatal Retry Interval = 30 Seconds
General Retry Interval = 60 Seconds
Expiration = 3600 Seconds
Max Retries = 10000
Qualify Frequency = 30 Seconds
Outbound Proxy = sip:187.50.251.58
User Phone = No
Contact User = DDD+Número
From Domain = metapabx.vivo.net.br
From User = DDD+Número
Client URI = sip:DDD+Número@metapabx.vivo.net.br
Server URI = sip:metapabx.vivo.net.br
Media Address = Deixar em Branco
AOR = DDD+Número
AOR Contact = sip:DDD+Número@metapabx.vivo.net.br:5060
Match (Permit) = 187.50.251.58
Support Path = No
Support T.38 UDPTL = No
T.38 UDPTL Error Correction = None
T.38 UDPTL NAT = No
T.38 UDPTL MAXDATAGRAM = Deixar em Branco
Fax Detect = No
Trust RPID/PAI = No
Send RPID/PAI = No
Send Private CallerID Information = No
Match Inbound Authentication = Auth Username
Inband Progress = No
Direct Media = No
Rewrite Contact = No
RTP Symmetric = Yes
Media Encryption = None
Force rport = Yes
Message Context = Deixar em Branco

Em Codecs deixe somente ALAW

Feito isso, o seu tronco Vivo Voz Negocio está pronto. Importante lembrar que tem que liberar as portas do seu roteador ou firewall a UDP 5060 (SIP) e as portas 16384-65535(RTP) somente para o IP 187.50.251.58, que é o ip do proxy da Vivo.

Realizado um teste de ligação apos as configurações com sucesso, sem dificuldades!

[Issabel] - Configurações do SIP Trunk VVN

Trunk Name:vivo
Outbound CallerID:Login_VVN

Outgoing Settings  
Trunk Name:vivo

PEER Details:
username=Login_VVN
type=peer
secret=Senha_VVN
qualify=5000
port=5060
outboundproxy=187.50.251.58
nat=yes
insecure=port,invite
host=metapabx.vivo.net.br
dtmfmode=rfc2833
disallow=all
context=from-pstn
allow=alaw
fromdomain=metapabx.vivo.net.br

Incoming Settings  
USER Context:Login_VVN

USER Details:
secret=Senha_VVN
type=user
context=from-trunk

Register String:
Login_VVN@metapabx.vivo.net.br:Senha_VVN@187.50.251.58/Login_VVN


[Asterisk Puro] - Configurações do SIP Trunk VVN (PJSIP)

[global] type=global user_agent=MicroSIP [vivo] type=endpoint transport=transport-udp-nat context=from-vivo allow=!all,ulaw,alaw,g729 outbound_auth=vivo_auth outbound_proxy=sip:187.50.251.58\;lr from_domain=metapabx.vivo.net.br aors=vivo user_eq_phone=yes [vivo] type=aor contact=sip:Login_VVN@metapabx.vivo.net.br:5060 outbound_proxy=sip:187.50.251.58\;lr [vivo] type=identify match=187.50.251.58 endpoint=vivo [vivo] type=registration client_uri=sip:Login_VVN@metapabx.vivo.net.br server_uri=sip:metapabx.vivo.net.br outbound_auth=vivo_auth outbound_proxy=sip:187.50.251.58\;lr retry_interval=60 contact_user=Login_VVN [vivo_auth] type=auth auth_type=userpass username=Login_VVN password=Senha_VVN

Configuração do /etc/hosts

Conforme orientado pela LPI - Linux Professional Institute, o arquivo /etc/hosts é usado para resolver nomes para endereços IP e vice-versa. Tanto o IPv4 como o IPv6.
$ cat /etc/hosts
127.0.0.1       localhost issabel.local 
187.50.251.58 metapabx.vivo.net.br
$

"Começar é a parte mais importante de qualquer trabalho" - Platão

Link para acesso ao Telegram FreePBX Brasil

AlmaLinux vs Rocky Linux

Olá Pessoal, sejam muito bem vindos a mais um post no nosso site freepbx brasil, somente para efeito de informação, este é um site não oficial, é importante lembrar, para não ocorrer nenhum tipo desconforto com os canais oficiais, este é mantido pela comunidade open source que utiliza FreePBX, seja ele no formato ISO(suportado pela sangoma) ou no modelo custom que é realizada a instalação do OS e em seguida o FreePBX, porém não tem suporte a módulos comerciais junto a sangoma.


Agora vamos ao mais importante, o post, neste falaremos sobre duas distribuições baseadas no CentOS (Community Enterprise Operating System), almaLinux e o rocky linux, este informativo, será apenas para dar embasamento para os próximos posts que serão do FPBX rodando em ambas as distros mencionadas, espero que gostem, e qualquer dificuldade, fico a disposição para responde-los via telegram ou interação neste post.


O que aconteceu com o CentOS?


CentOS (Community Enterprise Operating System) se trata de uma distribuição Linux gratuita que é uma opção mais avançada do que sua versão anterior, Red Hat Enterprise Linux. Uma coisa que não muito bacana sobre o RHEL, são suas taxas de suporte, então os clientes ficaram felizes em ver o CentOS no mercado. No entanto, quando a Red Hat declarou que o CentOS seria retirado do mercado até o final de 2021 , todos entraram em pânico, como empresas de hospedagem e desenvolvedores. Afinal, eles estavam prestes a perder um dos principais softwares de nível empresarial que lhes fornecia um excelente suporte da comunidade.


O CentOS Linux viveria como CentOS Stream, o que não é tão ruim. No entanto, a parte complicada é que quem usa o CentOS Streams pode encontrar alguns bugs que não serão resolvidos até que os Red Hat Engineers lancem atualizações de segurança. Por causa desse problema, o fundador original do CentOS, Gregory Kurtzer, decidiu criar uma nova distribuição, Rocky Linux.


Antes de entrarmos em detalhes sobre AlmaLinux vs Rocky Linux, vamos voltar um pouco para ver como e quando Rocky Linux e AlmaLinux foram criados.

O AlmaLinux é outra reconstrução do Red Hat Enterprise Linux (RHEL) que foi lançada em 30 de março de 2020. Após o fim da era do CentOS, o debate AlmaLinux vs Rocky Linux foi o tópico movimentado entre os usuários de sistemas operacionais baseados em Linux.

O AlmaLinux é um sistema operacional de código aberto e pode ser a solução definitiva para o fim do CentOS. Primeiro veio o AlmaLinux 8.3, que reflete a versão do RHEL em que se baseia, RHEL 8.3. Todos os usuários do CentOS podem fazer a transição para o AlmaLinux sem nenhuma alteração de software.

Uma coisa importante que chama a atenção de todos os clientes que estão tentando obter uma resposta para a questão AlmaLinux vs Rocky Linux é o valor em que o AlmaLinux deve gastar em sua manutenção, US $1 milhão por ano. Isso significa que toda a equipe está determinada a garantir o lançamento de atualizações exaustivamente testadas e patchs de segurança regularmente para que os usuários possam ter a melhor experiência AlmaLinux.

AlmaLinux vs Rocky Linux; Prós e contras
Produtos VantagensDesvantagensCusto
AlmaLinux
  • Compatibilidade binária 1:1 RHEL
  • Atualizações regulares
  • Suporte ARM
  • Modo de segurança
  • Fácil de usar
  • Semelhante ao antigo CentOS
  • Facilidade de instalação
  • SO de servidor de nível empresarial e uma distribuição Linux estável
  • Suporte comercial é propriedade de uma organização sem fins lucrativos
  • Script de migração
  • Interface gráfica semelhante ao CloudLinux
  • Barreiras para novas versões de software (como CentOS)
  • Bastante novo em comparação com outras distribuições estáveis
  • Livre
    Rocky Linux
  • Compatibilidade binária 1:1 RHEL
  • Atualizações regulares
  • Suporte ARM
  • Modo de segurança
  • Distribuição comunitária
  • Novo em comparação com outras distribuições estáveis
  • Livre

    AlmaLinux vs Rocky Linux (Desktop)


    GNOME Desktop GUI é o ambiente de desktop padrão no AlmaLinux. Felizmente, os usuários podem instalar o KDE Plasma no AlmaLinux mesmo que já tenham instalado uma versão completa do GNOME para desktop. De fato, usuários de BSD, Solaris, Windows e Mac OS X também podem usar o KDE Plasma.

    GNOME é o ambiente de desktop padrão no Rocky Linux 8. Esta seção cobre informações básicas sobre outro ambiente de desktop compatível com Rocky Linux, que é o KDE Plasma. O Ambiente de Trabalho KDE (Kool Desktop Environment) é de código aberto e é bastante fácil de usar. Talvez seja por isso que muitos usuários o preferem a outros ambientes de desktop. A primeira versão do KDE foi lançada em 1998. Em 2009, o ambiente de desktop do KDE foi nomeado KDE Plasma.

    Se você é um novo usuário do Linux, o painel tradicional do KDE Plasma facilita a navegação na web, o gerenciamento de arquivos ou qualquer outra atividade específica. No entanto, chegar a uma decisão final sobre o ambiente de desktop Alma ou Rocky Linux depende de seus requisitos específicos. A verificação desses pontos pode ajudá-lo a descobrir qual ambiente de área de trabalho é mais adequado para você; KDE ou GNOME .

    Vantagens dos programas KDE:

  • Gratuito e fácil de usar;
  • Software livre;
  • Estão disponíveis em várias categorias, incluindo entretenimento, educação, gráficos e desenvolvimento de software;
  • Ele suporta mais de 60 idiomas;
  • Compatível com PCs desktop e dispositivos móveis.
  • Vantagens dos programas GNOME:

  • Amigo do usuário;
  • Modo de foco brlhante ;
  • Espaços de trabalho oranizados;
  • Painel oculto para os aplicatios favoritos do usuário;
  • Função de visão geral única
  • Barra de pesquisa no modo e visão geral;
  • Programa de captura de tela pré-carregao;
  • GNOME Pomodoro (temporizador de início/pusa);
  • Layout de configurações de dois painéis.
  • AlmaLinux vs Rocky Linux (Segurança)

    AlmaLinux OS vem com o CIS (Center for Internet Security) Benchmark. Com o CIS Benchmark, todos os usuários podem configurar seus sistemas com segurança. Existe até uma ferramenta chamada CIS-CAT que fornece um relatório completo sobre todos os possíveis problemas de segurança. CIS Benchmark está disponível para AlmaLinux 8.4 e 8.5 beta.

    Além disso, para quem gosta de extremo cuidado, a ferramenta OpenSCAP é um divisor de águas. Esta ferramenta verifica automaticamente a vulnerabilidade do seu sistema.

    O Rocky Linux 8.5 vem com o protocolo Network Time Security para uso com suporte a NTP e Secure Boot. Além das medidas de segurança, aqui estão alguns outros recursos brilhantes do Rocky Linux 8.5:

  • Plugin DNF FastestMirror;
  • Thunderbird com suporte a PGP;
  • Suporte para Raspberry Pi AArch64;
  • Console web do cockpit aprimorado;
  • Suporte ao OpenJDK 17.

  • A principio, é importante estudar as possibilidades de um plano B para sua plaforma de estudos e/ou trabalho, uma vez que a questão não é se irá ocorrer a mudança,até por que, ela vai acontecer! Estar preparado para novas possibilidades é importante, e isso vai lhe fazer um profissional diferenciado.

    Pessoal, por hoje é só, espero que este post possa auxiliá-los, peço-lhes a gentileza de qualquer dificuldade, correções e melhorias, me contacte.

    ✌😎🚀

         

    FreePBX 16 disponibilizado!

    O FreePBX 16 beta foi anunciado em junho e, desde então, foi observado pela equipe FreePBX, milhares de instalações desta versão. As equipes de engenharia e controle de qualidade concluíram seus testes, portanto, anunciaram no domingo(31/10) o FreePBX, que mudou de beta para GA (Público Geral).

  • Para relembrar, isso é o que o FreePBX 16 traz para o projeto:

      1. Suporte ao PHP 7.4
      2. Adições importantes ao módulo API com métodos GraphQL
      3. Padronizando o PJSIP como um único driver SIP. O Chan_SIP ainda é suportado, mas agora desabilitado por padrão durante a instalação;
      4. Modelos do painel de controle do usuário - os administradores agora podem personalizar a experiência do usuário do UCP antes que ele faça login no UCP pela primeira vez;
      5. Revisão do módulo do Firewall e integração dos recursos de detecção de intrusão com o Firewall;
      6. Limites ajustáveis ​​para firewall responsivo - para administradores que buscam controle preciso sobre como o firewall responsivo detecta e bloqueia o tráfego SIP de IPs de origem não reconhecidos;
      7. Redirecionamento HTTPS - os administradores podem configurar serviços http individuais para redirecionar para https;
      8. Configuração do protocolo SSL - protocolos SSL individuais para https agora são configuráveis ​​pelo administrador;
      9. AMI bindaddr - Uma nova instalação do FreePBX irá definir o AMI bind addr para localhost por padrão;
      10. Validação de senha UCP - O administrador pode habilitar e configurar várias regras de complexidade de senha para usuários que alteram senhas.
  • Bem como muitas melhorias e correções numerosas demais para serem mencionadas individualmente. A maioria dos novos recursos foram transferidos para o FreePBX 15 durante o período beta, portanto, os administradores e usuários do FreePBX podem já estar cientes e usar alguns desses recursos. O método preferido de migração de uma versão anterior para o FreePBX 16 é restaurar um backup para uma nova instalação do FreePBX Distro ISO. Tal como acontece com as principais atualizações anteriores, foi publicado um módulo de atualização de 15-> 16 versões que fará uma verificação do sistema e realizará a atualização.

    O FreePBX como sempre saindo na frente, este se não o melhor, é um dos melhores projetos opensource para criar seu PBX IP.

         

    FreePBX, Asterisk 16 e Interface RESTful do Asterisk (ARI)

    Sejam muito bem-vindos a mais uma postagem do site FreePBX Brasil, esta documentação vai lhe auxiliar a fazer as configurações para uso do ARI no FreePBX.

    O intuito deste é contribuir com a comunidade auxiliando para execução discagens via API, um caso comum é quem faz o uso de discadores, que normalmente usam os famosos “aquivo.call” e/ou AMI para efetuar as discagens, ambos funcionam muito bem, mas fazendo uso de RESTful você vai dar um upgrade na sua aplicação.

    A Interface RESTful do Asterisk (ARI) é uma API assíncrona que permite aos desenvolvedores construir aplicativos de comunicação no asterisk, fazendo uso de objetos por meio de eventos JSON e WebSocket, o ARI está no asterisk a partir da versão 12.

    Antes de seguir, vale ressaltar que se caso identificar algum problema ou erro neste post, não deixe de nos reportar, o feedback é de suma importância para dar ainda mais qualidade aos conteúdos do site.

    Laboratório:

    1. FreePBX 15;
    2. Asterisk 16;
    3. Insomnia - Versão free.

    Vamos iniciar as configurações no FreePBX, primeiro criar o usuário RESTful.

    A seguir será necessário ir nas configurações avançadas para habilitar o WebService do FreePBX para aceitar as requisições para o ARI.

    Acima apresenta as configurações avançadas do FreePBX, aonde será configurado habilitando o WebService para as requisições de interação com o nosso core de telefonia, lembrando que estas configurações feitas via GUI do FreePBX são somente para interações com o asterisk. Lembre-se, qualquer alteração via GUI do FreePBX faz necessário logo em seguida salvar e aplicar, usando o "Submit" e o "Apply"!

    Agora que já foi criado o usuario da API e habilitado o serviço de WebService, será necessário identificar se de fato temos o ARI ativo em nosso asterisk, vamos ao CLI.

    [root@freepbx15 ~]# rasterisk -vvvvvvvcgi
    Asterisk 16.4.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
    Created by Mark Spencer 
    Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
    This is free software, with components licensed under the GNU General Public
    License version 2 and other licenses; you are welcome to redistribute it under
    certain conditions. Type 'core show license' for details.
    =========================================================================
    Connected to Asterisk 16.4.1 currently running on freepbx15 (pid = 2212)
    freepbx15*CLI> ari show 
    app     apps    status  user    users   
    freepbx15*CLI>
    
    

    No CLI digitando ari show e pressionando a tecla TAB será apresentado algumas opções que estão disponiveis para consulta, a seguir consultaremos os usuarios ativos ARI, status do serviço e se o WebService está ativo.

    
    freepbx15*CLI> ari show users
    r/o?  Username
    ----  --------
    No    freepbxuser
    No    kowalski
    
    freepbx15*CLI>
    

    freepbx15*CLI> ari show status 
    ARI Status:
    Enabled: Yes
    Output format: compact
    Auth realm: Asterisk REST Interface
    Allowed Origins: *
    User count: 2
    
    freepbx15*CLI>
    

    freepbx15*CLI> http show status 
    HTTP Server Status:
    Prefix: 
    Server: Asterisk/16.4.1
    Server Enabled and Bound to 0.0.0.0:8088
    
    Enabled URI's:
    /httpstatus => Asterisk HTTP General Status
    /static/... => Asterisk HTTP Static Delivery
    /ari/... => Asterisk RESTful API
    /ws => Asterisk HTTP WebSocket
    
    Enabled Redirects:
      None.
    
    freepbx15*CLI>
    

    Aqui observamos que nos serviços WEB do asterisk temos o ARI ativo, a linha "/ari/... => Asterisk RESTful API" os demais podemos abordar em um outro post. Idetificado que as configurações estão corretas com o ARI, será necessário agora, no asterisk criar um contexto para os testes.

    vim /etc/asterisk/extensions_custom.conf
    [freepbxbrasil]
    
    exten => 1000,1,NoOp( ..:: ------------------------- )
     same =>      n,NoOp( ..:: Comunidade FreePBX Brasil )
     same =>      n,NoOp( ..:: Prof. Kowalski )
     same =>      n,NoOp( ..:: ------------------------- )
     same =>      n,Hangup()
    
    

    Em seguida saia do vim salvando, vou pode usar o ":wq" ou ":x" que acho mais prático, após contexto criado e salvo, será necessario recarrega-lo , por que até então o asterisk não reconhece o mesmo, no CLI digite dialplan reload, para ter certeza que o contexto existe, certique usando o comando abaixo.

    freepbx15*CLI> dialplan show freepbxbrasil 
    [ Context 'freepbxbrasil' created by 'pbx_config' ]
      '1000' =>         1. NoOp( ..:: ------------------------- )     [extensions_custom.conf:3]
                        2. NoOp( ..:: Comunidade FreePBX Brasil )     [extensions_custom.conf:4]
                        3. NoOp( ..:: Prof. Kowalski )                [extensions_custom.conf:5]
                        4. NoOp( ..:: ------------------------- )     [extensions_custom.conf:6]
                        5. Hangup()                                   [extensions_custom.conf:12]
    
    -= 1 extension (5 priorities) in 1 context. =-
    freepbx15*CLI> 
    
    

    Pronto, agora está certificado que o contexto existe, agora será feito uma requisição API que vamos executa-lo e apresentar essas mensagens no console, para isso vamos usar o Insomnia na versão free, este muito usado para testes de rotas de API, assim como POSTMAN e muitos outros.

    Este que será usado uma requisição POST, conforme orienta a documentação oficial do asterisk que ao término deste deixarei explicíto.

    Acima em ❶ temos criado a nossa requisição de API do tipo "POST", seguindo a documentação do ari no site oficial do asterisk, que ao final informo o link. Em ❷ a requisição da api com os devidos parâmetros este que detalho a seguir, em ❸ aonde ao clicar será enviado sua requisição, em ❹ é um dos pontos mais importante deste processo, o codigo de retorno HTML, neste caso está como "200 OK" ou seja nossa requisição foi executar e o retorno foi sucesso, se o retorno for direfente disso, valide na documentação da API que na maioria das vezes alguns códigos de retornos são mapeados e documentados para lhe auxiliar em problemas.

    Explicando item ❷ , para ficar de facíl entendimento, será colocado a url e vamos particiona-la para explicar cada parte da mesma.

    URL = http://kowalski:freepbxbrasil@192.168.200.24:8088/ari/channels?endpoint=Local/1000@freepbxbrasil&extension=1000&context=freepbxbrasil&priority=1&callerid=9000

    Dados de autentição da API:
    User ➜ kowalski
    Password ➜ freepbxbrasil
    IP do Server ➜ 192.168.200.24
    Porta do WebService ➜ 8088

    Dados do Asterisk baseado na documentação oficial:
    channels ➜ Rota da API ARI
    endpoint ➜ O canal usado para comunicação interna com o asterisk
    extension ➜ Extensão criada no nosso contexto
    freepbxbrasil ➜ Contexto criado para homologação conforme acima.
    priority ➜ a nivel de dialplan estamos iniciando nesta posição do contexto
    callerid ➜ o callerid que vamos utilizar para essa requisição

    Agora com as informações acima validada, já pode ser feita a requisição via insomnia e o retorno deve ser um "200 OK", acompanhe no seu asterisk via terminal (CLI), abaixo um exemplo de quando o asterisk recebe a requisição via ARI.

    Acima temos o retorno de quando a requisição foi executada com sucesso, assim como o contexto do asterisk como esperado.

    Pronto, agora que você aprendeu o básico de usabilidade do recurso ARI que tem disponível em seu asterisk, aproveite que este assim como muitos outros recursos no asterisk fazem o diferencial na solução de telefonia.

    A seguir vou documentar as referências utilizadas nesta documentação, obrigado e até a próxima.

    1- Asterisk REST Interface (ARI)
    2- Introduction to ARI and Channels
    3- Asterisk 16 Channels REST API
    4- Local Channel


    "Começar é a parte mais importante de qualquer trabalho" - Platão


         

    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!