星号记录空文件

时间:2018-08-30 08:37:48

标签: asterisk ivr dtmf

我开发了一个IVR,该IVR应该拨打一个电话并录音,直到静音(2sec),然后继续执行我的代码。我正在使用python发送AGI命令(基于此文档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'}

最后我有一个小文件,我有一个小文件 temp.wav ,如0B。

我很困惑,也许我试图录制演讲者,但我不这么认为。我在下面总结了这个问题:

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

1 个答案:

答案 0 :(得分:0)

在录制之前,您需要接听电话,而且好主意在录制之前先向另一端发送一些东西。

某些交换机(例如,广泛使用的Sonic_UA)在向主机发送rtp数据之前不会向主机发送rtp数据。

在大多数情况下,使用

Playback "beep"