Twilio 修改实时通话状态

Twilio 修改实时通话状态,twilio,Twilio,我想使用twilio的RESTAPI修改它的实时调用状态。我已列出所有可用的排队电话号码,希望将callStatus从queued修改为call in progress或ringing。如何获取此信息 这里是Twilio福音传道者 您可以使用RESTAPI对队列中等待的特定调用进行出列。要做到这一点,您必须使用Members资源。作为HTTP请求的一部分,您传入一个Url参数。这样做会告诉Twilio将该调用重定向出队列,向该Url发出请求,然后开始执行返回的TwiML $member = $c

我想使用twilio的RESTAPI修改它的实时调用状态。我已列出所有可用的排队电话号码,希望将callStatus从queued修改为call in progress或ringing。如何获取此信息

这里是Twilio福音传道者

您可以使用RESTAPI对队列中等待的特定调用进行出列。要做到这一点,您必须使用Members资源。作为HTTP请求的一部分,您传入一个Url参数。这样做会告诉Twilio将该调用重定向出队列,向该Url发出请求,然后开始执行返回的TwiML

$member = $client->account->queues->get('QU5ef8732a3c49700934481addd5ce1659')->members->get("CA5ef8732a3c49700934481addd5ce1659");
$member->update(array(
    "Url" => "http://demo.twilio.com/docs/voice.xml",
    "Method" => "POST"
));
现在,要发出此请求,您需要知道要使用的队列的SID以及要重定向的队列成员的CallSid

让我们一起来了解这两个值

查找队列SID

获取队列SID的方法有很多种。如果使用REST API创建队列,则每次应用程序执行以下操作时,都可以保存队列SID:

或者,您可以使用。例如,在这里,我使用REST API获取列表,循环它们并打印当前平均等待时间:

// Loop over the list of queues and echo a property for each one
foreach ($client->account->queues as $queue) {
    echo $queue->average_wait_time;
}
如果您想通过使用特定队列的友好名称来查找该队列,可以将其修改为循环以查看每个队列的名称

// Loop over the list of queues and echo a property for each one
foreach ($client->account->queues as $queue) {
    echo $queue->friendly_name;
}
在本例中,我只是简单地打印出每个队列的友好名称

// Loop over the list of queues and echo a property for each one
foreach ($client->account->queues as $queue) {
    echo $queue->friendly_name;
}
查找CallSid

获得队列SID后,接下来需要获取要重定向的呼叫的CallSid。有不同的方法可以做到这一点

您可以使用Members资源列出该队列中等待的所有呼叫:

foreach ($client->account->queues->get('QU5ef8732a3c49700934481addd5ce1659')->members as $member) {
    echo $member->CallSid;
}
每个成员资源都为您提供有关该成员的一些信息,包括CallSid

如果您不知道特定呼叫的CallSid,并且希望根据呼叫者电话号码之类的信息来定位呼叫,则可以使用calls资源:

$call = $client->account->calls->getIterator(0, 50, array(
    "Status" => "in-progress",
    "From" => "+15555555555"));
$callsid = $call->CallSid;
在这里,我要求Twilio返回一个呼叫资源,其From电话号码为+1555555”,状态为“进行中”,然后获取呼叫CallSid的呼叫资源

重定向排队的呼叫者

现在我已经有了队列SID和CallSid,我可以将调用者重定向出队列并转到另一个体验:

$member = $client->account->queues->get('QU5ef8732a3c49700934481addd5ce1659')->members->get("CA5ef8732a3c49700934481addd5ce1659");
$member->update(array(
    "Url" => "http://demo.twilio.com/docs/voice.xml",
    "Method" => "POST"
));

希望这能有所帮助。

你的意思是将电话从队列中移开以给某人打电话吗?还有,你使用的是什么语言-PHP、Java、Ruby等?实际上,我指的是在队列中的入站电话的情况下。如果接收者忙,那么我的电话会被正确地放在队列中。我列出了所有可用的入站排队电话号码。如果有五个队列中的电话号码,如呼叫者1电话号码、呼叫者2电话号码、呼叫者3电话号码、呼叫者4电话号码和呼叫者5电话号码。因此,我想拿起队列中的任何一个电话号码与她/他通话,并想挂断当前的活动呼叫。还有一件事,入站呼叫没有费率限制。感谢您提供的额外信息o、 我更新了我的答案,希望有你想要的。我正在使用它列出当前的电话号码队列列表。$sid=“AC873be184fe958e352d54b2e20c82be93”;$token=“{{auth_token}”;$client=new Services\u Twilio($sid,$token);//循环调用列表并为每个调用回显一个属性($client->account->calls->getIterator(0,50,数组(“状态”=>“排队”),作为$call){echo$call->from;}这不会给我queueSid。它只给我callSid。但我正在尝试使用获取队列列表,但不会给我当前的队列号。因此,如何同时获取队列sid和callSid。我用获取队列成员的callSid和From号的详细信息展开了回答。