Child pages
  • FREEPBX - Connector API Cloud Services

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

As APIs da Opens fornecem um conjunto de recursos que podem ser incrementados utilizando um módulo local que conecta seu PBX baseado em Asterisk (SNEP, FreePBX, Elastix e outros) com os serviços da Cloud Opens.

Cases

Com nossas APIs em seu Asterisk você pode fazer várias integrações:

 

Pre-requisitos

Para utilizar estes recursos locais você precisará ter acesso de root na máquina rodando seu Asterisk além de:

  • Linux com kernel 64bits versão 3.10+
  • Asterisk 12+ 
  • Token Opens Cloud (verifique no seu cadastro com a Opens para ter acesso à seu token)

Configurações em seu Asterisk - FREEPBX

Você precisa incluir a rede privada da Aplicação na configuração do usuário snep (usuário padrão da aplicação) ou outro que você esteja usando no Asterisk Manager Interface (AMI). Para isso altere seu arquivo /etc/asterisk/manager.conf na sessão do usuário utilizado incluindo:

Code Block
themeDJango
languagepy
[snep]
secret = sneppass
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
permit=172.17.0.0/255.255.0.0
read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
writetimeout = 5000

Dê um reload no módulo manager:

Code Block
themeDJango
languagebash
asterisk -rx "module reload manager"

 

Você também deve liberar acesso a Asterisk Rest Interface (ARI) do seu Asterisk. Basta editar dois arquivos (Manualmente ou pela interface do FreePBX).

O primeiro é o /etc/asterisk/ari_general_custom.conf

Code Block
themeDJango
languagebash
enabled=yes
pretty=no
websocket_write_timeout=100
allowed_origins=*


O segundo é /etc/asterisk/ari_additional_custom.conf e você deverá adicionar as linhas abaixo :

Code Block
themeDJango
languagebash
[snepari]
type = user        ; Specifies user configuration
read_only = no     ; When set to yes, user is only authorized for
;                   ; read-only requests.
;
password = sneppass        ; Crypted or plaintext password (see password_format).
;
; password_format may be set to plain (the default) or crypt. When set to crypt,
; crypt(3) is used to validate the password. A crypted password can be generated
; using mkpasswd -m sha-512.
;
; When set to plain, the password is in plaintext.
;
password_format = plain


Dê um reload no módulo res_ari.so:

Code Block
themeDJango
languagebash
asterisk -rx "module reload res_ari.so"


Desativando/Alterando portas de aplicações que causam conflitos com o Q-Manager

O FREEPBX possuí um serviço chamado "letschat" que roda na porta 5000, a mesma utilizada pelo Q-Manager.

Para que o Q-Manager possa ser executado, o serviço "letschat" deverá ser desativado ou sua porta de execução deve ser alterada.  

Para desativar o serviço, basta executar o comando abaixo:

Code Block
themeDJango
languagebash
fwconsole pm2 --delete=xmpp


 Para alterar sua porta de execução, basta alterar o parâmetro "port" dentro do arquivo /var/www/html/admin/modules/xmpp/node/node_modules/lets-chat/settings.yml :

Code Block
themeDJango
languagebash
#
# Let's Chat Settings
#
# See defaults.yml for all available options
#
env: development # development / production
http:
  enable: true
  host: 0.0.0.0
  port: 5010
https:
  enable: false
  port: 5011
  key: key.pem
  cert: certificate.pem

 


Aplique a configuração executando o comando abaixo:
 

 

Code Block
themeDJango
languagebash
fwconsole pm2 --restart=xmpp


Instalação

 

Agora, com o ambiente preparado, para instalar o módulo execute em seu terminal linux como usuário root: 

 

Code Block
themeDJango
languageapplescript
tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
gpgkey=https://yum.dockerproject.org/gpg
EOF

yum install -y docker-engine ; service docker start
Code Block
themeDJango
languageapplescript
wget -qO inst.sh http://ocl.opens.com.br/docker/install.sh && chmod +x inst.sh && ./inst.sh


Configurando seu TOKEN

Após a instalação e primeira coisa à fazer é inserir seu TOKEN para iniciar o usa da Aplicação.

Para isso basta acessar o IP de seu Asterisk via Browser na Porta 8080:

Code Block
themeDJango
languagexml
http://YOUR_IP:8080

Erros Comuns

  • Erro depois que a máquina foi reiniciada

É comum quando a maquina reiniciar os containers não subirem automaticamente, ocasionando falha nos serviços vinculados ao itc-conector. Recomendamos adicionar os containers na inicialização da máquina. 

Basta adicionar as linhas abaixo (na mesma ordem citada) dentro do arquivo /etc/rc.local : 

Code Block
themeDJango
languagebash
docker start mongo
docker start redis
docker start itc-conector
docker start q-manager
docker start watchtower

exit 0


Para subir os containers, você também pode executar essas linhas diretamente no shell da maquina.

As APIs da Opens fornecem um conjunto de recursos que podem ser incrementados utilizando um módulo local que conecta seu PBX baseado em Asterisk (SNEP, FreePBX, Elastix e outros) com os serviços da Cloud Opens.


Cases

Com nossas APIs em seu Asterisk você pode fazer várias integrações:

 

Pre-requisitos

