[asterisk-users] Get dialed numbers in AGI

Ralph Liebessohn ralphliebessohn at gmail.com
Wed Jan 10 12:42:47 MST 2007


On 1/10/07, Lee Jenkins <lee at datatrakpos.com> wrote:
>
> Ralph Liebessohn wrote:
> > Hi,
> >
> > I'm trying to write a AGI in PHP to get the numbers dialed (with
> > read()), save it into a variable to insert it into a SQL server
> > database. But I cannot see results into the variable, it always return
> > NULL.
> > Here is a piece of the AGI.
> >
> > fwrite(STDOUT,"exec Read my_var|/sound_to_play|5|||15 \n");
> > fflush(STDOUT);
> > $conn=odbc_connect('MSSQL', 'USER', 'PASS');
> > $query = odbc_exec($conn, "INSERT INTO dialed(number)
> VALUES('$my_var')");
> >
> > Even if I only show my_var value or try to use it inside asterisk, the
> > value is NULL.
> > There is another way to do it? Am I doing a mistake here?
> > I'm using Asterisk 1.2.13.
> >
>
> I'm not a php guy, but aren't we missing the part that retrieves the
> value saved into my_var from the call to READ?
>
> // In this part you run the read command and asterisk
> // stores the value into the channel variable "my_var"
>
> fwrite(STDOUT,"exec Read my_var|/sound_to_play|5|||15 \n");
>
> // In this part you are constructing your sql statement
> // with a null value cause you didn't make a call to
> // GET VARIABLE before constructing your sql.
>
> $query = odbc_exec($conn, "INSERT INTO dialed(number) VALUES('$my_var')");
>
> --
>
> Warm Regards,
>
> Lee



Hi Lee,

thanks for the tip. I tried other methods trying to get the variable value,
but no success.
Doing a GET VARIABLE my_var after READ the "get variable" returns the value
I dialed, but doesn't give the exact value to it. I got Resource ID #1
instead.
Using:
fwrite(STDOUT,"exec read
my_var|//usr/share/asterisk/sounds/please-wait-connect-oncall-eng|5|||15
\n");
fwrite(STDOUT,"get variable my_var \n");
fflush(STDOUT);
$my_var=STDIN;
fwrite(STDOUT,"exec saydigits $my_var \n");

I got it:

AGI Rx << exec read
my_var|//usr/share/asterisk/sounds/please-wait-connect-oncall-eng|5|||15
    -- AGI Script Executing Application: (read) Options:
(my_var|//usr/share/asterisk/sounds/please-wait-connect-oncall-eng|5|||15)
    -- Accepting a maximum of 5 digits.
    -- Playing '//usr/share/asterisk/sounds/please-wait-connect-oncall-eng'
(language 'en')
    -- User entered '85214'
AGI Tx >> 200 result=0
AGI Rx << get variable my_var
AGI Tx >> 200 result=1 (85214)
AGI Rx << exec saydigits Resource id #1
    -- AGI Script Executing Application: (saydigits) Options: (Resource)
AGI Tx >> 200 result=0
AGI Rx << exec Resource id #1
    -- AGI Script Executing Application: (Resource) Options: (id)
Jan 10 17:31:33 WARNING[4867]: res_agi.c:1147 handle_exec: Could not find
application (Resource)
AGI Tx >> 200 result=-2


I also tried:
$my_var=fwrite(STDOUT,"get variable my_var \n");

But always I get 21 as value.
More tries?

-- 
Ralph Liebessohn
ICQ: 74835911
Skype: liebessohn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20070110/50f6d66f/attachment.htm


More information about the asterisk-users mailing list