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 

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