应用到电话Nexmo

时间:2016-10-13 11:23:47

标签: php cordova ionic-framework nexmo

我是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;

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

1 个答案:

答案 0 :(得分:1)

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

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

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

这取决于您的用例是哪种型号最适合的,同样在选项1中您将承担2个呼叫的费用(每个电话一个),在选项2中您将拥有一个呼叫费用和用户有另一个的应用程序。