Cannot connect to PSTN through TDM2400

My current problem is with my TDM2400 (2 FXO cards) or at least I believe it is a hardware issue.

Dialing to the PSTN through this card my Grandstream 2000 registers a connection and ongoing call but the dialed number does not ring. Similarly any incoming calls simply ring but neither Asterisk nor the phone receive that call.

The PSTN comes in from an RJ-21 line which is separated into a patch panel; then another RJ-21 connection is made from the patch panel into the TDM2400 card.

This setup worked previously for the Nortel switch I was using to manage 3 lines; I changed to Asterisk in hopes of upgrading to 8 lines and perhaps more in the future.

I’ve exhausted my options on this, Zaptel registers the TDM2400 and all 8 channels and there are no IRQ conflicts.

If anyone could please help me out, I’m at my wits end on this problem.

Thank you

[quote="[size=150]zapata.conf[/size]"];
; Zapata telephony interface
;
; Configuration file

[trunkgroups]

[channels]

language=en
context=from-pstn
signalling=fxs_ks
rxwink=300 ; Atlas seems to use long (250ms) winks
;
; Whether or not to do distinctive ring detection on FXO lines
;
;usedistinctiveringdetection=yes

usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=no
echotraining=800
rxgain=0.0
txgain=0.01
callgroup=1
pickupgroup=1
immediate=no
group=0
;faxdetect=both
;faxdetect=incoming
;faxdetect=outgoing
;faxdetect=no

;Include genzaptelconf configs
#include zapata-auto.conf

;Include AMP configs
#include zapata_additional.conf
[/quote]

[quote="[size=150]zapata-auto.conf[/size]"]
; Autogenerated by /usr/local/sbin/genzaptelconf – do not hand edit
; Zaptel Channels Configurations (zapata.conf)
;
; This is not intended to be a complete zapata.conf. Rather, it is intended
; to be #include-d by /etc/zapata.conf that will include the global settings
;
callerid=asreceived

; Span 1: WCTDM/0 "Wildcard TDM2400P Prototype Board 1"
signalling=fxs_ks
; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 1
context=from-pstn
group=0
channel => 1

signalling=fxs_ks
; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 2
context=from-pstn
group=0
channel => 2

signalling=fxs_ks
; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 3
context=from-pstn
group=0
channel => 3

signalling=fxs_ks
; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 4
context=from-pstn
group=0
channel => 4

signalling=fxs_ks
; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 5
context=from-pstn
group=0
channel => 5

signalling=fxs_ks
; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 6
context=from-pstn
group=0
channel => 6

signalling=fxs_ks
; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 7
context=from-pstn
group=0
channel => 7

signalling=fxs_ks
; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 8
context=from-pstn
group=0
channel => 8

; channel 9, WCTDM, inactive.
; channel 10, WCTDM, inactive.
; channel 11, WCTDM, inactive.
; channel 12, WCTDM, inactive.
; channel 13, WCTDM, inactive.
; channel 14, WCTDM, inactive.
; channel 15, WCTDM, inactive.
; channel 16, WCTDM, inactive.
; channel 17, WCTDM, inactive.
; channel 18, WCTDM, inactive.
; channel 19, WCTDM, inactive.
; channel 20, WCTDM, inactive.
; channel 21, WCTDM, inactive.
; channel 22, WCTDM, inactive.
; channel 23, WCTDM, inactive.
; channel 24, WCTDM, inactive.
[/quote]

[quote="[size=150]zaptel.conf[/size]"]

Autogenerated by /usr/local/sbin/genzaptelconf – do not hand edit

Zaptel Configuration File

This file is parsed by the Zaptel Configurator, ztcfg

It must be in the module loading order

Span 1: WCTDM/0 “Wildcard TDM2400P Prototype Board 1”

fxsks=1
fxsks=2
fxsks=3
fxsks=4
fxsks=5
fxsks=6
fxsks=7
fxsks=8

channel 9, WCTDM, inactive.

channel 10, WCTDM, inactive.

channel 11, WCTDM, inactive.

channel 12, WCTDM, inactive.

channel 13, WCTDM, inactive.

channel 14, WCTDM, inactive.

channel 15, WCTDM, inactive.

channel 16, WCTDM, inactive.

channel 17, WCTDM, inactive.

channel 18, WCTDM, inactive.

channel 19, WCTDM, inactive.

channel 20, WCTDM, inactive.

channel 21, WCTDM, inactive.

