2

我正在尝试创建一个答录机。我正在使用 Nexmo。

我有两个号码:一个法国号码和一个美国号码(加利福尼亚州)

当我拨打我的法国号码时,我的音频信息会保存在我的服务器上,我可以收听它。但是当我拨打我的美国号码时,我可以听到我的提示(这里是),但保存的音频消息没有正确保存。我不知道为什么,有什么想法吗?

电话.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>
4

3 回答 3

0

两个 TFN 上的音量是否不同?平台是否有可能因为音量低于检测阈值而认为音频已停止?

如果无论留下的消息长度如何,音频截断都是一致的,我会认为平台的设置不一致。

于 2016-08-02T14:45:21.360 回答
0

纪尧姆

老实说,我不确定为什么它不起作用。当你说它没有正确保存时,你是什么意思?您对音频的内容有疑问吗?编解码器?或者是其他东西?

另外,当你做你的测试时,你是从哪里做的?例如,您是从法国拨打您的法国号码,还是从法国拨打美国号码?如果是这样,如果从美国自己拨打美国号码会发生什么?

最后,您在 Nexmo 获得了什么样的美国号码?您是否检查过它是否满足您的用例的所有要求?

于 2016-08-02T08:19:41.713 回答
0

将呼叫重定向到 VoiceXML 文档时,Nexmo 出现问题。

我最终决定使用 Asterisk 来创建我的 IVR。

如果有人带着创建 IVR 的想法来到这里,我在我的 GitHub 上写了一个教程:https ://github.com/guillaumeteillet/ivr-guillaume-teillet

于 2016-08-16T08:56:27.903 回答