我正在尝试在拨打和接听电话后启用对菜单的访问权限。例如,座席拨打号码,该号码使用动词发出呼叫。在该呼叫期间,被呼叫的人要求转移到不同的代理,分机或队列。我已经阅读过关于将呼叫召入会议并使用hangupOnStar属性将该呼叫置于保持状态并为代理提供一个菜单以进一步操纵呼叫但未成功的内容。似乎按“*”按钮结束了呼叫,因此DialCallSid属于一个无法更新的已完成呼叫。
答案 0 :(得分:0)
我原来是以错误的方式解决这个问题。这是一个外拨电话,所以我能够成功创建一个"保持"会议,使用REST API拨打呼叫者,然后将呼叫者添加到会议。我还能够利用hangupOnStar属性来启用会议并进入菜单。
以下是我的第一个函数中的代码:
public function makeOutboundConference(Request $request) {
$sid = "ACxxxxxxxxxxxxxxxxxxxxxxxxx";
$token = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
$response = new Twiml();
$dial = $response->dial(
[
'hangupOnStar' => true,
'action' => 'url-to-incall-menu',
'method' => 'POST'
]
);
$dial->conference("On Hold",
[
'beep' => false,
]
);
$client = new Client($sid, $token);
try {
$call = $client->calls->create(
$to,
$callerId,
array('url' => 'fq-url-to-connect-caller')
);
} catch (Exception $e) {
error_log("Error: " . $e->getMessage());
}
return $response;
}
和我的第二个功能是将被呼叫的人添加到会议中:
public function showConnectCaller(Request $request) {
$response = new Twiml();
$dial = $response->dial();
$dial->conference(
"On Hold",
[
'record' => 'record-from-start',
'beep' => false,
'endConferenceOnExit' => true,
]
);
return $response;
}