Asterisk zaptel pulse dialing

Pulse Dialing on Zap Channels

Since 1.0.1 Asterisk has pulse dialing support for zapata channels. Just specify


in zapata.conf

Workaround for Incorrect Pulse Decoding

If you are using FXS ports on a TDM400 card and are having problems with Asterisk not recognizing pulses, or misinterpreting the pulses that are dialed, you may need to perform the following steps (as of Zaptel v1.2.0):

1) Open the file wctdm.c from the Zaptel source in a text editor.

2) Locate the lines that read:

/* Reset the debounce (must be multiple of 4ms) */
wc->mod[card].fxs.debounce = 8 * (4 * 8);

(These can be found in the neighborhood of line 950.)

4) Then, cut this value (the pulse debounce time limit) in half by changing the wc-> line to the following:

wc->mod[card].fxs.debounce = 4 * (4 * 8);

5) Compile and install the Zaptel package and make sure that the new wctdm module is loaded. Asterisk should now receive pulse dials accurately and reliably.

(This solution was provided to me by Max on the asterisk-users list and has made my Asterisk 1.2.0 machine correctly receive pulse-dialed digits every single time.)

(Outgoing) Pulse Rates

Although most telephone exchanges are quite happy with rates of anywhere from 6 to 15 pulses per second (pps), the standard accepted by telephone companies is only 8 to 10 pps. Some modern digital phone exchanges, free of the mechanical inertia problems of older phone systems, will accept a pps rate as high as 20.

Besides the pps rate, the phone dialing pulses have a make/break ratio, usually described as a percentage, but sometimes as a straight ratio. The North American standard is 60/40 percent; most of Europe accepts a standard of 63/37 percent. This is the pulse measured at the phone, not at the phone exchange, where it's somewhat different, having traveled through the phone line with its distributed resistance, capacitance, and inductance. In practice, the make/break ratio does not seem to affect the performance of the phone dial when attached to a normal loop.

There are three parameters to adjust pulse dialing make/break ratio when Asterisk sends pulse digits over an FXO interface.
So, configuration for European telephone lines will look like:

zaptel.pulse.make: 60
zaptel.pulse.break: 40
zaptel.pulse.pause: 800

The FreeBSD driver may allow you to adjust these values using sysctl.

See Also

Other Asterisk development by PortaOne

Created by: gonzo, Last modification: Wed 29 of Mar, 2006 (11:38 UTC) by sybren
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+