使用 Nexmo 的网络浏览器音频通话 PHP Laravel
Web browser audio call using Nexmo PHP Laravel
我想从网络应用程序 (PHP/Laravel) 拨打来自(购买的 Nexmo 号码)的任何手机号码。这就像一个 two-way 通信调用。
该场景假定在 web 应用程序 (PHP/Laravel) 页面中显示呼叫 driver 选项放置呼叫图标。一旦客户点击呼叫图标,然后从(购买的 Nexmo 号码)拨打 driver 号码。
我已经用这个 API 创建了一个调用。
$ncco = [
[
'action' => 'talk',
'voiceName' => 'Joey',
'text' => 'This is a text-to-speech test message.'
]
];
$call = new \Nexmo\Call\Call();
$call->setTo('XXXXXXXXXXXX')
->setFrom('XXXXXXXXXXXX')
->setNcco($ncco);
$response = $client->calls()->create($call);
echo $response->getId();
Nexmo Voice API 此处 one-way 通信仅对我有效。例如,文本到语音呼叫对我有用,上面的语音 API 代码 运行 呼叫自动到达目的地号码(购买的 Nexmo 号码)。
有人做过这个场景吗?当您单击 phone 图标时,它会呼叫客户 + 您可以使用门户网站与客户交谈?
有两种方法可以解决这个问题。
呼叫桥接
您可以通过让系统呼叫您来将两个号码连接在一起,如果您接听然后呼叫其他人将它们连接起来。这一切都可以在服务器端完成,就像您在上面所做的一样,NCCO 只是略有变化。
$ncco = [
[
'action' => 'connect',
'endpoint' => [
[
'type' => 'phone',
'number' => DRIVER_NUMBER
]
]
]
];
$call = new \Nexmo\Call\Call();
$call->setTo(CUSTOMER_NUMBER)
->setFrom(VONAGE_NUMBER)
->setNcco($ncco);
$response = $client->calls()->create($call);
echo $response->getId();
唯一真正的问题是用户体验。用户可能希望呼叫像真正的 phone 呼叫一样工作(单击按钮,听到铃声,希望驱动程序连接)。您将需要添加一些额外的 NCCO 选项,例如流式传输铃声、检查对方是否拒绝呼叫或从不接听并做出适当响应等,但这可以通过推动一些 NCCO 并观察语音事件来完成。
在Browser/In应用中
另一种选择是我们的Client SDK, which is available for front-end JavaScript, iOS, and Android. This can be used to place a call from a browser or app, and do functionally the same but from within a dedicated interface. A short tutorial can be found at https://developer.nexmo.com/client-sdk/tutorials/app-to-phone/introduction/javascript。
我想从网络应用程序 (PHP/Laravel) 拨打来自(购买的 Nexmo 号码)的任何手机号码。这就像一个 two-way 通信调用。
该场景假定在 web 应用程序 (PHP/Laravel) 页面中显示呼叫 driver 选项放置呼叫图标。一旦客户点击呼叫图标,然后从(购买的 Nexmo 号码)拨打 driver 号码。
我已经用这个 API 创建了一个调用。
$ncco = [
[
'action' => 'talk',
'voiceName' => 'Joey',
'text' => 'This is a text-to-speech test message.'
]
];
$call = new \Nexmo\Call\Call();
$call->setTo('XXXXXXXXXXXX')
->setFrom('XXXXXXXXXXXX')
->setNcco($ncco);
$response = $client->calls()->create($call);
echo $response->getId();
Nexmo Voice API 此处 one-way 通信仅对我有效。例如,文本到语音呼叫对我有用,上面的语音 API 代码 运行 呼叫自动到达目的地号码(购买的 Nexmo 号码)。
有人做过这个场景吗?当您单击 phone 图标时,它会呼叫客户 + 您可以使用门户网站与客户交谈?
有两种方法可以解决这个问题。
呼叫桥接
您可以通过让系统呼叫您来将两个号码连接在一起,如果您接听然后呼叫其他人将它们连接起来。这一切都可以在服务器端完成,就像您在上面所做的一样,NCCO 只是略有变化。
$ncco = [
[
'action' => 'connect',
'endpoint' => [
[
'type' => 'phone',
'number' => DRIVER_NUMBER
]
]
]
];
$call = new \Nexmo\Call\Call();
$call->setTo(CUSTOMER_NUMBER)
->setFrom(VONAGE_NUMBER)
->setNcco($ncco);
$response = $client->calls()->create($call);
echo $response->getId();
唯一真正的问题是用户体验。用户可能希望呼叫像真正的 phone 呼叫一样工作(单击按钮,听到铃声,希望驱动程序连接)。您将需要添加一些额外的 NCCO 选项,例如流式传输铃声、检查对方是否拒绝呼叫或从不接听并做出适当响应等,但这可以通过推动一些 NCCO 并观察语音事件来完成。
在Browser/In应用中
另一种选择是我们的Client SDK, which is available for front-end JavaScript, iOS, and Android. This can be used to place a call from a browser or app, and do functionally the same but from within a dedicated interface. A short tutorial can be found at https://developer.nexmo.com/client-sdk/tutorials/app-to-phone/introduction/javascript。