Twilio试图为会议名称设置一个唯一的名称

时间:2017-02-15 03:49:40

标签: php codeigniter twilio twilio-api

大家好我想为我的会议设一个独特的名字。我试过的是使用会话并将用户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控制台中,它说会议无效。

1 个答案:

答案 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;
}

让我知道这是否有帮助。