/** * this function defines the asterisk client */ function asteriskClient() { global $app_strings, $current_user; global $adb, $log; $data = getAsteriskInfo($adb); $server = $data['server']; $port = $data['port']; $username = $data['username']; $password = $data['password']; $version = $data['version']; $errno = $errstr = NULL; $sock = @fsockopen($server, $port, $errno, $errstr, 1); stream_set_blocking($sock, false); if ($sock === false) { echo "Socket cannot be created due to error: {$errno}: {$errstr}\n"; $log->debug("Socket cannot be created due to error: {$errno}: {$errstr}\n"); exit(0); } else { echo "Date: " . date("d-m-Y") . "\n"; echo "Connecting to asterisk server.....\n"; $log->debug("Connecting to asterisk server.....\n"); } echo "Connected successfully\n\n\n"; $asterisk = new Asterisk($sock, $server, $port); authorizeUser($username, $password, $asterisk); //keep looping continuosly to check if there are any calls while (true) { //check for incoming calls and insert in the database sleep(2); $incoming = handleIncomingCalls($asterisk, $adb, $version); } fclose($sock); unset($sock); }
function main__asteriskClient() { global $app_strings, $current_user; global $adb, $log; $data = getAsteriskInfo($adb); $errno = $errstr = null; $sock = @fsockopen($data['server'], $data['port'], $errno, $errstr, 1); stream_set_blocking($sock, false); if ($sock === false) { echo "Socket cannot be created due to errno [{$errno}] - {$errstr}"; $log->debug("Socket cannot be created due to errno [{$errno}] - {$errstr}"); exit(0); } echo "Connecting to asterisk server @ " . date("Y-m-d H:i:s") . "\n"; $log->debug("Connecting to asterisk server @ " . date("Y-m-d H:i:s")); echo "Connected successfully\n\n"; $asterisk = new Asterisk($sock, $data['server'], $data['port']); # authorize user first authorizeUser($data['username'], $data['password'], $asterisk); // Keep looping to poll the asterisk events while (true) { // Give some break to avoid server hanging sleep(1); try { $incoming = asterisk_handleEvents($asterisk, $adb, $data['version']); asterisk_IncomingEventCleanup($adb); } catch (Exception $ex) { echo "EXCEPTION: " . $ex->getMessage() . "\n"; } } fclose($sock); unset($sock); }
function startCall() { global $current_user, $adb, $log; require_once 'include/utils/utils.php'; require_once 'modules/PBXManager/utils/AsteriskClass.php'; require_once 'modules/PBXManager/AsteriskUtils.php'; $id = $current_user->id; $number = $_REQUEST['number']; $record = $_REQUEST['recordid']; $result = $adb->query("select * from vtiger_asteriskextensions where userid=" . $current_user->id); $extension = $adb->query_result($result, 0, "asterisk_extension"); $data = getAsteriskInfo($adb); $server = $data['server']; $port = $data['port']; $username = $data['username']; $password = $data['password']; $version = $data['version']; $errno = $errstr = NULL; $sock = fsockopen($server, $port, $errno, $errstr, 1); stream_set_blocking($sock, false); if ($sock === false) { echo "Socket cannot be created due to error: {$errno}: {$errstr}\n"; $log->debug("Socket cannot be created due to error: {$errno}: {$errstr}\n"); exit(0); } $asterisk = new Asterisk($sock, $server, $port); loginUser($username, $password, $asterisk); $asterisk->transfer($extension, $number); //adds to pbx manager addToCallHistory($extension, $extension, $number, "outgoing", $adb); // add to the records activity history addOutgoingcallHistory($current_user, $extension, $record, $adb); }