0

TwilioREST APIを使用するConferenceと、発信者と担当者の間で通話を作成できます。担当者は、* または 0 を押して退出および再参加できます。

担当者が * を押すConferenceと、担当者側のスクリプト内で担当者が から削除され、顧客が何を必要としているのかを確認できるバックエンドに移動します。担当者が 0 を押して再度参加するまで、Conference発信者は空のままになります。Conference

担当者が内で電話を切った場合Conference、コールバック " $_POST['CallStatus'] = completed" が行われます。これにより、スクリプトは開いているすべてConferenceの を終了することを認識し、待機中の発信者をメイン メニューにリダイレクトします。

Conference ただし、 (バックエンドを使用して、発信者が待機している間に)外で担当者が電話を切った場合、同じコールバックは行われません。

REST API担当者への電話が切れたことを示す変数は何ですか? またはだと思っていましたが、両方をリッスンしましたが、担当者の側で切断時のコールバックを生成できませんでした。$_POST['CallStatus']$_POST['DialCallStatus']

次の変数は、Calls.xml経由で に送信されREST APIます。

From => $from

To => $to

Url => $script_url

StatusCallback => $callback_url

StatusCallbackEvent => array( "initiated", "ringing", "answered", "completed" )

$callback_url動作し、検出しますが、検出$_POST['CallStatus'] = in-progressしませんcompleted。(担当者が会議中に電話を切らない限り、意図したとおりに機能します)

通話機能

class Call
{
    var $url    = 'https://api.twilio.com/2010-04-01/Accounts/XXXXXX/Calls.xml';
    var $from   = '+1XXXXXX';

    function dial( $number, $script, $callback = false )
    {
        $switch = 'http://XXXXXX.com/' . $script . '.php';

        $post = array( 'From' => $this->from, 'To' => $number, 'Url' => $switch );

        if ( $callback )
        {
            $post['StatusCallback'] = $callback;
            $post['StatusCallbackEvent'] = array( "initiated", "ringing", "answered", "completed" );
        }   

        $curl = curl_init();

        curl_setopt( $curl, CURLOPT_URL, $this->url );
        curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
        curl_setopt( $curl, CURLOPT_VERBOSE, 1 );
        curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, 0 );
        curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, 1 );
        curl_setopt( $curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
        curl_setopt( $curl, CURLOPT_USERPWD, 'XXXXXX:XXXXXX' );

        if ( $post )
        {
            $data = array();

            foreach ( $post as $property => $value )
            {
                array_push( $data, $property . '=' . $value );
            }

            curl_setopt( $curl, CURLOPT_POST, 1 );
            curl_setopt( $curl, CURLOPT_POSTFIELDS, implode( '&', $data ) );        
        }

        $page = curl_exec( $curl );

        curl_close( $curl );

        return $page;
    }
}

呼び出し

$call = new Call;
$call->dial( $number, $script, $callback );
4

1 に答える 1

1

Twilio 開発者エバンジェリストはこちら。

動詞の属性completedの性質により、通話中に担当者が電話を切ったときに、ステータスを含むコールバックを取得します。ただし、一度外に出たら、それはもうありません。action<Dial><Dial>

ただし、これを行う方法があります!コール プログレス イベントを受信するように設定する必要があります。待機中から完了まで、コールが通過するさまざまなイベントの Webhook を受信するように登録できます。これらは、REST API から呼び出しを生成するときにパラメータStatusCallbackStatusCallbackEventパラメータを使用して登録できます。通話が終了すると、<Dial>.

于 2016-08-16T09:25:57.560 に答える