channel 22, WCTDM, inactive.

channel 23, WCTDM, inactive.

channel 24, WCTDM, inactive.

Global data

loadzone = us
defaultzone = us
[/quote]

[quote="[size=150]Asterisk Full log[/size]"]
DEBUG[7671] chan_sip.c: Setting NAT on RTP to 0
DEBUG[7671] chan_sip.c: Stopping retransmission on ‘2c508dfef2b7d021@172.16.0.127’ of Response 54530: Match Found
DEBUG[7671] chan_sip.c: Setting NAT on RTP to 0
DEBUG[7671] chan_sip.c: Checking SIP call limits for device 2200
DEBUG[7671] chan_sip.c: build_route: Contact hop: sip:2200@172.16.0.127
DEBUG[7629] channel.c: Avoiding initial deadlock for 'SIP/2200-f1b0’
VERBOSE[16030] logger.c: – Executing Macro(“SIP/2200-f1b0”, “dialout-trunk|1|19051234567||”) in new stack
DEBUG[16030] pbx.c: Expression result is '1’
VERBOSE[16030] logger.c: – Executing GotoIf(“SIP/2200-f1b0”, “1?3:2”) in new stack
VERBOSE[16030] logger.c: – Goto (macro-dialout-trunk,s,3)
VERBOSE[16030] logger.c: – Executing Macro(“SIP/2200-f1b0”, “user-callerid”) in new stack
DEBUG[16030] pbx.c: Function result is '2200’
DEBUG[16030] pbx.c: Function result is '2200’
VERBOSE[16030] logger.c: – Executing Set(“SIP/2200-f1b0”, “AMPUSER=2200”) in new stack
DEBUG[16030] pbx.c: Function result is '2200’
DEBUG[16030] pbx.c: Function result is 'Mansel Lavery’
VERBOSE[16030] logger.c: – Executing Set(“SIP/2200-f1b0”, “EMERGENCYCID=Mansel Lavery”) in new stack
DEBUG[16030] pbx.c: Function result is 'Mansel Lavery’
VERBOSE[16030] logger.c: – Executing Set(“SIP/2200-f1b0”, “AMPUSERCIDNAME=Mansel Lavery”) in new stack
DEBUG[16030] pbx.c: Expression result is '0’
VERBOSE[16030] logger.c: – Executing GotoIf(“SIP/2200-f1b0”, “0?6”) in new stack
DEBUG[16030] pbx.c: Not taking any branch
VERBOSE[16030] logger.c: – Executing Set(“SIP/2200-f1b0”, “CALLERID(all)=“Mansel Lavery” <2200>”) in new stack
DEBUG[16030] pbx.c: Function result is '“Mansel Lavery” <2200>'
VERBOSE[16030] logger.c: – Executing NoOp(“SIP/2200-f1b0”, “Using CallerID “Mansel Lavery” <2200>”) in new stack
DEBUG[16030] pbx.c: Function result is '2200’
VERBOSE[16030] logger.c: – Executing Macro(“SIP/2200-f1b0”, “record-enable|2200|OUT”) in new stack
DEBUG[16030] pbx.c: Function result is '0’
VERBOSE[16030] logger.c: – Executing GotoIf(“SIP/2200-f1b0”, “0 > 0?2:4”) in new stack
VERBOSE[16030] logger.c: – Goto (macro-record-enable,s,4)
VERBOSE[16030] logger.c: – Executing AGI(“SIP/2200-f1b0”, “recordingcheck|20060529-212453|1148952293.602”) in new stack
VERBOSE[16030] logger.c: – Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
VERBOSE[16030] logger.c: recordingcheck|20060529-212453|1148952293.602: Outbound recording not enabled
VERBOSE[16030] logger.c: – AGI Script recordingcheck completed, returning 0
VERBOSE[16030] logger.c: – Executing NoOp(“SIP/2200-f1b0”, “No recording needed”) in new stack
VERBOSE[16030] logger.c: – Executing Macro(“SIP/2200-f1b0”, “outbound-callerid|1”) in new stack
DEBUG[16030] pbx.c: Function result is '2200’
DEBUG[16030] pbx.c: Function result is 'Mansel Lavery’
VERBOSE[16030] logger.c: – Executing Set(“SIP/2200-f1b0”, “USEROUTCID=Mansel Lavery”) in new stack
DEBUG[16030] pbx.c: Expression result is '1’
VERBOSE[16030] logger.c: – Executing GotoIf(“SIP/2200-f1b0”, “1?4”) in new stack
VERBOSE[16030] logger.c: – Goto (macro-outbound-callerid,s,4)
DEBUG[16030] pbx.c: Expression result is '0’
VERBOSE[16030] logger.c: – Executing GotoIf(“SIP/2200-f1b0”, “0?6”) in new stack
DEBUG[16030] pbx.c: Not taking any branch
VERBOSE[16030] logger.c: – Executing Set(“SIP/2200-f1b0”, “CALLERID(all)=Mansel Lavery”) in new stack
DEBUG[16030] pbx.c: Expression result is '1’
VERBOSE[16030] logger.c: – Executing GotoIf(“SIP/2200-f1b0”, “1?8”) in new stack
VERBOSE[16030] logger.c: – Goto (macro-outbound-callerid,s,8 )
DEBUG[16030] pbx.c: Function result is '“Mansel Lavery” <>'
VERBOSE[16030] logger.c: – Executing NoOp(“SIP/2200-f1b0”, “CallerID set to “Mansel Lavery” <>”) in new stack
VERBOSE[16030] logger.c: – Executing Set(“SIP/2200-f1b0”, “GROUP()=OUT_1”) in new stack
DEBUG[16030] pbx.c: Function result is '1’
DEBUG[16030] pbx.c: Expression result is '0’
VERBOSE[16030] logger.c: – Executing GotoIf(“SIP/2200-f1b0”, “0?108”) in new stack
DEBUG[16030] pbx.c: Not taking any branch
VERBOSE[16030] logger.c: – Executing Set(“SIP/2200-f1b0”, “DIAL_NUMBER=19051234567”) in new stack
VERBOSE[16030] logger.c: – Executing Set(“SIP/2200-f1b0”, “DIAL_TRUNK=1”) in new stack
VERBOSE[16030] logger.c: – Executing AGI(“SIP/2200-f1b0”, “fixlocalprefix”) in new stack
VERBOSE[16030] logger.c: – Launched AGI Script /var/lib/asterisk/agi-bin/fixlocalprefix
VERBOSE[16030] logger.c: fixlocalprefix: Removed prefix. New number: 9051234567
VERBOSE[16030] logger.c: – AGI Script fixlocalprefix completed, returning 0
VERBOSE[16030] logger.c: – Executing Set(“SIP/2200-f1b0”, “OUTNUM=9051234567”) in new stack
DEBUG[16030] pbx.c: Function result is 'ZAP/g0’
VERBOSE[16030] logger.c: – Executing Set(“SIP/2200-f1b0”, “custom=ZAP/g0”) in new stack
DEBUG[16030] pbx.c: Expression result is '0’
VERBOSE[16030] logger.c: – Executing GotoIf(“SIP/2200-f1b0”, “0 ?16”) in new stack
DEBUG[16030] pbx.c: Not taking any branch
VERBOSE[16030] logger.c: – Executing Dial(“SIP/2200-f1b0”, “ZAP/g0/9051234567|120|W”) in new stack
DEBUG[16030] chan_zap.c: Dialing '9051234567’
DEBUG[16030] chan_zap.c: Deferring dialing…
DEBUG[7629] channel.c: Avoiding initial deadlock for 'Zap/1-1’
VERBOSE[16030] logger.c: – Called g0/9051234567
DEBUG[7671] chan_sip.c: Auto destroying call 'ff00889f4f51946b@172.16.2.3’
DEBUG[16030] chan_zap.c: Exception on 18, channel 1
DEBUG[16030] chan_zap.c: Got event Hook Transition Complete(12) on channel 1 (index 0)
DEBUG[16030] chan_zap.c: Exception on 18, channel 1
DEBUG[16030] chan_zap.c: Got event Dial Complete(9) on channel 1 (index 0)
DEBUG[16030] chan_zap.c: Enabled echo cancellation on channel 1
DEBUG[16030] chan_zap.c: Engaged echo training on channel 1
DEBUG[16030] chan_zap.c: Exception on 18, channel 1
DEBUG[16030] chan_zap.c: Got event Dial Complete(9) on channel 1 (index 0)
DEBUG[16030] chan_zap.c: Echo cancellation already on
DEBUG[7629] channel.c: Avoiding initial deadlock for ‘Zap/1-1’
VERBOSE[16030] logger.c: – Zap/1-1 answered SIP/2200-f1b0
DEBUG[7671] chan_sip.c: Stopping retransmission on ‘2c508dfef2b7d021@172.16.0.127’ of Response 54531: Match Found
DEBUG[16030] channel.c: Didn’t get a frame from channel: SIP/2200-f1b0
DEBUG[16030] channel.c: Bridge stops bridging channels SIP/2200-f1b0 and Zap/1-1
DEBUG[16030] chan_zap.c: Hangup: channel: 1 index = 0, normal = 18, callwait = -1, thirdcall = -1
DEBUG[16030] chan_zap.c: disabled echo cancellation on channel 1
DEBUG[16030] chan_zap.c: Set option TDD MODE, value: OFF(0) on Zap/1-1
DEBUG[16030] chan_zap.c: Updated conferencing on 1, with 0 conference users
VERBOSE[16030] logger.c: – Hungup ‘Zap/1-1’
DEBUG[16030] app_dial.c: Exiting with DIALSTATUS=ANSWER.
VERBOSE[16030] logger.c: == Spawn extension (macro-dialout-trunk, s, 14) exited non-zero on ‘SIP/2200-f1b0’ in macro ‘dialout-trunk’
VERBOSE[16030] logger.c: == Spawn extension (macro-dialout-trunk, s, 14) exited non-zero on ‘SIP/2200-f1b0’
DEBUG[16030] cdr_addon_mysql.c: cdr_mysql: inserting a CDR record.
DEBUG[16030] cdr_addon_mysql.c: cdr_mysql: SQL command as follows: INSERT INTO cdr (calldate,clid,src,dst,dcontext,channel,dstchannel,lastapp,lastdata,duration,billsec,disposition,amaflags,accountcode,uniqueid) VALUES (‘2006-05-29 21:24:53’,‘Mansel Lavery’,’’,‘19051234567’,‘from-internal’, ‘SIP/2200-f1b0’,‘Zap/1-1’,‘Dial’,‘ZAP/g0/9051234567|120|W’,28,20,‘ANSWERED’,3,’’,‘1148952293.602’)
DEBUG[16030] chan_sip.c: update_call_counter(2200) - decrement call limit counter
[/quote]

