Пример #1
0
#!/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']}";
Пример #2
0
    $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