Discador para Asterisk - Integrado com banco de dados

Umas das funções mais interessantes do Asterisk é a de discador automático. Através dos arquivos *.call colocados no diretório /var/spool/asterisk/outgoing, sempre que é criado/colocado um arquivo com esta extensão(.call) neste diretório (logicamente, dentro dos padrões exigidos), o Asterisk gera uma chamada através do canal especificado lá dentro.

Maiores detalhes sobre o padrão dos ditos arquivos podem ser encontrados no Voip-Info.org, detalhadamente e com vários exemplos.

Quanto à utilidade, aí vai da necessidade de cada um, pode ser desde apenas rodar uma mensagem para quem atendeu, realizar uma pesquisa, encaminhar para uma fila de atendimento...

A proposta do script que vou apresentar é fazer a função de um discador, que trabalha full-time buscando registros de uma tabela e realizando chamadas para aqueles números que ainda não foram discados, ou seja, sempre que um número for adicionado à tabela e o Asterisk não estiver com o limite de canais ocupados que definimos na variável CHANNLIMIT, vai ser gerada a chamada para ele:



Fique a vontade para alterar conforme a sua necessidade, há muito pra ser melhorado ainda. Se encontrar algum erro, por favor, reporte nos comentários.

Foi testado no CentOS 6.5 com Asterisk 11.

Comentários

Contato Site disse…
Rafael, parabéns pela dedicação e por compartilhar o conhecimento.
Unknown disse…
Rafael, parabéns pelo código e principalmente por compartilhar o mesmo. Se não for pedir demais teria como mandar o conteúdo da tabela ?
Rafael Saraiva disse…
A ideia na realidade, é utilizar alguma tabela já existente de algum CRM ou um gerenciador de contatos.
Você só precisa de uma tabela com as colunas number e used. Segue um exemplo:
CREATE TABLE contatos(
id int auto_increment,
number varchar(50) not null,
used enum('0','1') not null) engine=innodb;

Abraços.
Unknown disse…
Muito bom o código. Parabéns. ajudou bastante aqui. :)
Leandro Silva disse…
Olá, excelente script e obrigado por compartilhar, sou novo na área, poderia me ajudar, aonde e/ou como devo configurar meu asterisk para que funcione corretamente?

Postagens mais visitadas deste blog

Importação do arquivo CNL Anatel para banco de dados

Monitorar um único ramal no Asterisk.