コード例 #1
0
ファイル: controller.php プロジェクト: netconstructor/yaai
function SendAMICommand($amiCmd, &$status = true)
{
    global $sugar_config;
    $server = $sugar_config['asterisk_host'];
    $port = (int) $sugar_config['asterisk_port'];
    $Username = "******" . $sugar_config['asterisk_user'] . "\r\n";
    $Secret = "Secret: " . $sugar_config['asterisk_secret'] . "\r\n";
    $context = $sugar_config['asterisk_context'];
    $socket = fsockopen($server, $port, $errno, $errstr, 20);
    if (!$socket) {
        echo "couldn't connect ({$errno}): {$errstr} <br>\n";
    } else {
        // log on to Asterisk
        fputs($socket, "Action: Login\r\n");
        fputs($socket, $Username);
        fputs($socket, $Secret);
        fputs($socket, "\r\n");
        $response = ReadResponse($socket);
        echo "Login Response: \n";
        echo $response;
        $status = $status && WasAmiCmdSuccessful($response);
        if ($status) {
            fputs($socket, $amiCmd);
            $response = ReadResponse($socket);
            echo "\nAMI Comand Response: \n";
            echo $response;
            $status = $status && WasAmiCmdSuccessful($response);
            fputs($socket, "Action: Logoff\r\n\r\n");
            fputs($socket, "\r\n");
            $response = ReadResponse($socket);
            echo "\nLogout Response: \n";
            echo $response;
            // Don't really care if logoff was successful;
            //$status = $status && WasAmiCmdSuccessful( $response );
        }
        sleep(1);
        fclose($socket);
    }
}
コード例 #2
0
ファイル: callCreate.php プロジェクト: nitouser/yaai
    // dial number
    fputs($socket, "Action: originate\r\n");
    fputs($socket, "Channel: " . $channel . "\r\n");
    fputs($socket, "Context: " . $context . "\r\n");
    fputs($socket, "Exten: " . $number . "\r\n");
    fputs($socket, "Priority: 1\r\n");
    fputs($socket, "Callerid:" . $_REQUEST['phoneNr'] . "\r\n");
    fputs($socket, "Account: CLICKTODIAL-" . formatPhoneNumberToE164($_REQUEST['phoneNr']) . "-" . $_REQUEST['module'] . "-" . $_REQUEST['contactId'] . "\r\n");
    fputs($socket, "Variable: CALLERID(number)=" . $extension . "\r\n\r\n");
    // You will not get an originate response unless you wait for the phone to be answered... so it's impractical to wait.
    // but, if there is a permission issue it will fail almost immediately with permission denied.
    $result = ReadResponse($socket, 10000000);
    echo "Originate Response: " . $result . "\n";
    fputs($socket, "Action: Logoff\r\n\r\n");
    fputs($socket, "\r\n");
    $result = ReadResponse($socket);
    echo "Logout Response: " . $result;
    gitimg_log("click-to-dial");
    //var_dump($result);
    //var_dump($channel);
    //var_dump($context);
    //var_dump($number);
    //sleep(1);
    // close socket
    fclose($socket);
}
/**
 * Read the socket response
 *
 * @param object $socket Socket
 * @param int $timeout in uS, default is 500000 (1/2 a second)