2017-02-27 26 views
0

通話を転送する前に、別のワーカーに通話を転送しようとしています。まず、発信者を保留にして、希望の勤務者に電話が必要な場合は電話をかける必要があります。問題は、私が希望の労働者に電話すると、発信者が自動的にハングアップすることです。twilioを使用して通話中に他のワーカーを呼び出す方法

public function transferToAgent(){ 
    $client = $this->init_client(); 
    $call = $client->account->calls->get($_POST["CallSid"]); 
    $call->update(array(   
     "Url" => HTTP_BASE_URL."agent/call_controls/forward_agent?data=".$_POST['agentname'], 
     "Method" => "POST" 
    )); 
} 
public function forward_agent(){ 
    $agentname = $_GET['data']; 
    $this->gabbyvilletwilio->AgentTransfer($agentname); 
} 

そして、これは私がここに他のエージェント

function AgentTransfer($agentname){ 
    $response = new Services_Twilio_Twiml; 
    $response->say(
     'Your call is now being transferred to your desired agent.', 
     ['voice' => 'alice', 'language' => 'en-GB'] 
    ); 
    $dial = $response->dial(); 
    $dial->client($agentname); 
    print $response; 
} 
+0

既に閉じられています。 – Frncs

答えて

0

Twilioの開発者エバンジェリストを呼び出す私のコードです。

問題は、コールの一方のレッグをリダイレクトすると、コールのもう一方のレッグが切断され、TwiMLから実行する他のアクションがないため、コールが完了したときに電話が切れます。

これを回避するにはいくつかの方法があります。あるエージェントから別のエージェントへの暖かい転送のようなサウンドを試すときは、warm transfers in PHPでこのチュートリアルを読むことをお勧めします。それはLaravelのために書かれていますが、私はあなたがCodeigniterに翻訳できると確信しています。

簡潔に説明すると、チュートリアルでは、接続が切断されないように<Number>で発信者を接続するのではなく、<Conference>を使用します。次に、コールをリダイレクトする代わりに、発信者を保留にして、別のエージェントを会議に招待し、両方のエージェントが準備ができたときに発信者を保留して転送することができます。

それが役立つかどうか教えてください。

関連する問題