Problem: <br>
<br>
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.<br>
<br>
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: <br>
<br>
1253461212<br>
1212461112<br>
11652461111<br>
<br>
Obviously this is not working. <br>
<br>
<br>
Troubleshooting Steps Taken: <br>
<br>
I noticed that in my zaptel.h, the following constants were defined: <br>
<br>
#define ZT_DEFAULT_PULSEMAKETIME 50 /* 50 ms of line closed when dial pulsing */<br>
#define ZT_DEFAULT_PULSEBREAKTIME 50 /* 50 ms of line open when dial pulsing */<br>
#define ZT_DEFAULT_PULSEAFTERTIME 750 /* 750ms between dial pulse digits */<br>
<br>
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. <br>
<br>
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.<br>
<br>
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. <br>
<br>
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.<br>
<br>
Thanks,<br>
Rusty<br>
<br>
<br>
System Information: <br>
<br>
/proc/interrupts suggests that the TDM400 card is not sharing an IRQ:<br>
<br>
CPU0 <br>
0: 779469 XT-PIC timer<br>
2:
0 XT-PIC
cascade<br>
8:
0 XT-PIC rtc<br>
11: 15826 XT-PIC libata, eth0<br>
12: 2702857 XT-PIC wctdm<br>
14: 6235 XT-PIC ide0<br>
15:
18 XT-PIC
ide1<br>
NMI: 0 <br>
LOC: 0 <br>
ERR: 0<br>
MIS: 0<br>
<br>
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.<br>
<br>
<br>
Contents of /etc/zaptel.conf: <br>
<br>
loadzone=us<br>
defaultzone=us<br>
fxoks=1<br>
fxoks=2<br>
<br>
Contents of /etc/asterisk/zapata.conf:<br>
<br>
[channels]<br>
<br>
signalling=fxo_ks<br>
language=en<br>
context=from-internal<br>
pulsedial=yes<br>
pulse=yes<br>
channel => 1<br>
<br>
signalling=fxo_ks<br>
language=en<br>
context=from-internal<br>
pulsedial=yes<br>
pulse=yes<br>
channel => 2<br>
<br>
<br>
Results of lsmod: <br>
<br>
Module Size Used by<br>
wctdm 37504 2 <br>
zaptel 220484 9 wctdm<br>
rtc
9720 0 <br>
raid5 22016 1 <br>
md_mod 58160 2 raid5<br>
xor
14536 1 raid5<br>
sata_promise 8260 4 <br>
libata
42696 1 sata_promise<br>
via_velocity 31584 0 <br>
crc_ccitt 1696 2 zaptel,via_velocity<br>
ipv6 216960 10 <br>
ide_scsi 14148 0 <br>
<br>
<br>
<br>
<br>
<br>
<br>