Exemplo n.º 1
1
 function log($message, $level=1)
 {
   if($this->pagi != false)
     $this->pagi->conlog($message, $level);
   else
     error_log(date('r') . ' - ' . $message);
 }
Exemplo n.º 2
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 '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'));
}
Exemplo n.º 3
1
#!/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]);
}
Exemplo n.º 4
1
#!/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;
Exemplo n.º 5
1
        $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);
     }
 }
Exemplo n.º 7
0
 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);
     }
 }
Exemplo n.º 8
0
 function log($message, $level = 1)
 {
     if ($this->nolog) {
         return;
     }
     if ($this->pagi != false) {
         $this->pagi->conlog($message, $level);
     } else {
         error_log(date('r') . ' - ' . $message);
     }
 }
Exemplo n.º 9
0
 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);
         }
     }
 }
Exemplo n.º 10
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 '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}");
Exemplo n.º 11
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));
}
Exemplo n.º 12
0
 *
 * 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)) {
Exemplo n.º 13
0
#!/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']);
    }
}
Exemplo n.º 14
0
#!/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.
Exemplo n.º 15
0
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];
Exemplo n.º 16
0
//	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'];
Exemplo n.º 17
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 '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
Exemplo n.º 18
0
#!/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);
    }
}
?>
Exemplo n.º 19
0
 * @author Peter Rukavina <*****@*****.**>
 * @copyright Copyright &copy; 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.
Exemplo n.º 20
0
	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);
Exemplo n.º 21
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
}
Exemplo n.º 22
0
#!/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';
Exemplo n.º 24
0
            $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__);
Exemplo n.º 25
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']}";
Exemplo n.º 26
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 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
Exemplo n.º 27
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 '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) {
Exemplo n.º 28
0
#!/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);
Exemplo n.º 29
-1
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);
Exemplo n.º 30
-3
#!/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);