#!/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;
#!/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]); }
//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;
#!/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);