Voicexml:<record> 正在提交截断音频消息
Voicexml: <record> submiting truncate audio message
我正在尝试创建一个答录机。我正在使用 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>
记录phone.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 上的音频音量是否不同?平台是否可能认为音频已停止,因为音量级别低于检测阈值?
如果无论剩余消息的长度如何,音频截断都是一致的,我认为平台设置不一致。
将呼叫重定向到 VoiceXML 文档时,Nexmo 出现问题。
我最终决定使用 Asterisk 来创建我的 IVR。
如果有人带着创建 IVR 的想法来到这里,我在 GitHub 上写了一个教程:https://github.com/guillaumeteillet/ivr-guillaume-teillet
我正在尝试创建一个答录机。我正在使用 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>
记录phone.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 上的音频音量是否不同?平台是否可能认为音频已停止,因为音量级别低于检测阈值?
如果无论剩余消息的长度如何,音频截断都是一致的,我认为平台设置不一致。
将呼叫重定向到 VoiceXML 文档时,Nexmo 出现问题。
我最终决定使用 Asterisk 来创建我的 IVR。
如果有人带着创建 IVR 的想法来到这里,我在 GitHub 上写了一个教程:https://github.com/guillaumeteillet/ivr-guillaume-teillet