[asterisk-users] Help getting info from caller

Landy Landy landysaccount at yahoo.com
Sat Jan 2 22:21:46 CST 2010


I was able to test the script, here is what I have:

[CODE]
#!/usr/bin/php -q
<?php

//ini_set("include_path", ".:../:./includes:../include:/var/lib/asterisk/agi-bin/includes");

//include( "./includes/optimum_config.php" );
$CONF['host']               = 'server';
$CONF['user']               = '';
$CONF['password']           = ''; 
$CONF['database']           = 'testasterisk';


//include( "./includes/constants.php" );
//  Defining constants variables for mysql connect database:
define( "HOST", $CONF['host'] );
define( "USER", $CONF['user'] );
define( "PASSWORD", $CONF['password'] );
define( "DATABASE", $CONF['database'] );

//include( "./includes/functions.php" );
function dba_connect( $query, $connect = 1 ){
      if($connect)
        $link = mysql_connect( HOST, USER, PASSWORD );
        //echo "link: " . $link . " query: " . $query;
        mysql_select_db( DATABASE ) or
          die("Cannot select a Database from the server.");

      if( $result = mysql_query( $query ))
          return $result;
      else
          return 0;
}




// don't let this script run for more than 60 seconds
set_time_limit(60);

// turn off output buffering
ob_implicit_flush(false);

/* turn off error reporting, as it will most likely interfere with
 the AGI interface
*/
error_reporting(0);

// create file handles if needed
if (!defined('STDIN'))
{
define('STDIN', fopen('php://stdin', 'r'));
}
if (!defined('STDOUT'))
{
define('STDOUT', fopen('php://stdout', 'w'));
}
if (!defined('STDERR'))
{
define('STDERR', fopen('php://stderr', 'w'));
}


$query = "select * from balance where bal_cust_id = " . $argv[1];
$result = dba_connect( $query, 1 ) or
              die( "Query: '$query', failed with error message: -- " . mysql_error() . " --" );

$record = mysql_fetch_array( $result );
$bal = $record['bal_amount'];

echo "SET VARIABLE BALANCE $bal #\n";

echo "exec BackGround 'tt-monkeys' #\n";

fclose( STDIN );
fclose( STDOUT );
fclose( STDERR );

exit(0);

?>

[/CODE]

extensions.conf:

[test-agi]
exten => 33,1,Answer()
exten => 33,n,Wait(0.5)
exten => 33,n,BackGround(please-enter)
exten => 33,n,BackGround(customer-accounts)
exten => 33,n,Read(ACCOUNT,,4)
;exten => 33,n,BackGround(enter-password)
;exten => 33,n,Read(PASSWORD,,4)
exten => 33,n,AGI(testphp.agi,${ACCOUNT},${PASSWORD})
;exten => 33,n,BackGround(your)
exten => 33,n,BackGround(account-balance-is)
exten => 33,n,SayNumber(${BALANCE})
exten => 33,n,BackGround(dollars)
exten => 33,n,Verbose(".... This is agi status ...${AGISTATUS}...")
exten => 33,n,hangup()

I was able to get the balance from the db table and have asterisk tell the caller.

I tried to include some files in agi but kept getting an error that the file didn't exist.

I would like to thank you for helping me out with this. Is a good starting point.

Now, I have another thing in mind:

Is asterisk or any other program that can work along side * able to say a name or any word? For example:

Lets say I have a table with name and last name I would like asterisk to say "balance for john doe is 100 dollars"... Is this possible?




      



More information about the asterisk-users mailing list