星号服务器中的问题

时间:2011-08-17 12:04:42

标签: asterisk

我尝试通过手机输入出生日期为11211971,但IVR(互动语音应答)已11121197

请告诉任何人这个问题的根本原因

这是我的代码

exten => s,n,Read(dateofbirth,${ANOUNCEMENT_RECORDINGS}/HIP-5A1,8,s)        
exten => s,n,GotoIf($["${dateofbirth}" = ""]?retry-dateofbirth-notentered)
exten => s,n,Set(monthofbirth=${dateofbirth:0:2})
exten => s,n,Set(dayofbirth=${dateofbirth:2:2})
exten => s,n,Set(yearofbirth=${dateofbirth:4:4}) 
exten => s,n,Goto(${IF($[$[${LEN(${monthofbirth})} != 2]|$[${monthofbirth} > 12] |$["${monthofbirth}" ="00"]|$["${monthofbirth}" ="**"]|$[${LEN(${dayofbirth})}!=2]|$[${dayofbirth} > 31]|$["${dayofbirth}" ="00"]|$["${dayofbirth}" ="**"]|$[${LEN(${yearofbirth})} !=4]|$["${yearofbirth}" ="0000"]|$["${yearofbirth}" ="****"]]?retry-dateofbirth-invalid:saydateofbirth)})

1 个答案:

答案 0 :(得分:1)

我的假设是,如果您正在从DID进行呼叫并进入DTMF,则在星号侧可能存在DTMF接收或DTMF协商的问题,如果您的提供商支持,则需要放置relaxdtmf = yes,rfc2833compensate = yes和dtmfmode = rfc2833。

如果您使用软电话拨打电话,请尝试在软电话或硬电话中启用dtmf类型。