Esempio n. 1
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;
Esempio n. 2
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]);
}
Esempio n. 3
0
    //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);
        $optconfig[$var]=$val;
    }
}elseif ($argc > 1 && is_numeric($argv[1]) && $argv[1] >= 0) {
	$idconfig = $argv[1];
} else {
	$idconfig = 1;
}

if ($dynamic_idconfig = intval($agi -> get_variable("IDCONF", true))) {
	$idconfig = $dynamic_idconfig;
}

if ($argc > 2 && strlen($argv[2]) > 0) {
	switch($argv[2])
	{
	    case 'did': 			$mode = 'did'; break;
	    case 'callback':			$mode = 'callback'; break;
	    case 'cid-callback':		$mode = 'cid-callback'; break;
	    case 'cid-prompt-callback': 	$mode = 'cid-prompt-callback'; break;
	    case 'all-callback':		$mode = 'all-callback'; break;
	    case 'voucher':			$mode = 'voucher'; break;
	    case 'campaign-callback':		$mode = 'campaign-callback'; break;
	    case 'conference-moderator':	$mode = 'conference-moderator'; break;
	    case 'conference-member':		$mode = 'conference-member'; break;
Esempio n. 4
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']);
    }
}
$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
    $query = "SELECT * FROM Ext_SipPhones_Features WHERE FK_Extension = {$SipPhone['PK_Extension']} AND FK_Feature=1 LIMIT 1";
    $agi->verbose($query);
    $result = $mysqli->query($query) or $agi->verbose($mysqli->error);
    if ($mysqli->numrows($result) != 1) {
        exit(0);
    }
    // CDR: Push VOICEMAIL
        $agi->stream_file('traductores/ESPANOL/' . $saldo . '_minutos');
        $cuenta = $opcion['result'] + 1;
        do {
            $continuar = $agi->get_data('traductores/ESPANOL/Presione_asterisco_para_iniciar_la_traduccion', $tiempoDeEspera, 1);
            $cuenta++;
            if ($cuenta == 5) {
                $agi->hangup();
            }
        } while ($continuar['result'] == "");
        if ($continuar['result'] == '*') {
            $phone = obtenerTelefonos($phone);
            $time = 60000 * $saldo;
            $antesDeLlamada = time();
            //Parce aqui se cambia los datos
            $agi->exec('DIAL', "SIP/servicom/03" . $phone . ",10,gHCL(" . $time . ":" . $time . ":0000)");
            $callduration = $agi->get_variable("ANSWEREDTIME");
            $despuesDeLlamada = time();
            $tiempodellamada = $despuesDeLlamada - $antesDeLlamada;
            $tiempodellamada = $tiempodellamada - 10;
            foreach ($callduration as $key => $value) {
                $fields_string .= $key . '=' . $value . '&';
            }
            file_get_contents('http://104.131.89.133/codes/adduse?code=' . $pin['result'] . '&time=' . $tiempodellamada . '&idioma=1');
        }
    }
}
//Ingreso por ingles
if ($result['result'] == 2) {
    $cuenta = 1;
    do {
        $pin = $agi->get_data('traductores/INGLES/Enter_your_PIN_CODE', $tiempoDeEspera, $digitosPin);