#!/usr/bin/php-cli -q <?php require dirname(__FILE__) . '/../lib/phpagi/phpagi.php'; require dirname(__FILE__) . '/../include/db_utils.inc.php'; require dirname(__FILE__) . '/common/AGI_Logger.class.php'; require dirname(__FILE__) . '/common/AGI_CDR.class.php'; require dirname(__FILE__) . '/common/AGI_Utils.php'; $agi = new AGI(); $logger = new AGI_Logger($agi); $cdr = new AGI_CDR($agi); // Get Called Extension informations $called_ext = $agi->request['agi_extension']; $Extension_D = DB_Extension($called_ext); // Get 'DialTone' Parameters $DialTone = Database_Entry('Ext_DialTone', $Extension_D['PK_Extension']); //CDR: Set called info $cdr->set_called("{$DialTone['PK_Extension']}", "DialTone", "Dial Tone", "{$Extension_D['Extension']}"); // Call DISA Application if ($DialTone['Password'] != '') { $agi->exec('DISA', array($DialTone['Password'], 'internal')); } else { $agi->exec('DISA', array('no-password', 'internal')); }
function log($message, $level=1) { if($this->pagi != false) $this->pagi->conlog($message, $level); else error_log(date('r') . ' - ' . $message); }
#!/usr/bin/php -q <?php set_time_limit(30); require_once 'phpagi.php'; require_once 'db_work.php'; $agi = new AGI(); $agi->answer(); $callerid = $agi->get_variable("CALLERID(name)"); $incoming_num = mysql_escape_string($callerid['data']); $incoming_num = substr(preg_replace("/[^0-9]/", "", $incoming_num), -9); $agi->exec('NoOp', 'CONTEXT:' . $incoming_num); $client = values("SELECT lastdata FROM asteriskcdrdb.`cdr` WHERE (src LIKE '%" . $incoming_num . "' OR srcplus LIKE '%" . $incoming_num . "') AND calldate > '" . date("Y-m-d H:i:s", time() - 604800) . "' AND dcontext='work' AND dstchannel!='' AND lastapp='Dial' AND disposition='ANSWERED' ORDER BY calldate DESC LIMIT 1"); if (count($client) > 0 and strlen($incoming_num) > 6) { $arr = explode(',', $client[0]["lastdata"]); $agi->exec('Dial', $arr[0] . ',10,r'); $ds = $agi->get_variable("DIALSTATUS"); if ($ds['data'] == "ANSWER") { $agi->hangup(); } $agi->exec('NoOp', 'GOTO:' . $arr[0]); }
#!/usr/bin/php <?php /** * @file * * All Callblaster code is released under the GNU General Public License. * See COPYRIGHT.txt and LICENSE.txt. * *.................... * www.nethram.com */ require 'connection.php'; require $agipath . 'phpagi.php'; error_reporting(E_ALL); $agi = new AGI(); $dbid = $agi->get_variable("dbid"); $dbid = $dbid['data']; $userNumber = $agi->get_variable("userNumber"); $userNumber = $userNumber['data']; $audio = $agi->get_variable("userAudio"); if ($audio == '') { $audio = $welcomeSound; } else { $audio = $basepath . "audio/" . $audio['data']; } $msg = date("r", time()) . " -- Call in progress -- Number:{$userNumber} -- Audio:{$audio}\n"; file_put_contents($basepath . "logs/callLog.txt", $msg, FILE_APPEND); $query = "update logs set status='Connected' where autoID='{$dbid}'"; $result = mysql_query($query) or die("Database Error"); $keys = "Nil"; $count = 0;
$rule = $result->fetch_assoc(); if ($rule['Type'] == 'Single') { if (!empty($rule['Name'])) { $callerid['Name'] = $rule['Name']; } if (!empty($rule['Number'])) { $callerid['Number'] = $rule['Number']; } } elseif ($rule['Type'] == 'Multiple') { $callerid['Number'] = $callerid['Number'] + $rule['Add']; $callerid['Number'] = $rule['PrependDigits'] . $callerid['Number']; } } return $callerid; } $agi = new AGI(); $logger = new AGI_Logger($agi); $cdr = new AGI_CDR($agi); //CDR : Flush existing entry if both called and caller are known if ($cdr->caller_known() && $cdr->called_known()) { $cdr->flush_cdr(); } // Get Called Extension informations $called_ext = $agi->request['agi_extension']; // Get Caller Extension infomation $cid = $agi->parse_callerid(); $caller_ext = $cid['username']; $Extension_S = DB_Extension($caller_ext); //CDR: Set caller information $cdr->set_caller($Extension_S['PK_Extension'], $Extension_S['Type'], DB_Extension_Name($caller_ext), $caller_ext); //CDR: Set called information
function log($message, $level = 1) { if ($this->pagi != false) { $this->pagi->conlog($message, $level); } elseif ($level <= $this->log_level) { error_log(date('r') . ' - ' . $message); } }
function log($message, $level = 1) { if ($this->pagi != false) { $this->pagi->conlog($message, $level); } elseif ($this->config['asmanager']['write_log']) { error_log(date('r') . ' - ' . $message); } }
function log($message, $level = 1) { if ($this->nolog) { return; } if ($this->pagi != false) { $this->pagi->conlog($message, $level); } else { error_log(date('r') . ' - ' . $message); } }
function log($message, $level = 1) { if ($this->pagi != false) { $this->pagi->conlog($message, $level); } elseif ($this->log_level === false && $level <= $this->log_level) { if (function_exists('dbug')) { dbug('php-asmanager log', $message); } else { error_log(date('r') . ' - ' . $message); } } }
#!/usr/bin/php-cli -q <?php require dirname(__FILE__) . '/../lib/phpagi/phpagi.php'; require dirname(__FILE__) . '/../include/db_utils.inc.php'; require dirname(__FILE__) . '/common/AGI_Logger.class.php'; require dirname(__FILE__) . '/common/AGI_CDR.class.php'; require dirname(__FILE__) . '/common/AGI_Utils.php'; $agi = new AGI(); $logger = new AGI_Logger($agi); $cdr = new AGI_CDR($agi); // Get Called Extension informations $called_ext = $agi->request['agi_extension']; $Extension_D = DB_Extension($called_ext); // Get 'Voicemail' Parameters $SimpleConf = Database_Entry('Ext_SimpleConf', $Extension_D['PK_Extension']); //CDR: Set called info $cdr->set_called("{$SimpleConf['PK_Extension']}", "SimpleConf", "Simple Conference", "{$Extension_D['Extension']}"); // Set transfer extension if we have one if ($SimpleConf['TransferExt'] != "") { $agi->set_variable('CONF_TRANSFER_EXT', $SimpleConf['TransferExt']); } // Call SimpleConf application $params = 'S'; if ($SimpleConf['PlaySound'] == 1) { $params .= 'n'; } if ($SimpleConf['PlayMOH'] == 1) { $params .= 'm'; } $agi->exec('Conference', "simpleconf-{$Extension_D['PK_Extension']}/{$params}");
#!/usr/bin/php -q <?php require 'phpagi.php'; include_once 'netsds.inc'; $agi = new AGI(); if (isset($argv[1])) { $msisdn = $argv[1]; } else { $agi->verbose("MSISDN does not exist."); exit(0); } $pgdbh = netsds_connect(); $query = "select operator from primary_operators where number='" . $msisdn . "'"; $res = pg_query($pgdbh, $query) or die("Query failed."); $a = pg_fetch_array($res); $listed = $a[0]; pg_close($pgdbh); if ($listed) { $agi->verbose("OPERATOR: " . $listed); $agi->set_variable("PRIMARY_OPERATOR", trim($listed)); }
* * We would be happy to list your phpagi based application on the phpagi * website. Drop me an Email if you'd like us to list your program. * * @package phpAGI * @version 2.0 * @example docs/fastagi.xinetd Example xinetd config file */ /** * Written for PHP 4.3.4, should work with older PHP 4.x versions. * Please submit bug reports, patches, etc to http://sourceforge.net/projects/phpagi/ * Gracias. :) * */ require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'phpagi.php'; $fastagi = new AGI(); $fastagi->verbose(print_r($fastagi, true)); if (!isset($fastagi->config['fastagi']['basedir'])) { $fastagi->config['fastagi']['basedir'] = dirname(__FILE__); } // perform some security checks $script = $fastagi->config['fastagi']['basedir'] . DIRECTORY_SEPARATOR . $fastagi->request['agi_network_script']; // in the same directory (or subdirectory) $mydir = dirname($fastagi->config['fastagi']['basedir']) . DIRECTORY_SEPARATOR; $dir = dirname($script) . DIRECTORY_SEPARATOR; if (substr($dir, 0, strlen($mydir)) != $mydir) { $fastagi->conlog("{$script} is not allowed to execute."); exit; } // make sure it exists if (!file_exists($script)) {
#!/usr/bin/php -q <?php set_time_limit(30); require_once 'phpagi.php'; require_once 'db_work.php'; $agi = new AGI(); $agi->answer(); $callerid = $agi->get_variable("CALLERID(num)"); $incoming_num = mysql_escape_string($callerid['data']); $incoming_num = substr(preg_replace("/[^0-9]/", "", $incoming_num), -9); $agi->exec('NoOp', $incoming_num); if (strlen($incoming_num) > 6) { $client = values("SELECT id, checkid, autoresponse_file FROM `workbase`.`autoresponser` WHERE phone LIKE '%" . $incoming_num . "' AND need_autoresponse=1 ORDER BY need_autoresponse DESC, id DESC LIMIT 7"); $agi->exec('NoOp', 'Count: ' . count($client)); for ($i = 0; $i < count($client); $i++) { if (!file_exists("/var/lib/asterisk/sounds/en/" . $client[$i]["autoresponse_file"] . "_.wav")) { $agi->exec('NoOp', "/var/lib/asterisk/sounds/en/" . $client[$i]["autoresponse_file"] . "_.wav"); continue; } $agi->stream_file('receipt_', "79#"); $agi->say_digits($client[$i]["checkid"], "79#"); $agi->stream_file($client[$i]["autoresponse_file"] . "_", "79#"); values("UPDATE `workbase`.`autoresponser` SET response_date='" . Date("Y-m-d H:i:s") . "' WHERE id=" . $client[$i]['id']); } }
#!/usr/bin/php -q <?php // IVR history. Version 0.2.0. // It requires netsds.inc to connect to the database // It requires phpagi to work with Asterisk. /* Usage: cdr(calldate),cdr(src),custom destination, dtmf, previous context, current_context, previous ID, seconds (integer) in previous context. */ include_once 'netsds.inc'; /* navigation and taps logs */ $agi = new AGI(); if (!isset($argv[1]) or !isset($argv[2]) or !isset($argv[3]) or !isset($argv[4]) or !isset($argv[5]) or !isset($argv[6]) or !isset($argv[7]) or !isset($argv[8])) { $agi->verbose("Usage: cdr(calldate) cdr(src) custom_dst dtmf previous_context current_context previous_id previous_seconds"); exit(0); } $cdr_calldate = $argv[1]; $cdr_src = $argv[2]; $custom_dst = $argv[3]; // $moment = now(); $dtmf = $argv[4]; $previous_context = $argv[5]; $current_context = $argv[6]; $previous_id = $argv[7]; $previous_seconds = $argv[8]; $pgdbh = netsds_connect(); $agi->verbose("Previous id is {$previous_id}"); if ($previous_id > 0) { // We have previous ID.
Usage: list-item-remove.php list item varname [listseparator] list: The list of strings separated by a character (example: 1&2&3) item: The value of the item to remove varname: The variable to return the new list in listseparator: The separator. This defaults to "&" if it is not specified. */ /* --------WARNING--------- * * This script is auto-copied from an included module and will get overwritten. * If you modify it, you must change it to write only, in the agi-bin directory, * to keep it from getting changed. */ include "phpagi.php"; $agi = new AGI(); if (!isset($argv[1])) { $agi->verbose("Missing list"); exit(1); } if (!isset($argv[2])) { $agi->verbose("Missing item"); exit(1); } if (!isset($argv[3])) { $agi->verbose("Missing return var name"); exit(1); } $arglist = $argv[1]; $argitem = $argv[2]; $argvarname = $argv[3];
// License for all code of this FreePBX module can be found in the license file inside the module directory // Copyright 2013 Schmooze Com Inc. // // Bootstrap FreePBX but don't include any modules (so you won't get anything // from the functions.inc.php files of all the modules.) // $restrict_mods = true; if (!@(include_once getenv('FREEPBX_CONF') ? getenv('FREEPBX_CONF') : '/etc/freepbx.conf')) { include_once '/etc/asterisk/freepbx.conf'; } set_time_limit(0); error_reporting(0); // Connect to AGI: // require_once "phpagi.php"; $AGI = new AGI(); $AGI->answer(); $lang = $AGI->request['agi_language']; if ($lang == 'ja') { sim_playback($AGI, "this-is-yr-wakeup-call"); } else { sim_playback($AGI, "hello&this-is-yr-wakeup-call"); } $time_wakeup = time(); if ($lang == 'ja') { $digit = sim_background($AGI, "wakeup-menu", "1234", 1); } else { // Default back to English if channel doesn't match other languages $digit = sim_background($AGI, "to-cancel-wakeup&press-1&to-snooze-for&digits/5&minutes&press-2&to-snooze-for&digits/10&minutes&press-3&to-snooze-for&digits/15&minutes&press-4", "1234", 1); } $number = $AGI->request['agi_extension'];
#!/usr/bin/php-cli -q <?php require dirname(__FILE__) . '/../lib/phpagi/phpagi.php'; require dirname(__FILE__) . '/../include/db_utils.inc.php'; require dirname(__FILE__) . '/common/AGI_Logger.class.php'; require dirname(__FILE__) . '/common/AGI_CDR.class.php'; require dirname(__FILE__) . '/common/AGI_Utils.php'; $agi = new AGI(); $logger = new AGI_Logger($agi); $cdr = new AGI_CDR($agi); // Get Called Extension informations $called_ext = $agi->request['agi_extension']; $Extension_D = DB_Extension($called_ext); // Get 'Intercom' Parameters $Intercom = Database_Entry('Ext_Intercom', $Extension_D['PK_Extension']); // Get the extension of the caller $cid = $agi->parse_callerid(); $caller_ext = $cid['username']; // See if the caller is allowed to use this extension if ($Intercom['Use_Admins_ByAccount']) { $query = "\n\t\tSELECT\n\t\t\tExtension\n\t\tFROM\n\t\t\tExt_Intercom_Admins\n\t\t\tINNER JOIN Extensions ON PK_Extension = FK_Ext_Admin\n\t\tWHERE\n\t\t\tFK_Extension = {$Intercom['PK_Extension']}\n\t\t\tAND\n\t\t\tExtensions.Extension = {$caller_ext}\n\t\tLIMIT 1\n\t"; } else { $query = "\n\t\tSELECT\n\t\t\tExtension\n\t\tFROM\n\t\t\tExt_Intercom_Admins\n\t\t\tINNER JOIN Extension_Groups ON Extension_Groups.FK_Group = Ext_Intercom_Admins.FK_Ext_Group\n\t\t\tINNER JOIN Extensions ON Extensions.PK_Extension = Extension_Groups.FK_Extension\n\t\tWHERE\n\t\t\tExt_Intercom_Admins.FK_Extension = {$Intercom['PK_Extension']}\n\t\t\tAND\n\t\t\tExtensions.Extension = {$caller_ext}\n\t\tLIMIT 1\n\t"; } $result = $mysqli->query($query) or $agi->verbose($mysqli->error . $query); if ($mysqli->numrows($result) != 1) { $agi->stream_file('beeperr'); $agi->hangup(); exit(0); } //CDR: Set called info
#!/usr/bin/php -q <?php set_time_limit(30); $callerid = $argv[1]; require_once 'phpagi.php'; require_once 'db_work.php'; $agi = new AGI(); //$phone = preg_replace("/[^0-9]/", "", $callerid['data']); $phone = substr($callerid, -9); $agi->exec('NoOP', $phone); if (strlen($phone) == 9) { $agi->exec('NoOP', '11111' . $phone); $op = values("SELECT dstchannel FROM `cdr` WHERE src LIKE '%" . $phone . "' AND dcontext = 'phones_incom' AND dstchannel!='' ORDER BY calldate DESC LIMIT 1"); $agi->exec('NoOP', '22222-Count' . count($op)); if (count($op) < 1) { //$agi->exec('NoOP','3333'.$op[0]["dstchannel"]); //header ('Content-type: text/html; charset=utf-8'); $client = new SoapClient('http://turbosms.in.ua/api/wsdl.html'); //$agi->exec('NoOP','444'); $auth = array('login' => 'oyv1979', 'password' => 'Av1979'); //$agi->exec('NoOP','555'); $result = $client->Auth($auth); //$agi->exec('NoOP','666'); $text = 'Krainashin.com - любые шины и диски. Бесплатная линия 0(800)300-305'; $sms = array('sender' => 'KRAINASHIN', 'destination' => '+380' . $phone, 'text' => $text); $agi->exec('NoOP', '777'); //$result = $client->SendSMS ($sms); $agi->exec('NoOP', $result); } } ?>
* @author Peter Rukavina <*****@*****.**> * @copyright Copyright © 2006, Reinvented Inc. * @license http://www.fsf.org/licensing/licenses/gpl.txt GNU Public License */ // Set a script timeout of 60 seconds set_time_limit(60); // Require the phpagi.php class require_once 'phpagi.php'; // Report on all errors. error_reporting(E_ALL); // Require class.jaiku.php to talk to Jaiku require_once "/www/php-classes/jaiku/class.jaiku.php"; // Create a new Jaiku object; replace with your username, password and screen name here. $j = new Jaiku("username", "password", 'screenname'); // Create a new AGI object. $agi = new AGI(); // Answer the incoming call. $agi->answer(); // Say hello. $agi->text2wav("Hello."); // Read back the current presence ReadPresence($agi, $j); // Loop until we've either quit, timed out, or completed. $alldone = 0; do { $text = EnterPresence($agi); $rv = UpdateMenu($agi, $j, $text); } while (!$alldone); // Say good-bye $agi->text2wav('Goodbye'); // Hang up the call.
To: register_argc_argv = On 2) variables_order From: variables_order = "GPCS" To: variables_order = "EGPCS" The order forthe value of variables_order is IMPORTANT! In features.conf under [applicationmap] you need to add: log_call_caller => *#,self/caller,agi,/var/lib/asterisk/agi-bin/log_bad_call.php log_call_callee => *#,self/callee,agi,/var/lib/asterisk/agi-bin/log_bad_call.php Then in the dial plan you need to add in your dial plan something like: Exten => _X.,1,set(__DYNAMIC_FEATURES=log_call_caller#log_call_callee) */ $email_contact = '*****@*****.**'; //seperate them by , $agi = new AGI(); $sip_callid = get_var('SIPCALLID'); $peername = get_channel_var('peername'); $agi->verbose("WE NEED TO LOG CALL WITH SIP CALL ID {$sip_callid} FROM VOIPMONITOR AS PEER {$peername} IS COMPLAINING"); $values_to_get = array('audioreadformat', 'audionativeformat', 'audiowriteformat', 'peerip', 'recvip', 'from', 'uri', 'useragent', 'peername', 'peerip', 'peername', 'channeltype', 'rtpdest'); $email_msg = ''; $email_msg .= "Hi there,\n\n"; $email_msg .= "The peer {$peername} just dialed *# to indicate that they may have a quality issue. Below is the details of the call.\n\n\n"; foreach ($values_to_get as $item) { $var = get_channel_var($item); $email_msg .= "{$item}: {$var}\n"; } $email_msg .= "PCAP URL: http://voipmonitor.example.org/?callid={$sip_callid}\n"; $email_msg .= "\n\n\n"; //Output the message so we have it in our logs. $agi->verbose($email_msg);
#!/usr/bin/php -q <?php require_once "/var/lib/asterisk/agi-bin/phpagi.php"; require_once "/var/lib/asterisk/agi-bin/chandu_custom.php"; $agi = new AGI(); function agi_get_variable($variable) { global $agi; $tmp = $agi->get_variable($variable); return $tmp[data]; } $UE_CARDNO = agi_get_variable("TaazaUserId"); //$UE_PIN = agi_get_variable("TaazaPIN"); $UE_AUTHENTICATED = agi_get_variable("TZ_AUTHENTICATED"); if ($UE_AUTHENTICATED == 'true') { $CT_UE_CARDNO = CT_CARDNUMBER($UE_CARDNO); $query_result = mssql_query("select Sum([Transaction Points]) from dbo.[xxx Enterprises Limited\$Loyalty Points Transactions] where [Card No_]='{$CT_UE_CARDNO}' ;", $db_conn) or die("some error"); $result = array(); while ($row = mssql_fetch_array($query_result)) { $result[] = $row; } if (count($result == 1)) { $rewardPoints = $result[0]['computed']; $agi->set_variable("TZ_REWARDPOINTS", $rewardPoints); } else { } } else { // NOT authenticated .. you should not have reached here }
#!/usr/bin/php -q <?php set_time_limit(30); require 'phpagi.php'; $agi = new AGI(); $mysqli = mysqli_connect('parkingcity.nl', 'citypark', 'KoffieKopje12', 'citypark'); $setting = $mysqli->query("SELECT setting_value FROM citypark_setting WHERE setting_name = 'citypark_parking_space'"); $setting_count = $setting->fetch_object()->setting_value; $parking = $mysqli->query("SELECT COUNT(id) AS aantal FROM parking WHERE start_date IS NOT NULL AND end_date IS NULL"); $parking_count = $parking->fetch_object()->aantal; $free_space = $setting_count - $parking_count; $agi->say_number($free_space);
return False; } function get_action() { global $argv; return strtolower(trim($argv['1'])); } function get_type() { global $argv; return strtolower(trim($argv['2'])); } ################################################################### # Main code ################################################################### $agi = new AGI(); $exten = agi_get_variable("USER"); $action = get_action(); $type = get_type(); # VM exists? if (check_for_voicemail_box($exten)) { # Retrieve Spooler directory $spool_dir = agi_get_variable('ASTSPOOLDIR'); # Depending on message type switch ($type) { case 'temp': $play = 'vm-rec-temp'; $file = $spool_dir . '/voicemail/default/' . $exten . '/temp'; break; case 'name': $play = 'vm-rec-name';
$callerid[$param['Section']] = "{$text}" . $callerid[$param['Section']]; break; case 'append': $callerid[$param['Section']] = $callerid[$param['Section']] . "{$text}"; break; case 'replace': $callerid[$param['Section']] = "{$text}"; break; } $agi->request['calledid_name'] = $callerid['name']; $agi->request['agi_callerid'] = $callerid['number']; $agi->set_callerid("\"{$callerid['name']}\"<{$callerid['number']}>"); } set_time_limit(300); error_reporting(E_ALL); $agi = new AGI(); $logger = new AGI_Logger($agi); $cdr = new AGI_CDR($agi); $agi->answer(); $ext = $agi->request['agi_extension']; // Get 'Extension' table info $query = "SELECT PK_Extension, Extension, Type FROM Extensions WHERE Extension = '{$ext}' LIMIT 1"; $result = $mysqli->query($query) or $logger->error_sql("", $query, __FILE__, __LINE__); $Extension = $result->fetch_assoc(); // Get Starting Parameters $query = "SELECT * FROM Ext_IVR WHERE PK_Extension = '{$Extension['PK_Extension']}' LIMIT 1"; $result = $mysqli->query($query) or $logger->error_sql("", $query, __FILE__, __LINE__); $Ext_IVR = $result->fetch_assoc(); // Get Starting Order $query = "SELECT `Order` FROM IVR_Actions WHERE PK_Action = {$Ext_IVR['FK_Action']} LIMIT 1"; $result = $mysqli->query($query) or $logger->error_sql("", $query, __FILE__, __LINE__);
#!/usr/bin/php-cli -q <?php require dirname(__FILE__) . '/../lib/phpagi/phpagi.php'; require dirname(__FILE__) . '/../include/db_utils.inc.php'; require dirname(__FILE__) . '/common/AGI_Logger.class.php'; require dirname(__FILE__) . '/common/AGI_CDR.class.php'; require dirname(__FILE__) . '/common/AGI_Utils.php'; $agi = new AGI(); $logger = new AGI_Logger($agi); $cdr = new AGI_CDR($agi); // Get Called Extension informations $called_ext = $agi->request['agi_extension']; $Extension_D = DB_Extension($called_ext); // Get Called Queue information $Queue = Database_Entry('Ext_Queues', $Extension_D['PK_Extension']); //CDR: Set called info $cdr->set_called("{$Queue['PK_Extension']}", "Queue", "{$Queue['Name']}", "{$Extension_D['Extension']}"); // Set values to pass to [Extension_Queue_RingQueue] $QUEUE_ARGS = "queue-{$Queue['PK_Extension']}"; if ($Queue['PlayMohInQueue'] == 0) { $QUEUE_ARGS .= "|r||||"; } else { $QUEUE_ARGS .= "|||||"; } // Maybe we can pass our cdr id to the agents called throught this url //$QUEUE_ARGS .= "|http://www.google.com"; $QUEUES_NOAGENTS_EXTEN = "{$Queue['JoinEmptyExtension']}"; $QUEUE_MAXCYCLES_EXTEN = "{$Queue['CyclesExtension']}"; $QUEUE_MAXLEN_EXTEN = "{$Queue['MaxLenExtension']}"; $QUEUE_TIMEOUT_EXTEN = "{$Queue['TimeoutExtension']}"; $QUEUE_OPER_EXTEN = "{$Queue['OperatorExtension']}";
#!/usr/bin/php-cli -q <?php require dirname(__FILE__) . '/../lib/phpagi/phpagi.php'; require dirname(__FILE__) . '/../include/db_utils.inc.php'; require dirname(__FILE__) . '/common/AGI_Logger.class.php'; require dirname(__FILE__) . '/common/AGI_CDR.class.php'; require dirname(__FILE__) . '/common/AGI_Utils.php'; $agi = new AGI(); $logger = new AGI_Logger($agi); $cdr = new AGI_CDR($agi); // Get Called Extension informations $called_ext = $agi->request['agi_extension']; $Extension_D = DB_Extension($called_ext); // Get Called SipPhone information $SipPhone = Database_Entry('Ext_SipPhones', $Extension_D['PK_Extension']); //CDR: Set called info $cdr->set_called("{$SipPhone['PK_Extension']}", "SipPhone", "{$SipPhone['FirstName']} {$SipPhone['LastName']}", "{$Extension_D['Extension']}"); //CDR: Push RING event $cdr->push_event('RING', "{$SipPhone['FirstName']} {$SipPhone['LastName']},{$Extension_D['Extension']}"); // Perform the Dial $agi->exec('Dial', array("SIP/{$Extension_D['Extension']}", 10, 'tT')); //CDR: Push DIALSTATUS $resp = $agi->get_variable('DIALSTATUS'); $DIALSTATUS = $resp['data']; $resp = $agi->get_variable('HANGUPCAUSE'); $HANGUPCAUSE = $resp['data']; if ($DIALSTATUS != "") { $cdr->push_event('DIALSTATUS', "{$DIALSTATUS},{$HANGUPCAUSE}"); } if ($DIALSTATUS != 'ANSWER') { // Exit if voicemail is not defined for this extension
#!/usr/bin/php-cli -q <?php require dirname(__FILE__) . '/../lib/phpagi/phpagi.php'; require dirname(__FILE__) . '/../include/db_utils.inc.php'; require dirname(__FILE__) . '/common/AGI_Logger.class.php'; require dirname(__FILE__) . '/common/AGI_CDR.class.php'; require dirname(__FILE__) . '/common/AGI_Utils.php'; $agi = new AGI(); $logger = new AGI_Logger($agi); //$cdr = new AGI_CDR($agi); // Get Called Extension informations $called_ext = $agi->request['agi_extension']; $Extension_D = DB_Extension($called_ext); // Get 'AgentLogin' Parameters $AgentLogin = Database_Entry('Ext_AgentLogin', $Extension_D['PK_Extension']); // ////CDR: Set called info //$cdr->set_called( // "{$Extension_D['PK_Extension']}", // CalledID // "AgentLogin", // CalledType // "Agent Login", // CalledName // "{$Extension_D['Extension']}" // CalledNumber //); // Get the extension of the caller $cid = $agi->parse_callerid(); $caller_ext = $cid['username']; function read_agent_number() { global $agi; static $first_time = true; if ($first_time) {
#!/usr/bin/php-cli -q <?php set_time_limit(30); error_reporting(E_ALL); require dirname(__FILE__) . '/../lib/phpagi/phpagi.php'; require dirname(__FILE__) . '/../include/db_utils.inc.php'; require dirname(__FILE__) . '/common/AGI_Logger.class.php'; require dirname(__FILE__) . '/common/AGI_CDR.class.php'; $agi = new AGI(); $logger = new AGI_Logger($agi); $cdr = new AGI_CDR($agi); // CDR: Set call type $cdr->set_type('IN'); // CDR: Set caller name and number $cid = $agi->parse_callerid(); $agi->verbose($cid); $caller_ext = $cid['username']; $caller_name = $agi->request['agi_calleridname']; $cdr->set_caller('', '', $caller_name, $caller_ext); if ($agi->request['agi_type'] == 'SIP') { preg_match('/^sip_provider_(\\d+)/', $agi->request['agi_context'], $matches); $PK_SipProvider = $matches[1]; $query = "SELECT Name FROM SipProviders WHERE PK_SipProvider={$PK_SipProvider} LIMIT 1"; $result = $mysqli->query($query) or $agi->verbose($mysqli->error . $query); $prov = $result->fetch_assoc(); $cdr->push_event("INPROVIDER", "SIP,{$prov['Name']}"); } elseif ($agi->request['agi_type'] == 'IAX2') { preg_match('/^iax_provider_(\\d+)/', $agi->request['agi_context'], $matches); $PK_IaxProvider = $matches[1]; $query = "SELECT Name FROM IaxProviders WHERE PK_IaxProvider={$PK_IaxProvider} LIMIT 1"; $result = $mysqli->query($query) or $agi->verbose($mysqli->error . $query);
include (dirname(__FILE__)."/lib/phpagi/phpagi-asmanager.php"); include (dirname(__FILE__)."/lib/Misc.php"); include (dirname(__FILE__)."/lib/interface/constants.php"); $charge_callback = 0; $G_startime = time(); $agi_version = "A2Billing - Version 1.9.4 (Cuprum)"; if ($argc > 1 && ($argv[1] == '--version' || $argv[1] == '-v')) { echo "$agi_version\n"; exit; } /********** CREATE THE AGI INSTANCE + ANSWER THE CALL **********/ $agi = new AGI(); $optconfig = array(); if ($argc > 1 && strstr($argv[1], "+")) { /* This change allows some configuration overrides on the AGI command-line by allowing the user to add them after the configuration number, like so: exten => 0312345678,3,AGI(a2billing.php,"1+use_dnid=0&extracharge_did=12345") */ //check for configuration overrides in the first argument $idconfig = substr($argv[1], 0, strpos($argv[1],"+")); $configstring = substr($argv[1], strpos($argv[1],"+")+1); foreach (explode("&",$configstring) as $conf) { $var = substr($conf, 0, strpos($conf,"=")); $val = substr($conf, strpos($conf,"=")+1);
#!/usr/bin/php-cli -q <?php require dirname(__FILE__) . '/../lib/phpagi/phpagi.php'; require dirname(__FILE__) . '/../include/db_utils.inc.php'; require dirname(__FILE__) . '/common/AGI_Logger.class.php'; require dirname(__FILE__) . '/common/AGI_CDR.class.php'; require dirname(__FILE__) . '/common/AGI_Utils.php'; $agi = new AGI(); $logger = new AGI_Logger($agi); $cdr = new AGI_CDR($agi); // Get Called Extension informations $called_ext = $agi->request['agi_extension']; $Extension_D = DB_Extension($called_ext); // Get 'Voicemail' Parameters $Voicemail = Database_Entry('Ext_Voicemail', $Extension_D['PK_Extension']); //CDR: Set called info $cdr->set_called("{$Voicemail['PK_Extension']}", "Voicemail", "Voice Mail", "{$Extension_D['Extension']}"); // Get the extension of the caller $cid = $agi->parse_callerid(); $caller_ext = $cid['username']; // Call Voicemail application $VM_MAIN_ARGS = "{$caller_ext}@default"; if ($Voicemail['RequirePassword'] != 1) { $VM_MAIN_ARGS .= "|s"; } $agi->exec('VoicemailMain', $VM_MAIN_ARGS);