Asterisk 星号11.9 read()函数和dtmf出现问题

Asterisk 星号11.9 read()函数和dtmf出现问题,asterisk,agi,Asterisk,Agi,我有两台asterisk服务器,一台装有PBX inflash,另一台只在CentOS上安装asterisk。我需要将这些东西从PBXINFLASH迁移到Asterisk 11.9.0。闪存中的PbX正在运行星号10.12.1。 我有一个拨号计划,它在星号10.12.1上运行得非常好,但在我的新的星号为11.9.0的盒子上,DTMF或用户键输入在拨号计划的一部分中不起作用。我曾尝试过对dtmf进行调试,两台服务器都是相同的,调试结果没有差异,也很奇怪,这是我的拨号计划,在一台机器上运行良好,而在

我有两台asterisk服务器,一台装有PBX inflash,另一台只在CentOS上安装asterisk。我需要将这些东西从PBXINFLASH迁移到Asterisk 11.9.0。闪存中的PbX正在运行星号10.12.1。 我有一个拨号计划,它在星号10.12.1上运行得非常好,但在我的新的星号为11.9.0的盒子上,DTMF或用户键输入在拨号计划的一部分中不起作用。我曾尝试过对dtmf进行调试,两台服务器都是相同的,调试结果没有差异,也很奇怪,这是我的拨号计划,在一台机器上运行良好,而在另一台机器上运行部分。拨号计划是呼叫屏幕,来电者按1继续,接收者接到呼叫,系统要求按1接受呼叫或立即挂断一个星号11.9.0来电者按1输入正常,但第二个用户/接收者按1根本不做任何事情

我正在使用sip帐户测试我的dtmf。我已经交换了我的sip帐户和sip软电话来测试同样的问题。下面是同一个宏的两部分:半工作部分和不接受用户输入的下半部分

前半部分工作并接受用户输入

exten => _X.,n,GotoIf($[${GROUP_COUNT(${CallerNum})} > 1]?Exceeded) ;Exceeded?
exten => _X.,n,Set(HngupCount=1);Hangup
exten => _X.,n,Flite(Please press 1 to speak with ${destUID})
exten => _X.,n,Read(yesno,sip-silence,1,,2,5)
exten => _X.,n,GotoIf($[${yesno} = 1]?continue:hangup)
第二部分不工作或不接受用户输入:-

[macro-Dial2]
exten => s,1,Wait(1);ResetCDR
exten => s,n,Set(_StartTime=${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)})
exten => s,n,ResetCDR
exten => s,n,Set(_RCount=1)
exten => s,n(Repeat),Flite(Hi there)
exten => s,n,Flite(${ARG1} wants to speak to you. Please press 1 to accept the call. 2 to forward the call to voicemail or 3 to reject the call.)
exten => s,n,Flite(we are connecting you)
exten => s,n,Read(ACCEPT,sip-silence,1,,1,5)
exten => s,n,Set(_RCount=$[${RCount} + 1])
exten => s,n,NoOp(Counter is ${RCount} -- the user selected: ${ACCEPT});
exten => s,n,Gotoif($[${ACCEPT} = 1]?accept:vm) ;Accept the call
exten => s,n(vm),Gotoif($[${ACCEPT} = 2]?voicemail:rej) ;forward the call to dummy voicemail (Actually just record the callers message)
exten => s,n(rej),Gotoif($[${ACCEPT} = 3]?reject) ;Reject the call and hangup
exten => s,n,Gotoif($[${RCount} > 2]?reject:Repeat) ; If no key pressed, just hangup the call and inform the User.
exten => s,n(accept),set(SecLeg=${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)})
在下半年,它可以正常工作,直到以下几行:

exten => s,n,Flite(${ARG1} wants to speak to you. Please press 1 to accept the call. 2 to forward the call to voicemail or 3 to reject the call.)
exten => s,n,Flite(we are connecting you)

注意,在您的拨号计划中,只有在所有飞行信息播放完成后,才会进行用户输入

强烈建议仅通过flite${ARG1}播放,而所有其他(静态部分)记录到文件并在READ命令中使用

您可以通过在星号中启用dtmf调试来获得更多信息


为此,您需要编辑logger.conf

是否可以从AST CLI发布失败呼叫的文本?我需要查看“AST看到了什么”才能在这里帮助您。[0K SIP/2.0 200 OK Via:SIP/2.0/UDP 173.230.137.73:5060;branch=z9hG4bK3d82f078;rport=5060联系人:收件人:;tag=6b7c1722发件人:;tag=as292ce1cc呼叫ID:190157fe2d1b3caf2ba821f454ed55c9@173.230.137.73:5060 CSeq:103 BYE用户代理:Zoiper rev.11137内容长度:0请设置“详细”到9,以便拨号计划处理可见,并在“Read()”语句之前和之后发布来自五行的相关输出。除非您仅通过SIP-INFO传输DTMF,否则SIP数据包调试在这里毫无价值。我已经启用了DTMF调试,但奇怪的是,我的工作和非工作星号框都给出了100%相同的输出