[Asterisk-Users] TDM400 FXS Pulse Dialing Craziness

Rusty Dekema rdekema at gmail.com
Mon Nov 14 19:42:14 MST 2005


Problem:

I bought a TDM400 card bundle with two FXS (green) modules so that I could
connect two analog telephones to my Asterisk-1.2.0-rc2 server. One of these
phones is a relatively new rotary-dial pulse phone in good working order.
The other is a DTMF phone that can also be put into pulse mode.

Everything seems to work fine when using DTMF, but the card is unable to
correctly receive dial pulses from either phone. It does pass _some_ digits
to Asterisk, but it seems to misinterpret digits in something of a random
manner. For instance, I tried calling the number 12693461212 (a former
time-of-day line; now disconnected) three times in a row, and the Asterisk
server received the following on the three tries:

1253461212
1212461112
11652461111

Obviously this is not working.


Troubleshooting Steps Taken:

I noticed that in my zaptel.h, the following constants were defined:

#define ZT_DEFAULT_PULSEMAKETIME 50 /* 50 ms of line closed when dial
pulsing */
#define ZT_DEFAULT_PULSEBREAKTIME 50 /* 50 ms of line open when dial pulsing
*/
#define ZT_DEFAULT_PULSEAFTERTIME 750 /* 750ms between dial pulse digits */

I am of the understanding that the dial pulse make/break ratio in the USA
(which is where I live, where my phones were bought, and where they work
perfectly on POTS lines) is 60/40, and that 10 pulses are supposed to be
dialed per second. Hence, I changed the pulsemaketime to 60 and the
pulsebreaktime to 40. I then recompiled the driver (stop asterisk, rmmod
wctdm, rmmod zaptel, make clean && make && make install), reloaded the new
modules, and ran asterisk. The same problem happened.

I then thought that maybe 750ms was too long of a timeout between pulse
digits, so I changed this value to 250 and recompiled. Again, no
improvement. I left the make/break values at 60/40, changed the
pulseaftertime back to 750 and recompiled.

Next, I thought that maybe my rotary-dial phone was somehow out of spec in
such a manner that it would work with the phone company's equipment but not
with the TDM400 board. Therefore, I switched my touch-tone phone to pulse
mode in which a microcontroller in the phone generates pulses when you press
buttons on the dial pad. One would think that the timing of this set-up
would almost certainly be correct. However, the same type of problem
occurred.

I really cannot think of anything else to try at this point. If anyone
either knows how to fix this, or has any suggestions for me to try, or needs
any more information about my system, I would be very glad to hear from you.

Thanks,
Rusty


System Information:

/proc/interrupts suggests that the TDM400 card is not sharing an IRQ:

CPU0
0: 779469 XT-PIC timer
2: 0 XT-PIC cascade
8: 0 XT-PIC rtc
11: 15826 XT-PIC libata, eth0
12: 2702857 XT-PIC wctdm
14: 6235 XT-PIC ide0
15: 18 XT-PIC ide1
NMI: 0
LOC: 0
ERR: 0
MIS: 0

The results of lspci -vv (which are lengthy, so I will not post them unless
they are needed) also indicate that the TDM400 is the only card using IRQ
12.


Contents of /etc/zaptel.conf:

loadzone=us
defaultzone=us
fxoks=1
fxoks=2

Contents of /etc/asterisk/zapata.conf:

[channels]

signalling=fxo_ks
language=en
context=from-internal
pulsedial=yes
pulse=yes
channel => 1

signalling=fxo_ks
language=en
context=from-internal
pulsedial=yes
pulse=yes
channel => 2


Results of lsmod:

Module Size Used by
wctdm 37504 2
zaptel 220484 9 wctdm
rtc 9720 0
raid5 22016 1
md_mod 58160 2 raid5
xor 14536 1 raid5
sata_promise 8260 4
libata 42696 1 sata_promise
via_velocity 31584 0
crc_ccitt 1696 2 zaptel,via_velocity
ipv6 216960 10
ide_scsi 14148 0
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20051114/8ddef21b/attachment.htm


More information about the asterisk-users mailing list