silly question: where are you using this config? i note that you are providing a 10-digit phone number, but most US telcos require a leading ‘1’ digit. also, i’ve run into issues with the TDM cards where they can dial too fast and you get errors. i put a single ‘w’ on the front of the dialed number (cause a brief delay, to give dial tone a chance to get started…)

Whats the output of “dmesg” after loading the kernel module?

I apologize for the late reply, this problem persists but I have been away for the past week.

dswartz: The one is confusing its simply the button I used to as outbound route. I wondered if that was a problem and changed it to 9 instead but the problem persisted. I am currently in Toronto, Canada and as such require 10 digits to dial any number, even local.

Angler: dmesg reads

wctdm2400p: reg is a04c0004
During Resetting the modules…
After resetting the modules…
Port 1: Installed – AUTO FXO (FCC mode)
Port 2: Installed – AUTO FXO (FCC mode)
Port 3: Installed – AUTO FXO (FCC mode)
Port 4: Installed – AUTO FXO (FCC mode)
Port 5: Installed – AUTO FXO (FCC mode)
Port 6: Installed – AUTO FXO (FCC mode)
Port 7: Installed – AUTO FXO (FCC mode)
Port 8: Installed – AUTO FXO (FCC mode)
Port 9: Not Installed
Port 10: Not Installed
Port 11: Not Installed
Port 12: Not Installed
Port 13: Not Installed
Port 14: Not Installed
Port 15: Not Installed
Port 16: Not Installed
Port 17: Not Installed
Port 18: Not Installed
Port 19: Not Installed
Port 20: Not Installed
Port 21: Not Installed
Port 22: Not Installed
Port 23: Not Installed
Port 24: Not Installed
VPM: Not Present
Found a Wildcard TDM: Wildcard TDM2400P Prototype (24 modules)
Registered tone zone 0 (United States / North America)

I appretiate any help

Ive read about people having problems with FXO modules in the first port of a TDM2400 card. Try moving your modules to the second and third positions to be sure.

Actually I at one point thought that it may have been a wiring problem so I moved tried all the channels (moving the cards from 1-2, 3-4, 5-6) so I don’t think thats it.

Problem still persists but zap barrage lets me hear it dial the number so I’ve resigned to the problem perhaps being something in the telecom equipment either in how its setup in the office, builing or our provider.

Please let me know if you have other suggestions.