我正在尝试通过 Twilio 任务路由器设置传出呼叫。我正在通过 PHP 创建具有所有必要属性(instruction、to、from、post_work_activity_sid)的任务,但创建的任务没有在 twilio 客户端和外部电话号码之间建立呼叫。我希望程序创建的任务能够在工作人员(浏览器)和外部客户端之间创建电话会议。我不断收到如下所示的错误。我在我的应用程序服务器上有一个分配 php,它使对我的工作人员(浏览器客户端)的调用出队。目前,通过任务路由器从外部号码到浏览器客户端的来电正在按预期工作。但是,出站调用会生成一个任务并分配一个预留,但 Twilio 无法将调用出队到工作人员。有没有办法为语音呼叫创建任务,以便使用 Twiml Enqueue 动词创建任务?或者是否有更好的方法使用 Twilio taskrouter 处理出站呼叫,以便使用浏览器客户端将呼叫成功分配给工作人员?
根据此线程:Can outbound call be made through Twilio TaskRouter,我尝试使用指令调用。我还浏览了文档和另一篇关于赋值回调 URL 的堆栈溢出帖子,但不清楚并且不确定我可能会做什么错误的。
错误消息:出队指令只能在使用 TwiML 动词创建的任务上发出
<?php
require_once('TwilioVendor/autoload.php'); // Loads the library
use Twilio\Rest\Client;
$sid = "ACxxxxxxxxxxxxxxxxxxxxxxx";
$token = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
try{
$twilio = new Client($sid, $token);
$task = $twilio->taskrouter->v1-
>workspaces("WSxxxxxxxxxxxxxxxxxxxxxxxxxxxx")->tasks-
>create(array("attributes" => json_encode(array(
//"instruction"=>"accept",
//"instruction"=>"conference",
"instruction"=>"call",
"to"=> "client:Bob",
"from"=> "+61123456789",
"post_work_activity_sid"=> "WAxxxxxxxxxxxxxxxxxxxx"
)),
"workflowSid" => "WWxxxxxxxxxxxxxxxxxx"
)
);
}catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage(), "\n";
}
print($task->sid);
**Assignment Callback code**
<?php
$assignment_instruction = [
'instruction' => 'call','to'=> 'client:Bob',
'from' => '+61xxxxx','url'=>'CRM REST END POINT'
];
header('Content-Type: application/json');
echo json_encode($assignment_instruction);
**CRM REST END POINT TWIML**
<?php
require __DIR__ . '/vendor/autoload.php';
require_once 'TwilioVendor/autoload.php';
use Twilio\Twiml;
$reservationSid= $_REQUEST['rsid']
header('Content-Type: text/xml');
?>
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say voice="woman">You will now be connected to the customer</Say>
<Dial>
<Queue reservationSid="<?$reservationSid?>"/>
</Dial>
</Response>
青春有我