/**
 * 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);
}
Esempio n. 3
0
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);
}