Я пытаюсь создать автоответчик. Я использую Nexmo.
У меня есть два номера: один французский номер и один номер США (Калифорния)
Когда я звоню по французскому номеру, мое звуковое сообщение сохраняется на моем сервере, и я могу его прослушать. Но когда я звоню по номеру США, я могу прослушать мою подсказку (здесь она есть), но сохраненное звуковое сообщение не сохраняется правильно. Я не знаю почему, есть идеи?
phone.php
<?php
// accept both query string and post
$request = array_merge($_GET, $_POST);
error_log('got a call from: ' . $request['nexmo_caller_id']);
// make the XML short tag friendly
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<vxml version = "2.1">
<form>
<record name="message" beep="true" maxtime="60s" dtmfterm="true">
<audio src="./welcome.wav"/>
</record>
<catch event="connection.disconnect.hangup">
<submit next="./recphone.php" enctype="multipart/form-data" method="post"/>
</catch>
</form>
</vxml>
recphone.php
<?php
if(!isset($_FILES['message'])){
return; //not a post from our script
}
switch($_FILES['message']['error']){
case UPLOAD_ERR_OK:
move_uploaded_file($_FILES['message']['tmp_name'], './recordings/' . $_FILES['message']['name']);
$prompt = 'Thanks, your message has been saved.';
break;
default:
$prompt = 'Sorry, we could not save your message.';
}
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<vxml version="2.1">
<form>
<block>
<prompt><?php echo $prompt ?></prompt>
</block>
</form>
</vxml>
Гийом,
Я не уверен, почему это не работает, если честно. Когда вы говорите, что он не сохранен правильно, что вы имеете в виду? У вас есть проблемы с содержанием аудио? Кодек? Или что-то другое?
Кроме того, когда вы делаете свои тесты, откуда вы это делаете? Например. Вы звоните по французскому номеру из Франции, а также по американскому номеру из Франции? Если так, что происходит, если вы звоните по номеру США из самих США?
И наконец, какой номер в США у вас есть с Nexmo? Вы проверили, есть ли у вас все требования для вашего варианта использования?
Различаются ли громкости звука на двух TFN? Возможно ли, что платформа думает, что звук остановлен, потому что уровни громкости падают ниже порога обнаружения?
Если усечение звука будет одинаковым независимо от длины оставленного сообщения, я бы посчитал, что платформа имеет несогласованную настройку.
Существует проблема с Nexmo, когда перенаправляет вызовы на документ VoiceXML.
Я наконец решил использовать Asterisk для создания своего IVR.
Если кто-то попал сюда с идеей создания его IVR, я написал учебник на своем GitHub: https://github.com/guillaumeteillet/ivr-guillaume-teillet