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

Twilio trying to have a unique name for conference name

大家好,我正在尝试为我的会议起一个独特的名称。我尝试过的是使用 session 并将用户 ID 放入会议中,但不幸的是我失败了。该函数不会读取我的 session 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"
    ));
}

这是我创建会议名称的代码,这是我的问题,因为我正在使用 session。

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

在调试器的我的 twilio 控制台中,它说会议无效。

这里是 Twilio 开发人员布道者。

看起来你是 forwarding a user's call into a conference。我在您的 forward_queue_conference 方法中看到有两件事会导致它不起作用。

首先,Twilio 正在向您的服务器发出 HTTP 请求,因此不太可能登录并获得 user_id

其次,据我所知,您没有return使用 TwiML 参加会议。您正在使用一个函数 CallerToQueue,我不知道它似乎不属于 Twilio 文档的一部分。

要修复第一部分,如果是您的用户触发了会议转移,那么您可以将用户 ID 添加到重定向呼叫所用的 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 和我 just read that getting query string parameters from requests is a pain 所以我会把那个留给你。

从请求中获得房间名称后,您需要return将其作为 TwiML。同样,我不确定你为此使用的是哪个库,但如果我使用的是官方 Twilio PHP library,它看起来有点像这样:

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

如果有帮助请告诉我。