2016-10-13 3 views
0

Nexmo를 처음 사용하고 App-to-Phone 통화를 설정하려고합니다. 음성 통화는 인터넷을 통해 모바일 Ionic/Cordova 앱 사용자가 시작하며 PSTN에서 전화벨이 울립니다. 수신자가 응답하고 양 당사자는 말하고들을 수 있습니다.App-to-Phone 통화 Nexmo

이제 서버를 설정하고 PSTN에서 전화를받을 수있게되었습니다. 응답 할 수 있으며 NCCO를 사용하여 수신자에게 텍스트를 말할 수 있습니다.

그러나 발신자 클라이언트 측에서 Nexmo를 처리하는 방법을 알 수는 없습니다. 앱과 PSTN 간의 연결을 설정하려면 어떻게해야합니까? Nexmo를 통해 음성 교환을 송수신하는 방법은 무엇입니까? docs와 npm nexmo 패키지에서 Text-to-Speech를 사용하는 예제 만 찾을 수 있습니다.

내 서버는 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

현재 Nexmo Voice API는 클라이언트 측 기술이 아닌 서버 측 기술과 함께 작동하도록 제작되었습니다. 따라서 클라이언트 측 앱을 통해 클라이언트에서 호출을 제어 할 수 없습니다. – leggetter

+0

안녕하세요, 저는 통화 흐름이 서버 측에서 처리되는 것을 알고 있습니다. 그러나 Nexmo Voice API를 사용하여 PSTN의 번호로 인터넷을 통해 (내 서버를 통해) 모바일 응용 프로그램 내에서 전화를 걸 수 있습니까? 아니면 SIP를 사용해야합니까? – Thev

답변

1

Nexmo로이 작업을 수행하는 방법은 두 가지가 있습니다. 앱이있는 기기의 전화 번호를 알고있는 경우 실제로 달라집니다. 그래서 다음 nexmo에서 각 전화 번호로 발신 전화를하고 https://docs.nexmo.com/voice/voice-api/ncco-reference#conversation 당신은 단지 확인해야합니다 (말을 NCCO에서 대화로 알려진) 간단한 회의로 모두를 넣을 수 있습니다 경우

그 대화의 이름 그 호출에 고유합니다.

다른 방법은 프록시 호출을 통해 앱이 클라이언트가 호출하는 nexmo 전화 번호가 포함 된 'tel :'url을 실행하므로 호출을 대상에 연결하는 NCCO를 실행합니다. 번호.

귀하의 유스 케이스가 어떤 모델에 가장 적합한 지에 따라 옵션 1에서도 옵션 2에서 2 통화 (각 전화마다 하나씩)의 비용을 부담하게됩니다. 옵션 2에서는 통화 비용이 한 대가 들며 사용자 앱의

+0

안녕하세요. 답변 해 주셔서 감사합니다. 두 번째 옵션 인 프록시 호출에 Nexmo 설명서가 있습니까? 모바일 앱 사용자의 전화 번호는 알 수 없으므로 두 번째 옵션은 유스 케이스에 가장 적합합니다. – Thev

+0

나를 위해 이것을 확인해 주시겠습니까? 두 번째 옵션에서 앱이 Nexmo 번호가 포함 된 'tel'URL을 실행하면 휴대 전화가 내 모바일 앱에서 일반 전화가 걸린 '전화'앱으로 전환되고 사용자가 거기서 나온 넥스 모. 사용자는 인터넷 연결이 아닌 PSTN을 통해 전화하기 때문에 Nexmo 번호로 전화를하면 공급자가 요금을 부과합니다. – Thev

관련 문제