我是Nexmo的新手,我正在尝试建立一个App-to-Phone呼叫。语音呼叫由移动Ionic / Cordova应用程序的用户通过互联网发起,并且电话在PSTN上响铃。被叫者回答,双方都能说话和倾听。
现在我已经设置了服务器,我可以通过PSTN拨打电话,我可以回答它,我可以使用NCCO向被叫方说话。
但是,我无法弄清楚如何在呼叫者客户端处理Nexmo。如何在应用程序和PSTN之间建立连接?如何通过Nexmo发送和接收语音交换?我只能在文档和npm nexmo包中找到使用文字转语音的示例。
我的服务器有来自Nexmo docs的代码:
<?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;
如果需要更多信息,请告诉我们!
答案 0 :(得分:1)
使用Nexmo有两种方法可以做到这一点,这取决于你是否知道带有应用程序的设备的电话号码。
如果是这样,那么您可以从nexmo拨打每个电话号码的出站呼叫,并将它们放入一个简单的会议中(在NCCO中称为对话) https://docs.nexmo.com/voice/voice-api/ncco-reference#conversation 您只需确保对话的名称对该呼叫是唯一的。
另一种方法是通过代理呼叫,以便应用程序启动一个'tel:'url,其中包含客户端调用的nexmo电话号码,然后执行将呼叫连接到目标号码的NCCO
这取决于您的用例是哪种型号最适合的,同样在选项1中您将承担2个呼叫的费用(每个电话一个),在选项2中您将拥有一个呼叫费用和用户有另一个的应用程序。