0

我是 Nexmo 的新手,我正在尝试设置 App-to-Phone 通话。语音呼叫由移动 Ionic/Cordova 应用程序的用户通过互联网发起,电话在 PSTN 上响铃。被叫接听,双方可以说和听。

现在我已经设置了服务器,我可以拨打 PSTN 上的电话,我可以接听它,我可以使用 NCCO 向被叫方说文本。

但是,我无法弄清楚如何在呼叫者客户端处理 Nexmo。如何在应用程序和 PSTN 之间建立连接?语音交换如何通过 Nexmo 发送和接收?我只能在文档和npm nexmo包中找到使用 Text-to-Speech 的示例。

我的服务器有来自 Nexmo文档的代码:

 <?php

include 'application_generate_jwt.php';

//Connection information
$base_url = 'https://api.nexmo.com' ;
$version = '/v1';
$action = '/calls';

//User and application information
$application_id = "id-for-your-voice-application";

//Mint your JWT
$keyfile="application_secret_key.txt";

$jwt = generate_jwt($application_id, $keyfile);

//Add the JWT to the request headers
$headers =  array('Content-Type: application/json', "Authorization: Bearer " . $jwt ) ;

//Change the to parameter to the number you want to call
$payload = '{
    "to":[{
        "type": "phone",
        "number": "441632960961"
    }],
    "from": {
        "type": "phone",
        "number": "441632960960"
    },
    "answer_url": ["https://nexmo-community.github.io/ncco-examples/first_call_talk.json"]
}';

//Create the request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $base_url . $version . $action);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);

$response = curl_exec($ch);

echo $response;

如果需要更多信息,请告诉我!

4

1 回答 1

1

使用 Nexmo 有 2 种方法可以做到这一点,这实际上取决于您是否知道带有应用程序的设备的电话号码。

如果是这样,那么您可以从 nexmo 向每个电话号码进行出站呼叫,并将它们都放入一个简单的会议(在 NCCO 演讲中称为对话) https://docs.nexmo.com/voice/voice-api/ncco- reference#conversation 您只需要确保对话的名称对于该呼叫是唯一的。

另一种方法是通过代理调用,因此应用程序启动一个“tel:”url,其中包含客户端呼叫的 nexmo 电话号码,然后执行将呼叫连接到目标号码的 NCCO。

这取决于您的用例是什么,哪种模型最适合,同样在选项 1 中,您将承担 2 次通话的费用(每部电话一个),在选项 2 中,您将有一次通话费用,并且应用程序的用户使用有另一个。

于 2016-10-16T21:15:50.883 回答