Я новичок в Nexmo и пытаюсь настроить телефонный звонок. Голосовой вызов инициируется пользователем мобильного приложения Ionic / Cordova через Интернет, и на телефонной сети общего пользования звонит телефон. Вызываемый отвечает, и обе стороны могут говорить и слушать.
Теперь я настроил сервер и смог получить телефон на PSTN для вызова, я могу ответить на него, и я могу использовать NCCO, чтобы передать текст вызываемому абоненту.
Однако я не могу понять, как обращаться с Nexmo на стороне клиента. Как мне установить соединение между приложением и PSTN? Как голосовой обмен отправляется и принимается через Nexmo? Я могу найти только примеры использования Text-to-Speech в документах и Npm Nexmo пакет.
Мой сервер имеет этот код от 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;
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать!
Есть 2 способа сделать это с Nexmo, это действительно зависит от того, знаете ли вы номер телефона устройства с приложением на нем.
Если это так, то вы можете сделать исходящий вызов на каждый телефонный номер из Nexmo и поместить их обоих в простую конференцию (известную как разговор в разговоре NCCO)
https://docs.nexmo.com/voice/voice-api/ncco-reference#conversation
Вам просто нужно убедиться, что имя разговора уникально для этого звонка.
Другой способ сделать это — через прокси-вызов, поэтому приложение запускает URL-адрес «tel:», который содержит номер телефона nexmo, на который звонит клиент, и затем выполняет NCCO, который соединяет вызов с номером назначения.
Зависит от того, каков ваш вариант использования, какая модель будет работать лучше, также в варианте 1 вы будете оплачивать 2 звонка (по одному на каждый телефон), в варианте 2 у вас будет одна стоимость звонка и пользователь приложения с есть другой.
Других решений пока нет …