Para utilizar estes recursos locais você precisará ter acesso de root na máquina rodando seu Asterisk além de:

  • Linux com kernel 64bits versão 3.10+
  • Asterisk 12+

     

  • Token Opens Cloud (verifique no seu cadastro com a Opens para ter acesso à seu token)
  • Configurações em seu Asterisk - FREEPBX

    Você precisa incluir a rede privada da Aplicação na configuração do usuário snep

     

    (usuário padrão da aplicação) ou outro que você esteja usando no Asterisk Manager Interface (AMI). Para isso altere seu arquivo /etc/asterisk/manager.conf na sessão do usuário utilizado incluindo:

    Code Block
    themeDJango
    languagepy
    [snep]
    secret = sneppass
    deny=0.0.0.0/0.0.0.0
    permit=127.0.0.1/255.255.255.0
    permit=172.17.0.0/255.255.0.0
    read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
    write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
    writetimeout = 5000

    Dê um reload no módulo manager:

    Code Block
    themeDJango
    languagebash
    asterisk -rx "module reload manager"

     

    Você também deve liberar acesso a Asterisk Rest Interface (ARI) do seu Asterisk. Basta editar dois arquivos. O primeiro é o /etc/asterisk/ari_general_additional.conf

    Code Block
    themeDJango
    languagebash
    ;--------------------------------------------------------------------------------;
    ;          Do NOT edit this file as it is auto-generated by FreePBX.             ;
    ;--------------------------------------------------------------------------------;
    ; For information on adding additional paramaters to this file, please visit the ;
    ; FreePBX.org wiki page, or ask on IRC. This file was created by the new FreePBX ;
    ; BMO - Big Module Object. Any similarity in naming with BMO from Adventure Time ;
    ; is totally deliberate.                                                         ;
    ;--------------------------------------------------------------------------------;
    enabled=yes
    pretty=no
    websocket_write_timeout=100
    allowed_origins=*
    O segundo é /etc/asterisk/ari_additional.conf e você deverá adicionar as linhas abaixo :
    Code Block
    themeDJango
    languagebash
    [snepari]
    type = user        ; Specifies user configuration
    read_only = no     ; When set to yes, user is only authorized for
    ;                   ; read-only requests.
    ;
    password = sneppass        ; Crypted or plaintext password (see password_format).
    ;
    ; password_format may be set to plain (the default) or crypt. When set to crypt,
    ; crypt(3) is used to validate the password. A crypted password can be generated
    ; using mkpasswd -m sha-512.
    ;
    ; When set to plain, the password is in plaintext.
    ;
    password_format = plain
    Dê um reload no módulo res_ari.so:
    Code Block
    themeDJango
    languagebash
    asterisk -rx "module reload res_ari.so"

    Desativando/Alterando portas de aplicações que causam conflitos com o Q-Manager

    O FREEPBX possuí um serviço chamado "letschat" que roda na porta 5000, a mesma utilizada pelo Q-Manager.
    Para que o Q-Manager possa ser executado, o serviço "letschat" deverá ser desativado ou sua porta de execução deve ser alterada.  
    Para desativar o serviço, basta executar o comando abaixo:
    Code Block
    themeDJango
    languagebash
    fwconsole pm2 --delete=xmpp

     Para alterar sua porta de execução, basta alterar o arquivo 

    # Let's Chat Settings
    #
    # See defaults.yml for all available options
    #
    env: development # development / production
    http:
    enable: true
    host: 0.0.0.0
    port: 5010
    https:
    enable: false
    port: 5011
    key: key.pem
    cert: certificate.pem
    files:
    enable: true
    provider: local
    local:
    dir: uploads
    xmpp:
    enable: true
    port: 5222
    domain: 0.0.0.0
    roomCreation: true
    debug:
    handled: true
    unhandled: true
    database:
    uri: mongodb://localhost/letschat
    secrets:
    cookie: secretsauce
    auth:
    providers: [freepbx-auth]
    # local:
    # enableRegistration: true
    private:
    enable: true
    roster: all # online / all
    expire: false # false or number of minutes

     

    Instalação

     

    Agora, com o ambiente preparado, para instalar o módulo execute em seu terminal linux como usuário root:

     

    Code Block
    themeDJango
    languageapplescript
    wget -qO inst.sh http://ocl.opens.com.br/docker/install.sh && chmod +x inst.sh && ./inst.sh

    Configurando seu TOKEN

    Após a instalação e primeira coisa à fazer é inserir seu TOKEN para iniciar o usa da Aplicação.

    Para isso basta acessar o IP de seu Asterisk via Browser na Porta 8080:

    Code Block
    themeDJango
    languagexml
    http://YOUR_IP:8080

    Image Removed

    Erros Comuns

    • Erro depois que a máquina foi reiniciada

    É comum quando a maquina reiniciar os containers não subirem automaticamente, ocasionando falha nos serviços vinculados ao itc-conector. Recomendamos adicionar os containers na inicialização da máquina. 

    Basta adicionar as linhas abaixo (na mesma ordem citada) dentro do arquivo /etc/rc.local : 
    Code Block
    themeDJango
    languagebash
    docker start mongo
    docker start redis
    docker start itc-conector
    docker start q-manager
    docker start watchtower
    
    exit 0
    Para subir os containers, você também pode executar essas linhas diretamente no shell da maquina.