Asterisk Module and Build Option Selection - XXX cel_pgsql

                     Olá a todos, depois de muito tempo, venho trazer uma treta bacana que peguei no Asterisk® SCF™, por algum motivo no método normal de instalação das dependências do Asterisk® SCF™ não ocorreu o atendimento da dependência para que o Asterisk Module and Build Option Selection identifica-se o PGSQL(E) para o modulo cdr_pgsql e cel_pgsql. Observe a imagem a seguir:


Para entender o que está ocorrendo, entre no fonte do Asterisk® SCF™ e execute o teste pelo script install_prereq:

# cd /usr/local/src/asterisk-13.35.0/

# contrib/scripts/install_prereq test

Neste caso, que estamos expondo, a resposta foi essa:

yum install --skip-broken --assumeyes speexdsp-devel postgresql-devel mysql-devel iksemel-devel hoard gmime.x86_64 gmime-devel.x86_64 

Observe que entre a resposta do teste, esta sendo informado que postgresql-devel não foi encontrado para atender os módulos do Asterisk® SCF™. 

Executando o comando do RPM para validar os pacotes instalados obtemos a seguinte resposta:

# rpm -qa | grep postgres

postgresql11-libs-11.13-1PGDG.rhel7.x86_64
postgresql11-server-11.13-1PGDG.rhel7.x86_64
postgresql11-devel-11.13-1PGDG.rhel7.x86_64
postgresql11-11.13-1PGDG.rhel7.x86_64
postgresql11-contrib-11.13-1PGDG.rhel7.x86_64

Ou seja, temos o PostgreSQL 11 instalado, e logo sabemos que o PostgreSQL11-Devel se encontra instalado, mas o  Asterisk® SCF™ não sabe. Então para ter certeza que ter certeza de qual versão se encontra ativo e funcional no Sistema Operacional use esse comando:

# psql --version | awk '{print $3}' | awk -F '.' '{print $1}'
11

Obtivemos o resultado sendo 11, então execute o configure para essa versão do postgresql-devel, deste modo:

# ./configure --prefix=/usr --with-postgres=/usr/pgsql-11/.

Entre novamente no Menu Select do Asterisk Module and Build Option Selection:

# make menuselect

E observe que agora temos os modulos ativos para serem copilados, veja as figuras a seguir:

 

Agora para compilar este Build com segurança, devemos parar o Asterisk® SCF™, para isso execute os próximos passos:
 
# systemctl stop asterisk.service
 
# make -j4
 
# make install 

# ldconfig

# systemctl start asterisk.service
 
# rasterisk -vvvvgci
 
Na console do  Asterisk® SCF™ valide se os módulos já estão ativos, caso não estejam suba eles. Lembrando que para que os módulos sejam carregados automaticamente é necessário em modulos.conf a opção autoload do modules estar ativa para yes:

[modules]
autoload=yes

*CLI> module show like cel_pgsql.so
Module          Description                              Use Count  Status       Support Level
cel_pgsql.so   PostgreSQL CEL Backend             0          Running    extended
1 modules loaded

*CLI> module show like cdr_pgsql.so
Module          Description                              Use Count  Status       Support Level
cdr_pgsql.so   PostgreSQL CDR Backend             0          Running   extended
1 modules loaded

Pronto, a partir deste ponto, a sua comunicação com o banco de dados PostgreSQL via conector nativo do  Asterisk® SCF™ funcionando.Tire a prova de conexão com o CORE/PBX:

*CLI> cel show status
CEL Logging: Enabled
CEL Tracking Event: HANGUP
CEL Tracking Event: ANSWER
CEL Tracking Event: BRIDGE_ENTER
CEL Tracking Event: ATTENDEDTRANSFER
CEL Tracking Event: USER_DEFINED
CEL Tracking Event: LINKEDID_END
CEL Event Subscriber: CEL Custom CSV Logging
CEL Event Subscriber: ODBC CEL backend
CEL Event Subscriber: CEL PGSQL backend

Se executar o comando cdr show status, vais ver que também está tudo funcional entre o modulo e CORE/PBX.

Lembrando que não é mais recomendado usar o modulo nativo para MySQL e PostgreSQL. É altamente recomendado usar a conexão com Banco de Dados via UnixODBC.

Thats All FOLKS! (Isso é tudo, pessoal!)


Nenhum comentário

Toda vez que um homem supera os reveses, torna-se mentalmente e espiritualmente mais forte!

Tecnologia do Blogger.