3
votes

I tried to enter Date Of Birth as 11211971 through my phone, but IVR (Interactive Voice Response) has 11121197.

please tell anybody what is the root cause for this issue

It is my code

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
can you give any more details? how are you reading the digits? can show some code? have you configured asterisk to receive dtmf's as info, rfc, or inband? - marcelog
What channel driver? SIP, DAHDI, IAX2? - Sean Bright
I have used SIP channel driver - Sunitha Bharathy
please tell anybody root cause for this issue - Sunitha Bharathy
What version of asterisk? DTMF handling has changed significantly from 1.4 to 1.6.x to 1.8.x so it's possible you are using a buggy version. - Sean Bright

1 Answers

1
votes

My assumption is if you are caling from DID and entering DTMF there might be some problem with DTMF receiving or DTMF negotiations in asterisk side you need to put relaxdtmf=yes , rfc2833compensate=yes and dtmfmode=rfc2833 if your provider support it.

if you are calling from softphone then try to enable dtmf type in softphone or sip hard phone.