大家好我想为我的会议设一个独特的名字。我试过的是使用会话并将用户ID放在会议中但不幸的是我失败了。该函数不会读取我的会话ID。这是我的代码,用于将呼叫者转移到会议。顺便说一句,我使用codeigniter作为我的框架。
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 call conference just read that getting query string parameters from requests is a pain。我在forward_queue_conference
方法中可以看到的两件事情会导致这种情况无效。
首先,Twilio正在向您的服务器发出HTTP请求,因此不太可能登录并拥有user_id
。
其次,据我所知,你不会让TwiML进入会议。您正在使用我不了解的功能CallerToQueue
,而且似乎并不是Twilio文档的一部分。
要修复第一部分,如果您的用户正在触发移动到会议,那么您可以将用户ID添加到您重定向呼叫的网址中。
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和Twilio PHP library标记了问题,所以我会留下你。
一旦您从请求中获得了roomName,您需要将其作为TwiML返回。同样,我不确定您使用的是哪个库,但如果我使用官方Get screen dimensions in pixels,它看起来会像这样:
public function forward_queue_conference()
{
$roomName = getRoomNameFromQueryStringSomehow();
$response = new Twiml;
$dial = $response->dial();
$dial->conference($roomName);
$response;
}
让我知道这是否有帮助。