Mostrar mensagens com a etiqueta fpbx. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta fpbx. Mostrar todas as mensagens

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