2017-02-27 3 views
0

Ich versuche, einen laufenden Anruf an einen anderen Arbeiter zu übertragen, aber bevor ich den Anrufer übertragen kann. Zuerst muss ich den Anrufer halten und den gewünschten Mitarbeiter anrufen, wenn er/sie verfügbar ist. Das Problem ist, dass wenn ich den gewünschten Worker anrufe, der Anrufer automatisch auflegt.Wie man einen anderen Arbeiter anruft, wenn ich einen laufenden Anruf mit Twilio habe

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); 
} 

Und dies ist mein Code, wo ich die anderen Agenten hier

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

Bereits geschlossen. – Frncs

Antwort

0

Twilio Entwickler Evangelist nennen.

Das Problem, das Sie haben, ist, dass, wenn Sie ein Bein des Anrufs umleiten, das andere Bein des Anrufs getrennt wird und keine anderen Aktionen von ihrem TwiML ausführen muss, also auflegt, wie der Anruf für sie abgeschlossen ist.

Es gibt eine Reihe von Möglichkeiten, dies zu umgehen. Während Sie versuchen, wie eine warme Übertragung von einem Agenten zu einem anderen zu klingen, dann empfehle ich Ihnen, dieses Tutorial auf warm transfers in PHP zu lesen. Es ist für Laravel geschrieben, aber ich bin mir sicher, dass du es in Codeigniter übersetzen könntest.

Kurz gesagt, das Tutorial verwendet <Conference> anstatt Caller mit <Number> zu verbinden, so dass die Verbindung nicht unterbrochen wird. Anstatt einen Anruf weiterzuleiten, können Sie den Anrufer halten und einen anderen Agenten in die Konferenz einladen, den Anruf halten und ihn weiterleiten, wenn beide Agenten bereit sind.

Lassen Sie mich wissen, wenn das hilft.

Verwandte Themen