Essa semana me deparei com um “problema”, que do meu ponto de vista é algo totalmente improdutivo (e, no mínimo, desnecessário).

Encontrei uma instalação do Asterisk que não gravava dados no campo uniqueid da tabela CDR do DB MySQL, e, resolver tal situação me tomou um tempo precioso.

Depois de muita pesquisa consegui encontrar a solução, que é bastante simples, mas que, do meu ponto vista, é injustificável.

Para quem não sabe, o suporte ao uso do CDR em um banco de dados MySQL é disponibilizado pelo pacote asterisk-addons. Não sei se por um erro, ou por uma decisão consciente dos desenvolvedores (que me parece ser uma das mais equivocadas que já vi), é preciso alterar o código fonte desse pacote para habilitar o suporte ao armazenamento do uniqueid na tabela.

Então, se você também está passando por situação semelhante, mãos à obra:

  • Vá no diretório dos fonte do asterisk-addons e edite o arquivo cdr_addon_mysql.c;
  • Adicione a linha #define MYSQL_LOGUNIQUEID no início do arquivo;
  • Compile o asterisk-addons e voilá;
Pesquisei nos fontes e percebi várias linhas se referindo a tal constante, mas a mesma não era declarada em lugar algum, o que fazia com que o suporte ao recurso não fosse habilitado.

Não achei uma explicação para tal comportamento, que, pelo que pude observar já existe há mais de 3 anos. Se alguém souber o motivo disso, por favor deixe seus comentários.

Asterisk 1.4 + MySQL – Como armazenar o uniqueid na tabela CDR
  • Bah tche!<br />Tava me quebrando pra descobrir qual era o problema. Não é que funcionou mesmo!? huehue<br /><br />Isso não tem explicação, só pode ser um erro de programação mesmo.<br /><br />Valeu pela dica!<br /><br />Att.<br />Ronaldo Sacco<br />contato@ronaldosacco.com.br

  • Blz tchê.<br /><br />Bom saber que ajudou.<br /><br />[]s

  • Caro Marcelo, esta instalação seria com a distro Meucci da Digivoice?<br /><br />Estou com o mesmo problema. Ainda não testei sua solução, vou fazer, mas queria perguntar outra coisa. <br /><br />Como eu poderia fazer para armazenar também no campo userfield o nome do arquivo de audio produzido pelo mixmonitor na gravação?

    • Não, era um Asterisk puro, mas pode ser que ocorra no Meucci se este utilizar o Asterisk versão 1.4.<br /><br />Com relação ao nome do arquivo, normalmente uso o uniqueid mais extensão, o que é bastante eficiente, pois este dado já é armazenado no DB.<br /><br />[]s<br /><br />

Social Network Widget by Acurax Small Business Website Designers
Optimization WordPress Plugins & Solutions by W3 EDGE
%d blogueiros gostam disto: