2017-02-15 66 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以独特的会议名称。 –