I am using Asterisk 11. About 1 out of 10 times my event codes from the alarm panel are missing either the last digit (checksum) and even more rarely the last 2 digits. That digit is instead replaced by the beginning of the same event code.
Ground Truth Event Code: 9999181110020005 == AlarmReceiver: Received Event 9999181110020009 == AlarmReceiver: Nonzero checksum > AlarmReceiver: DTMF Digit Timeout on DAHDI/1-1 == AlarmReciever: Incomplete string: 999181110020005
Notice how the checksum (5) Shows up in the Incomplete string, but now the account number (9999) only has 3 letters. I am starting to think this is due to unclear DTMF tones from the alarm panel. Is there anyway to clean up the signal, or possibly make the tone last longer within asterisk? I am also aware that Asterisk 11’s AlarmReceiver is said to be broken. Why is that exactly? Do we know the reasons for this and I could possibly fix it? Thanks
EDIT: I ran DTMF debug and noticed a lot of tones were coming in very quickly, around 30-50 ms. So I’v gotten multiple debug messages that look like this:
[Aug 18 23:31:16] DTMF[C-00000012]: channel.c:4191 __ast_read: DTMF end '9' has duration 39 but want minimum 80, emulating on DAHDI/1-1 [Aug 18 23:31:16] DTMF[C-00000012]: channel.c:4292 __ast_read: DTMF end emulation of '9' queued on DAHDI/1-1
It say emulating on DAHDI/1-1, but I’m not sure what that means, is it emulating to a greater length?
Also, When a digit does not show up/replaced by the beginning of another even code, it never shows up in the DTMF debug, it simply is not being detected. Instead of a 5 being detected, it detects a 9. I’m starting to think the DTMF tones aren’t perfect everytime, and asterisk fails to pick them up sometimes, i suppose thats why alarm panels try multiple attempts at sending event codes. Is that the best guess?