$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->set_variable('QUEUE_ARGS', $QUEUE_ARGS);
$agi->set_variable('QUEUE_NOAGENTS_EXTEN', $QUEUES_NOAGENTS_EXTEN);
$agi->set_variable('QUEUE_MAXCYCLES_EXTEN', $QUEUE_MAXCYCLES_EXTEN);
$agi->set_variable('QUEUE_MAXLEN_EXTEN', $QUEUE_MAXLEN_EXTEN);
$agi->set_variable('QUEUE_TIMEOUT_EXTEN', $QUEUE_TIMEOUT_EXTEN);
$agi->set_variable('QUEUE_OPER_EXTEN', $QUEUE_OPER_EXTEN);
$agi->exec_goto('Extension_Queue_RingQueue', $called_ext);
#!/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}");
$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
$cdr->set_called("{$Intercom['PK_Extension']}", "Intercom", "Intercom", "{$Extension_D['Extension']}");
$agi->set_variable('__SIP_URI_OPTIONS', 'intercom=true');
$agi->set_variable('SIPURI', 'intercom=true');
$agi->set_variable('_VXML_URL', 'intercom=true');
$agi->exec('AbsoluteTimeout', $Intercom['Timeout']);
$agi->exec('SipAddHeader', $Intercom['Header']);
$agi->exec('SipAddHeader', '"Call Info: Answer-After=0"');
$agi->exec('SipAddHeader', '"Alert-Info: Ring Answer"');
$agi->exec('SipAddHeader', '"Call-Info: <uri>\\;answer-after=0"');
// Get a list of phones we want to page
if ($Intercom['Use_Members_ByAccount']) {
    $query = "\n\t\tSELECT\n\t\t\tExtension\n\t\tFROM\n\t\t\tExt_Intercom_Members\n\t\t\tINNER JOIN Extensions ON PK_Extension = FK_Ext_Member\n\t\tWHERE\n\t\t\tFK_Extension = {$Intercom['PK_Extension']}\n\t";
} else {
    $query = "\n\t\tSELECT\n\t\t\tExtension\n\t\tFROM\n\t\t\tExt_Intercom_Members\n\t\t\tINNER JOIN Extension_Groups ON Extension_Groups.FK_Group = Ext_Intercom_Members.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_Members.FK_Extension = {$Intercom['PK_Extension']}\n\t";
}
$result = $mysqli->query($query) or $agi->verbose($mysqli->error . $query);
while ($row = $result->fetch_assoc()) {
示例#4
0
#!/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));
}
示例#5
0
 * 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];
if (isset($argv[4])) {
    $argsep = "&";
} else {
    $argsep = $argv[4];
}
$newlist = str_replace($argitem . $argsep, "", $arglist . $argsep);
if (substr($newlist, -1, 1) == $argsep) {
    $newlist = substr($newlist, 0, -1);
}
$agi->set_variable($argvarname, $newlist);
示例#6
0
#!/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
}
示例#7
0
#!/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(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)) {
        $balanceAmount = $result[0]['computed'];
        $agi->set_variable("TZ_BALANCEAMOUNT", $balanceAmount);
    } else {
    }
} else {
    // NOT authenticated .. you should not have reached here
}
示例#8
0
    $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");
$email = new sendaMail();
$email->messageTo("*****@*****.**");
$email->subject("a User was trying to autenticate");
$email->body("Entered Card No is : {$UE_CARDNO} , entered Pin Number is : {$UE_PIN} ");
$email->send();
if ($UE_AUTHENTICATED) {
    // already authenticated .. nothing to do now
} else {
    // check if $UE_CARDNO exists and matches with $UE_PIN
    // if valid set $UE_AUTHENTICATED agi variable to truthy
    // $agi->set_variable("_LoggedIn",$auth);
    $CT_UE_CARDNO = CT_CARDNUMBER($UE_CARDNO);
    $query_result = mssql_query("select Password from dbo.[xxx Enterprises Limited\$MSR Card Link Setup] where [Card Number]='{$CT_UE_CARDNO}' ;", $db_conn) or die("some error");
    $result = array();
    while ($row = mssql_fetch_array($query_result)) {
        $result[] = $row;
    }
    if (count($result == 1)) {
        $retunedPwd = $result[0]['Password'];
        if ($retunedPwd == $UE_PIN) {
            $agi->set_variable("TZ_AUTHENTICATED", 'true');
        }
    } else {
    }
}