Asterisk记录空文件

问题描述 投票:0回答:1

我开发了一个IVR,它应该拨打一个号码并录音直到静音(2秒)并继续我的代码。我正在使用python发送AGI命令(基于此doc https://wiki.asterisk.org/wiki/display/AST/AGICommand_record+file):

RECORD FILE "/var/asterisk_sound/mobile/temp" wav "" 20000 0  s=2

因此,当我呼叫IVR时,我听到IVR播放音频并向我发送DTMF,如果我用手机发送,它可以录制我的语音和DTMF。我有一个小文件temp.wav像50kB。记录:

09:57:31:-> RECORD FILE "/var/asterisk_sound/mobile/temp" wav "" 20000 0  s=2
09:57:46:<- 200 result=4852 (timeout) endpos=102880
09:57:46:{'code': '200', 'result': '4852', 'value': 'timeout', 'endpos': '102880'}

但是当IVR打电话给我时,我仍然听到IVR DTMF和音频,但是在录音没有任何反应的情况下,我正在说话并发送DTMF 20秒(直到超时)没有错误,日志:

16:00:38:-> RECORD FILE "/var/asterisk_sound/mobile/temp" wav "" 20000 0  s=2
16:00:58:<- 200 result=0 (timeout) endpos=0
16:00:58:{'code': '200', 'result': '0', 'value': 'timeout', 'endpos': '0'}

我最后有一个小文件,我有一个像0B这样的文件temp.wav。

我很困惑,也许我试着录制一个扬声器,但我不这么认为。我总结了下面的问题:

enter image description here

仅供参考:我在x86_64 CentOS 5.6上使用Asterisk 13.1-cert1

编辑:我的算法在两种情况下都这样做:

call a number
on reply :
    play welcome message (3 sec)
    send DTMF 
    wait 10 sec
    play BEEP
    record file until silence
    stream file
    cancel
asterisk ivr dtmf
1个回答
0
投票

在录制之前你需要接听电话,并且在记录之前还要把好事发送到另一端。

某些交换机(例如广泛使用的Sonic_UA)不会向您的主机发送rtp数据,直到您向它们发送内容为止。

在大多数情况下使用像

Playback "beep"
© www.soinside.com 2019 - 2024. All rights reserved.