基本上,我正在尝试实现两方之间在其手机号码上的通话。我正在使用PHP laravel。
每个代理商都有各自的表格来收集访客的电话号码。
通过访问者填写代理人表格时。
我希望Twilio API首先调用该代理。
如果座席收到呼叫,则应使用访客的电话号码进行呼叫。
并连接这两方。
就这样
$client = new Client($AccountSid, $AuthToken);
try {
$call = $client->account->calls->create($agent_number, $twilio_number,
array("url" => $url)
);
echo "Started call: " . $call->sid;
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
它呼叫座席的电话号码..但这是我想要的 座席接到电话后,便应拨打访客的电话号码。
我在这里更新了代码。
Route::get('call', function() {
$AccountSid = 'SID HERE';
$AuthToken = 'AUTH TOKEN HERE';
$twilio_number = "TWILIO NUMBER HERE";
$agent_number = "AGENT NUMBER HERE";
$visitor_phone = urlencode(str_replace(' ','','VISITOR NUMBER HERE'));
$host = parse_url(Request::url(), PHP_URL_HOST);
$client = new Client($AccountSid, $AuthToken);
try {
$call = $client->account->calls->create($agent_number, $twilio_number,
array(
"url" => "http://$host/outbound/$visitor_phone"
)
);
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
});
Route::get('/outbound/{visitor_phone}', function($visitor_phone) {
$sayMessage = 'Thanks for contacting our sales department. Our
next available representative will take your call.';
$twiml = new Twiml();
$twiml->say($sayMessage, array('voice' => 'alice'));
$twiml->dial($visitor_phone);
$response = Response::make($twiml, 200);
$response->header('Content-Type', 'text/xml');
return $response;
});
在我的TWILIO webhook中,我有
website.com/outbound/visitor_number HTTP GET REQUEST
我可以收到我的出站消息 感谢您与我们的销售部门联系。我们的下一任代表将接您的电话。但此后不会浪费访客人数。只是断开了通话。
答案 0 :(得分:1)
这里是Twilio开发人员的传播者。
您更新的代码似乎与我认为的需要非常接近。您可以按自己的方式向座席打出电话,然后设置一个Webhook URL,以使用TwiML继续拨打访问者的电话号码。
我不太了解Laravel,但是我想知道如何处理路径中的参数,
您有:
Route::get('/outbound', function($visitor_phone) {
但是routing docs说,您需要定义URL参数在路径中出现的位置。因此,对我来说,您似乎需要这样的路线:
Route::get('/outbound/{visitor_phone}', function($visitor_phone) {
检查一下,看看是否有帮助。如果没有,我想您会在Laravel应用程序和电话中遇到错误,因此也可以看到该错误。
答案 1 :(得分:0)
这来自 Twillio 的官方网站。我认为您可以通过执行Autopilot Call来做到这一点。
自动驾驶使用自然语言理解(NLU)来检测什么 用户说出来并将其与“任务”匹配。任务可以编程为 收集数据,回答问题或与其他用户建立呼叫。他们 经过培训可以识别用户可能表达的不同短语或方式 给定的任务。
或使用twilio的热传递功能。
热传递消除了此问题。使用Twilio供电的暖气 转移,您的代理人就可以将其他人添加到 正在通话中,以提供无缝的客户体验。
答案 2 :(得分:0)
您可以在Twilio网站上查看点击通话示例,还有一个PHP / Laravel示例:
Build Click-to-Call into your Web Application
您可以修改上面的示例以返回Twilio号码名词URL(和Gather动词)以为座席提供耳语功能,因此他们可以选择是否接受呼叫。