I finally got the alarm panel to work with asterisk. Solution at the bottom
First some background:
SO I been battling with Alarm panels this week. Trying to get an ATA to connect to an alarm panel to provide monitoring to an office with no analog line.
I know every one says “DONT DO IT!” just like they say that about faxes but an analog line for 70+ dollars is pricy. But as long as I have low jitter, a good connection, and a high retry count it should work right?
Sadly capturing packets I ran into my first problem. SILENCE on the line. Couldn’t for the life of me figure this out. Finally it dawned on my. The panel was sending DTFM tones and they where converted into RFC2833. Ok switched everything to inband, but then the silence continued on the ASTERISK – PROVIDER leg.
After trying this and that I finally gave up, setup an new account and set it for INBAND. Added the account to FREEPBX and set it for only the monitoring center telephone number.
And that’s where things got weird.
The ATA sent all the DTFM tones correctly in a fast burst.
Asterisk then sent MOST of the DTFM tones, with a couple of gaps to the trunk.
SO I started removing everything I could to prevent ASTERISK for intercepting the tones.
First thing I did was to remove Tt dial parameter from the TRUNK and EXTENSION using “Asterisk Trunk Dial Options”
That didn’t help.
I found that by recompiling asterisk I could cripple DTFM completely by modifying the frequencies in the DSP.c but that’s not what I wanted to do.
Then after a few hours I fond the solution, I found it in a change log on one of the forum boards. By shrinking the minimum DTFM duration I got asterisk to retransmit ALL The DTFM tones to the provider without missing a few. Although this was an opton defined in the source, recently (2014) they added it as a parameter that’s not very well documented.
So the solution to get CONTACT ID working with ASTERISK (so far works within 3 attempts) is:
In asterisk.conf under options add
mindtmfduration = 35