2017-02-21 26 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 я переадресация вызова с помощью метода обновления и набора другого агента с помощью этого code-

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> 

и для отключения вызова я назвал этот метод и передал callid-

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 сразу после передачи, и вы используете тот же сид для обоих. Это означает, что вы передаете вызов, который зависает от первого агента, но затем вы мгновенно повесите переданный вызов, чтобы он никогда не вызывал второго агента.

Вам не нужно отключать первого агента, а передача вызова от них будет выполнена. Удалите свой вызов до disconnect_child и повторите попытку.

+0

Я тоже это пробовал, но он не отключает агент1 от вызова. –

+0

Что происходит с первым агентом? Куда они идут? Что они слышат? – philnash

+0

Это начало перечисления музыки из ' music_url', которая используется, когда агент1 выдает запрос в первый раз. –