#!/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']}";
$agi->verbose("CALLING {$new_number} USING RULE {$rule['Name']} AND IAX PROVIDER [{$rule['ProviderID']}]"); // Get the needed information about this sip provider $query = "SELECT * FROM `IaxProviders` WHERE PK_IaxProvider = '{$rule['ProviderID']}' LIMIT 1"; $result = $mysqli->query($query) or die($mysqli->error . $query); if ($mysqli->num_rows($result) != '1') { exit(0); } $IaxProvider = $result->fetch_assoc(); $cdr->push_event("OUTPROVIDER", "IAX,{$IaxProvder['Name']},{$new_number}"); //Execute the dial $agi->exec_dial("IAX2/{$IaxProvider['Label']}", $new_number, 60); } elseif ($new_number != "" && $rule['ProviderType'] == 'INTERNAL') { $agi->verbose("CALLING {$new_number} USING RULE {$rule['Name']} AND INTERNAL DIALPLAN"); //CDR : set entry type $cdr->set_type('LOCAL'); $Extension_D = DB_Extension($new_number); // Do the internal routing $agi->verbose('extension type ' . $Extension_D['Type']); switch ($Extension_D['Type']) { case 'SipPhone': $agi->exec_goto('Extension_SipPhone', $Extension_D['Extension'], 1); break; case 'Queue': $agi->exec_goto('Extension_Queue', $Extension_D['Extension'], 1); break; case 'AgentLogin': $agi->exec_goto('Extension_AgentLogin', $Extension_D['Extension'], 1); break; case 'IVR': $agi->exec_goto('Extension_IVR', $Extension_D['Extension'], 1); break;
<?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 Caller Extension infomation $cid = $agi->parse_callerid(); $caller_ext = $cid['username']; $Extension_S = DB_Extension($caller_ext); // Park Calls if ($Extension_D['Type'] == 'ParkingLot') { $agi->exec_goto('park_call', 0, 1); // UnPark Calls } else { // See if the extension is alowed to unpark calls if ($Extension_S['Type'] == 'SipPhone') { $query = "SELECT * FROM Ext_SipPhones_Features WHERE FK_Extension = {$Extension_S['PK_Extension']} AND FK_Feature = 6"; $result = $mysqli->query($query) or $agi->verbose($query); } else { $query = "SELECT * FROM Ext_Virtual_Features WHERE FK_Extension = {$Extension_S['PK_Extension']} AND FK_Feature = 6"; $result = $mysqli->query($query) or $agi->verbose($query); } $agi->verbose($query); // Unpark calls if allowed