Zeeshan Zakaria
2008-Sep-15 19:46 UTC
[asterisk-users] Need help with PHP script to authenticate user from database
Hi everyone, I am trying to write a basic AGI script in PHP to authenticate a user from database. So far I have no luck. Need help. Maybe somebody can share their code. Here is what I have: extension.conf --------------------- [database-lookup] exten => _.,1,Answer() exten => _.,n,AGI(lookup.agi) exten => _.,n,NoOp(${AUTH}) exten => _.,n,Hangup lookup.agi --------------- !/usr/bin/php -q <?php require '/var/lib/asterisk/agi-bin/phpagi.php'; $agi = new AGI(); $no=preg_replace("#[^0-9]#","",$agi->request[agi_callerid]); $db = 'db1'; $dbuser = 'user1'; $dbpass = 'password'; $dbhost = 'localhost'; mysql_connect($dbhost,$dbuser,$dbpass); mysql_select_db("$db"); $row=mysql_query("select cid from callcheap_users where cid = '$no'"); if (mysql_num_rows($row)==1) { $row=mysql_fetch_array($row); if ($row[cid1]) $auth = "YES"; } else $auth="NO"; $agi->set_variable("lookupcid", $auth); ?> As per my understanding, the variable 'lookupcid' should have the cid assigned from the database and show it in the NoOp command, but I get the following: -- Executing AGI("IAX2/4124874318-1", "lookup.agi") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/lookup.agi -- AGI Script lookup.agi completed, returning 0 -- Executing NoOp("IAX2/4124874318-1", "") in new stack -- Executing Hangup("IAX2/4124874318-1", "") in new stack Any help will be highly appreciated. Thanks Zeeshan -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20080915/5d597637/attachment.htm
Steve Edwards
2008-Sep-15 20:02 UTC
[asterisk-users] Need help with PHP script to authenticate user from database
On Mon, 15 Sep 2008, Zeeshan Zakaria wrote:> I am trying to write a basic AGI script in PHP to authenticate a user from > database. So far I have no luck. Need help. Maybe somebody can share their > code. Here is what I have: > > extension.conf > --------------------- > > [database-lookup] > exten => _.,1,Answer() > exten => _.,n,AGI(lookup.agi) > exten => _.,n,NoOp(${AUTH}) > exten => _.,n,Hangup > > > lookup.agi > --------------- > > !/usr/bin/php -q > <?php > require '/var/lib/asterisk/agi-bin/phpagi.php'; > $agi = new AGI(); > > $no=preg_replace("#[^0-9]#","",$agi->request[agi_callerid]); > > $db = 'db1'; > $dbuser = 'user1'; > $dbpass = 'password'; > $dbhost = 'localhost'; > > mysql_connect($dbhost,$dbuser,$dbpass); > mysql_select_db("$db"); > $row=mysql_query("select cid from callcheap_users where cid = '$no'"); > if (mysql_num_rows($row)==1) > { > $row=mysql_fetch_array($row); > if ($row[cid1]) $auth = "YES"; > } > else $auth="NO"; > $agi->set_variable("lookupcid", $auth); > ?> > > > As per my understanding, the variable 'lookupcid' should have the cid > assigned from the database and show it in the NoOp command, but I get the > following: > > -- Executing AGI("IAX2/4124874318-1", "lookup.agi") in new stack > -- Launched AGI Script /var/lib/asterisk/agi-bin/lookup.agi > -- AGI Script lookup.agi completed, returning 0 > -- Executing NoOp("IAX2/4124874318-1", "") in new stack > -- Executing Hangup("IAX2/4124874318-1", "") in new stackCasual inspection says you are setting a variable named "lookupcid" but you are "noop-ing" a variable named AUTH. When debugging AGIs, "agi debug" (1.2) is your friend. Thanks in advance, ------------------------------------------------------------------------ Steve Edwards sedwards at sedwards.com Voice: +1-760-468-3867 PST Newline Fax: +1-760-731-3000