2017-02-15 86 views
0

嗨,大家好,我正嘗試爲我的會議設置一個獨特的名稱。我試過的是使用會議,並把用戶ID在會議中,但不幸的是我失敗了。該函數不會讀取我的會話ID。這是我的代碼,用於將主叫方轉接到會議。順便說一句,我使用codeigniter作爲我的框架。Twilio試圖爲會議名稱設置一個唯一的名稱

public function redirect_queue_conference() 
{ 
    $client = $this->init_client(); 
    $call = $client->account->calls->get($_POST["CallSid"]); 
    $call->update(array(
     "Url" => HTTP_BASE_URL."agent/call_controls/forward_queue_conference", 
     "Method" => "POST" 
    )); 
} 

這是我創建會議名稱的代碼,這是我的問題,因爲我使用會話。

public function forward_queue_conference() 
{  
    $roomName = $this->session->userdata('user_id'); 
    $this->twilio->CallerToQueue($roomName); 
} 

在調試器中的我的twilio控制檯中,它表示會議無效。

+0

沒有足夠的信息在這裏爲您提供任何幫助......我完全不知道您的描述中的「會議」是什麼,並且您正在調用未顯示的方法。正確提出問題會讓你得到及時的迴應。 –

回答

0

Twilio開發人員傳道士在這裏。

它看起來像是你forwarding a user's callconference。我可以在你的forward_queue_conference方法中看到兩件事情,這會導致這種情況不起作用。

首先,Twilio正在向您的服務器發送HTTP請求,因此不太可能登錄並且有user_id

其次,就我所知,你並沒有返回TwiML進入會議。您正在使用我不知道的函數CallerToQueue,似乎並不是Twilio文檔的一部分。

要修復第一部分,如果是您的用戶正在觸發移動到會議,那麼您可以將用戶標識添加到您重定向呼叫的URL中。

public function redirect_queue_conference() 
{ 
    $roomName = $this->session->userdata('user_id'); 
    $client = $this->init_client(); 
    $call = $client->account->calls->get($_POST["CallSid"]); 
    $call->update(array(
     "Url" => HTTP_BASE_URL."agent/call_controls/forward_queue_conference?room=".$roomName, 
     "Method" => "POST" 
    )); 
} 

然後,您可以從稍後的請求中獲得該請求。我會爲此編寫代碼,但是我看到你已經標記了Codeigniter和I just read that getting query string parameters from requests is a pain的問題,所以我會留給你。

從請求中獲得roomName後,需要將其作爲TwiML返回。同樣,我不知道你正在使用的庫,但如果我用的是官方Twilio PHP library它看起來有點像這樣:

public function forward_queue_conference() 
{  
    $roomName = getRoomNameFromQueryStringSomehow(); 
    $response = new Twiml; 
    $dial = $response->dial(); 
    $dial->conference($roomName); 
    $response; 
} 

讓我知道這是否有助於在所有。

+0

這工作,但我仍然有問題,在twilio中的CALLBACK URL我需要發送身份證也在該網址。 –

+0

你能詳細說一下嗎?這裏的整個呼叫流程是什麼? – philnash

+0

,因爲下面的代碼會將呼叫者轉移到因您的幫助而正常工作的會議。我現在需要的是將工作人員轉移到會議,並使用工人ID以獨特的會議名稱。 –