Приложение для телефонного звонка Nexmo

Я новичок в Nexmo и пытаюсь настроить телефонный звонок. Голосовой вызов инициируется пользователем мобильного приложения Ionic/Cordova через Интернет, и на PSTN звонит телефон. Вызываемый отвечает, и обе стороны могут говорить и слушать.

Теперь я настроил сервер и смог получить телефон на 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;

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать!

1 ответ

Есть 2 способа сделать это с Nexmo, это действительно зависит от того, знаете ли вы номер телефона устройства с приложением на нем.

Если это так, то вы можете сделать исходящий вызов на каждый телефонный номер из nexmo и поместить их обоих в простую конференцию (известную как разговор в разговоре NCCO) https://docs.nexmo.com/voice/voice-api/ncco-reference Вам просто нужно убедиться, что имя разговора уникально для этого звонка.

Другой способ сделать это - через прокси-вызов, поэтому приложение запускает URL-адрес "tel:", который содержит номер телефона nexmo, на который звонит клиент, и затем выполняет NCCO, который соединяет вызов с номером назначения.

Зависит от того, каков ваш вариант использования, какая модель будет работать лучше, также в варианте 1 вы будете оплачивать 2 звонка (по одному на каждый телефон), в варианте 2 у вас будет одна стоимость звонка, а пользователь приложения с есть другой.

Другие вопросы по тегам