+ Responder ao Tópico



  1. #1

    Exclamation Dificuldade com INSERT INTO com MYSQL no plano de discagem

    Estou querendo gravar informações sobre as ligações efetuadas ou recebidas direto pelo plano de discagem. Já procurei na internet e testei várias maneiras de se fazer isso. Nenhuma dela me permitiu gravar no Banco MySql que criei. Este é o trecho do plano de discagem que estou utilizando:

    exten => s,1,DigitTimeout,5 ; Set Digit Timeout to 5 seconds
    exten => s,n,ResponseTimeout,5 ; Set Response Timeout to 10 seconds
    exten => s,n,Answer
    exten => s,n,MYSQL(Connect connid xxx.xxx.xxx.xxx xxxx xxxxxx acesso)
    exten => s,n,MYSQL(Query resultid ${connid} INSERT\ INTO\ tabligacoes\ set\ ligtelefone='12345678')
    exten => s,n,MYSQL(Clear ${resultid})
    exten => s,n,MYSQL(Disconnect ${connid})

    Faço a conexão direta no banco de dados através do MySql-Front com o login e senha que utilizo neste plano.
    Quando entro no asterisk -r para monitorar os passos da ligação, verifico que o processo passa pela conexão, roda a query..etc. A ligação é efetuada (eu mesmo atendo), quando olho no banco não há registro inserido.

    Tem algum trecho errado ou outra forma de se fazer ??
    Obrigado.

  2. #2

    Padrão

    Ainda não mechi com voip mas não precisa disso para ver que sua consulta esta errada, recomendo fortemente que estude sql, é simples e será muito útil, pois esse é um erro bem básico.

    A sintaxe do Insert é: INSERT INTO tabela(campo1,campo2) VALUES('valor1','valor2')

    A[]'s



  3. #3

    Thumbs down

    Desculpe amigo....mas se vc não entende de voip, procure se inteirar antes de se dar ao trabalho de responder.

    Seria um erro básico de iniciante, se eu fosse um iniciante. O que não é o caso. Conheço muito bem SQL, MySQL, Oracle, ADABAS, MDB...

    Vale lembrar que eu não estou no meu ambiente de programação ou utilizando algum framework, enterprise, front ou outra ferramenta quelauer de uso convencional para instaruções SQL ou MySQL.

    Se vc se der ao trabalho de cobservar o conteúdo dos links abaixo, verá que para o voip existem maneiras diversas de se utilizar INSERT INTO em um plano de discagem:

    http://www.voipinfo.org/wiki/view/Asterisk+cmd+MYSQL

    1. exten => 1,n,MYSQL(Query resultid ${connid} INSERT\ INTO\ callers\ SET\ uniqueid=${UNIQUEID}\, callback=1\, callbacknum=${CALLERID:-11:11})


    1. exten => 2,n,MYSQL(Query resultid ${connid} INSERT\ INTO\ callers\ SET\ uniqueid=${UNIQUEID})
    2. exten => 2,n,MYSQL(Query resultid ${connid} UPDATE\ callers\ SET\ callback=1\, callbacknum=${CALLERID:-11:11}\ WHERE\ uniqueid=${UNIQUEID})

    Linux: Interligando o Asterisk com o callcenter [Artigo]

    exten => s,1,System(mysql -u usuario -h localhost -e "INSERT INTO ligacoes(codigo\,data\,telefone\,ramal\,flag) VALUES(NULL\,\'${ARG2}\'\,\'${ARG1}\'\,\'${CHANNEL}\'\,\'0\')" --password=senhasecreta dbtest)

    ::BiPiN:: - MYSQL query in Dialplan
    exten => 555,1,Answer
    exten => 555,n,MYSQL(Connect connid localhost bipin bipin voice_alerts)
    exten => 555,n,NoOp(${cnum})
    exten => 555,n,NoOp(${jid})
    exten => 555,n,MYSQL(Query resultid ${connid} INSERT INTO `callerinfo` (`number`) VALUES ('${CALLERID(num)}'))
    exten => 555,n,MYSQL(Query resultid ${connid} UPDATE `callerinfo` SET `status` = \'ANSWERED\' WHERE `job`=${jid} AND `number`=${cnum})São pelo menos três maneiras diferentes de se utilizar INSERT INTO. Acho que está bom.

    A questão é pra quem entende de voip...ou pelo menos mais do que vc.

  4. #4

    Padrão

    Exatamento por isso eu devo desculpas, infelizmente não posso te ajudar, mas axo totalmente estranho eles fugirem do padrão ao invés de usar a própria sintaxe do sql como parametro.



  5. #5

    Padrão De qualuer forma obrigado.

    Ainda assim valeu. Obrigado.