Например, -> Если агент A звонит пользователю, и теперь агент A передает звонок агенту B, как я могу отключить агента A от звонка и позволить пользователю и B продолжать разговор.
1. Когда я звоню, я использую этот TwiML.
<Response>
<Dial callerId="id">
<Number statusCallback="statusCallbackurl" statusCallbackMethod="POST">ag1_num</Number>
</Dial>
<Redirect>music_url</Redirect>
</Response>
2. Я передаю вызов, используя метод обновления, и набираю другого агента, используя этот код -
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;
}
а на tr_url я использовал TwiML-
<Response>
<Dial>ag2_num</Dial>
<Redirect>disconnectedcallurl-usingemptyqueue(todisconnectthefirstagent)</Redirect>
</Response>
и чтобы отключить вызов, я вызвал этот метод и передал вызовы id-
function disconnect_call($callsid){
$rr = array("status" => "completed");
$call = $this->client->calls($callsid)->update($rr);
echo $call->direction;
}
Я использую идентификатор вызова, чтобы отключить агента от вызова, и он отключит весь вызов.
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); $this->disconnect_call($childSid ); }
. - person Aman Singh   schedule 21.02.2017