quinta-feira, 26 de abril de 2018

Tagged Under:

FreePBX inicializando no boot do CentOS 7

By: Janduy Euclides On: abril 26, 2018
  • Share The Gag


  • Neste laboratório usa-se um server com as seguintes configurações:

    • CentOS 7.4
    • Asterisk 13
    • FreePBX 14
    O procedimento a seguir irá auxiliar em um problema comum na instalação não só do asterisk puro, mas também do freepbx com o mesmo.

    Ao tentar acessar o CLI do asterisk, nos deparamos com a seguinte mensagem abaixo:

    Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?

    No português: Não é possível conectar-se ao asterisk remoto (o /var/run/asterisk/asterisk.ctl existe?)


    Isso ocorre por vários motivos, o usuário não tem permissão de gravação para este arquivo, o arquivo asterisk.ctl não existe porque o asterisk não está em execução, entre outras.

    Na documentação do Asterisk já existe algumas instruções sobre o assunto, porém no nosso caso, nao resolveu, mas vale apenas conferir!

    Na comunidade FreePBX o caminho é o mesmo, permissões nada muito diferente das pesquisa feitas com asterisk, no nosso caso, além deste problema, temos um segundo, o freepbx não sobe no boot, em paralelo afeta diretamente o acesso ao CLI do asterisk, podem observar que não temos aqui um problema de permissão.

    Vamos checar se o serviço do FreePBX está habilitado no systemd do sistema, usando o systemctl que gerencia o mesmo.
    [root@freepbx]#  systemctl status -l freepbx.service
    freepbx.service - IPBX
    Loaded: loaded (/usr/lib/systemd/system/freepbx.service; static; vendor preset: disabled)
    Active: active (exited) since Tue 2018-04-24 16:28:28 -03; 17h ago
    Process: 1342 ExecStart=/usr/sbin/fwconsole start (code=exited, status=0/SUCCESS)
    Main PID: 1342 (code=exited, status=0/SUCCESS)
    CGroup: /system.slice/freepbx.service
          ├─1521 /bin/sh /usr/sbin/safe_asterisk -U asterisk -G asterisk
          ├─1525 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
          ├─1604 PM2 v2.10.1: God Daemon (/home/asterisk/.pm2)
          └─3099 node /var/www/html/admin/modules/ucp/node/index.js
    
    freepbx runuser[1662]: pam_unix(runuser:session): session closed for user asterisk
    freepbx runuser[1681]: pam_unix(runuser:session): session opened for user asterisk by (uid=0)
    freepbx fwconsole[1342]: [>---------------------------] < 1 sec
    freepbx runuser[1691]: pam_unix(runuser:session): session opened for user asterisk by (uid=0)
    freepbx runuser[1701]: pam_unix(runuser:session): session opened for user asterisk by (uid=0)
    freepbx runuser[1701]: pam_unix(runuser:session): session closed for user asterisk
    freepbx fwconsole[1342]: Started UCP Node Server. PID is 1654
    freepbx fwconsole[1342]: Running Asterisk post from Xmpp module
    freepbx fwconsole[1342]: MongoDB is not running. Please start it before starting XMPP
    freepbx systemd[1]: Started IPBX.
    
    
    
    Observe acima que na linha: Loaded: loaded (/usr/lib/systemd/system/freepbx.service; static; vendor preset: disabled)

    Em destaque o STATIC, informa que o serviço não está no boot do sistema.

    Entre no diretorio que está o seu script freepbx.service no meu caso está no caminho abaixo.
    [root@freepbx]#  cd /etc/systemd/system/
    

    Vamos mover o arquivo para o caminho correto do boot no CentOS7
    [root@freepbx]# mv freepbx.service  /usr/lib/systemd/system/
    
    Agora vamos dar um reload no systemctl para que ele recarregue já reconhecendo o novo arquivo que inserimos.
    [root@freepbx]# systemctl daemon-reload
    
    Vamos rodar o comando abaixo para que ele crie o link simbólico e fique ativo no boot.
    [root@freepbx]# systemctl enable —now freepbx.service
    
    Vamos parar o serviço e dar um start no mesmo.
    [root@freepbx]# systemctl stop freepbx.service
    [root@freepbx]# systemctl start freepbx.service
    
    Rode novamente o comando para checar o status do serviço.
    [root@freepbx]# systemctl status -l freepbx.service
    freepbx.service - IPBX
    Loaded: loaded (/usr/lib/systemd/system/freepbx.service; enabled; vendor preset: disabled)
    Active: active (exited) since Tue 2018-04-24 16:28:28 -03; 17h ago
    Process: 1342 ExecStart=/usr/sbin/fwconsole start (code=exited, status=0/SUCCESS)
    Main PID: 1342 (code=exited, status=0/SUCCESS)
    CGroup: /system.slice/freepbx.service
          ├─1521 /bin/sh /usr/sbin/safe_asterisk -U asterisk -G asterisk
          ├─1525 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
          ├─1604 PM2 v2.10.1: God Daemon (/home/asterisk/.pm2)
          └─3099 node /var/www/html/admin/modules/ucp/node/index.js
    
    freepbx runuser[1662]: pam_unix(runuser:session): session closed for user asterisk
    freepbx runuser[1681]: pam_unix(runuser:session): session opened for user asterisk by (uid=0)
    freepbx fwconsole[1342]: [>---------------------------] < 1 sec
    freepbx runuser[1691]: pam_unix(runuser:session): session opened for user asterisk by (uid=0)
    freepbx runuser[1701]: pam_unix(runuser:session): session opened for user asterisk by (uid=0)
    freepbx runuser[1701]: pam_unix(runuser:session): session closed for user asterisk
    freepbx fwconsole[1342]: Started UCP Node Server. PID is 1654
    freepbx fwconsole[1342]: Running Asterisk post from Xmpp module
    freepbx fwconsole[1342]: MongoDB is not running. Please start it before starting XMPP
    freepbx systemd[1]: Started IPBX.
    
    Agora na linha: Loaded: loaded (/usr/lib/systemd/system/freepbx.service; enabled; vendor preset: disabled)

    Em destaque o Enabled, agora sim o serviço está ativo no boot do sistema.

    Nota: No normal não tem a necessidade de um reboot, mas se for o caso execute-o, se mesmo assim não funcionar verifique se o seu script freepbx.service está correto, pode validar executando o comando abaixo.
    [root@freepbx]# journalctl -u freepbx.service
    
    Não deve apresentar erros, se apresentar.
    Desta forma o freePBX já está no boot do sistema e consegue acessar o CLI do asterisk normalmente.

    Refêrencias:

    Participe das nossas comunidades no telegram:
    Todos de forma direta ou indireta estão sempre contribuindo no desenvolvimento de conteúdos como esse, com foco de ajudar a comunidade.

    0 comentários:

    Enviar um comentário