[asterisk-users] MYSQL INSERT QUESTION IN DIALPLAN

Steve Edwards asterisk.org at sedwards.com
Mon Apr 9 20:42:52 CDT 2012


On Mon, 9 Apr 2012, lists65 at gmail.com wrote:

> I am getting the caller ID and caller name from my local POTS line and I 
> want to add it into a sql table.  I am trying with the following code 
> but the data never gets put into the table.
>
> Can anyone correct my syntax and tell me what I am doing wrong?
>
> [callerinfo]
> exten => s,1,MYSQL(Connect connid localhost myuser mypassword cnam)
> exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO `calleridcapture`
> (`number`,`name`) VALUES (${CALLERID(num)},${CALLERID(name)})
> exten => s,n,MYSQL(Clear ${resultid})
> exten => s,n,MYSQL(Disconnect ${connid})
> exten => s,n,NoOp(Callerid Name  ${CALLERID(name)})
> exten => s,n,NoOp(Callerid Number  ${CALLERID(num)})
>
> The NoOP does show the correct CALLERID name & number when I test it. 
> The information just doesn't go into my calleridcapture table in the 
> cnam database.

I'm just a 1.2 Luddite, but I am a reasonably skilled c programmer. I've 
never used the mysql() application because it seems ugly, limited and 
'hackish' to me.

If it were me, I'd code it up as an AGI in a 'real' language where you 
have access to 'real' error codes and messages and you don't need a bunch 
of quoting hocus-pocus. (Supposedly, the quoting nonsense has gotten 
better since 1.2.)

You say you're not a programmer so that may not be an option for you -- 
but you got this far :)

The first thing I'd do (aside from using verbose() instead of noop()) 
would be to display the result from each step. If the connection is 
failing, looking farther is pointless.

Don't you need to put single or double quotes around your individual 
values? Change 'mysql' to 'echo' on your 'select' line and see if the 
statement is valid at the MySQL command line.

Then, I'd drop the backticks in the 'hail-mary' hope that they are 
confusing mysql() somehow.

Then, I'd crack open another beer and reach for a book on c or PHP or 
Perl.

-- 
Thanks in advance,
-------------------------------------------------------------------------
Steve Edwards       sedwards at sedwards.com      Voice: +1-760-468-3867 PST
Newline                                              Fax: +1-760-731-3000



More information about the asterisk-users mailing list