2017-02-21 7 views
0

Eg->エージェントAがユーザに電話をかけ、エージェントAがエージェントBにコールを転送すると、エージェントAをコールから切断する方法ユーザーとBには依然として通話が行われます。Twilioエージェントがコールを別のエージェントに転送したときにコールを切断する方法

1.私はこのTwiMLを使用して呼び出します。

<Response> 
     <Dial callerId="id"> 
      <Number statusCallback="statusCallbackurl" statusCallbackMethod="POST">ag1_num</Number> 
     </Dial> 
     <Redirect>music_url</Redirect> 
    </Response> 

2.I updateメソッドを使用してコールを転送し、これを使用することにより、他のエージェントをダイヤルしていますが

function transfer_call($Sid,&ag2_num){ 
    $childCalls = $this->client->calls->read(array("ParentCallSid" => $Sid)); 
    $childSid = $childCalls[0]->sid; 
    $rr = array(
     "url" => "tr_url".$ag2_num, 
     "method" => "POST" 

    ); 
    $call = $this->client->calls($childSid)->update($rr); 
    return $call->to; 

} 

と私はTwiML-

<Response> 
    <Dial>ag2_num</Dial> 
    <Redirect>disconnectedcallurl-usingemptyqueue(todisconnectthefirstagent)</Redirect> 
</Response> 

を使用tr_url上のコード - 私はこのメソッドを呼んで呼び出しを切断するために、コールIDを渡します。

function disconnect_call($callsid){ 
     $rr = array("status" => "completed"); 

     $call = $this->client->calls($callsid)->update($rr); 
     echo $call->direction; 
    } 

私は、コールからエージェントを切断するためにsidコールを使用し、コール全体を切断します。

+0

もう少しコードを共有できますか? – philnash

+0

さて、私は私の質問に追加します。 –

+0

コールの相手先をリダイレクトすると、ダイヤルされた第1のエージェントはハングアップするだけです。それは起こっていないのですか? – philnash

答えて

0

ここではTwilioの開発者エバンジェリストです。

コメントでは、転送の直後にdisconnect_callメソッドを使用していて、両方に同じsidを使用しているとします。つまり、最初のエージェントからハングアップしたコールを転送しますが、転送されたコールもすぐにハングアップするので、2番目のエージェントは決して呼び出されません。

最初のエージェントを切断する必要はありません。離れたところからコールを転送すると、そのエージェントが切断されます。 disconnect_childに電話を外して、もう一度お試しください。

+0

私もそれを試しましたが、エージェント1をコールから切断しません。 –

+0

最初のエージェントはどうなりますか?彼らはどこに行くのですか?彼らは何を聞きますか? – philnash

+0

エージェント1が初めて電話をかけたときに使用される「 music_url」の音楽のリストを表示します。 –

関連する問題