【发布时间】:2018-08-30 08:37:47
【问题描述】:
我开发了一个 IVR,它应该呼叫一个号码并录音直到静音(2 秒)并继续我的代码。我正在使用 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。在我有一个像 50kB 这样的小文件 temp.wav 之后。日志:
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。
我很困惑,也许我尝试录制扬声器,但我不这么认为。我总结了以下问题:
仅供参考:我在 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
【问题讨论】: