Hey All,
I'm trying to get a TDM400P card with FXO module to connect to our PSTN line. The card is correctly detected by Linux:
[trixbox1.localdomain asterisk]# lspci
00:09.0 Communication controller:
Tiger Jet Network Inc. Tiger3XX
Modem/ISDN interface
I've run setup-pstn which produces the following output
trixbox1.localdomain ~]# setup-pstn
--------------------------------------------------------------
Detecting PSTN cards and USB PSTN Devices
--------------------------------------------------------------
Hardware present!
STOPPING ASTERISK
Asterisk Stopped
STOPPING FOP SERVER
FOP Server Stopped
Unloading DAHDI hardware modules: done
Loading DAHDI hardware modules:
wct4xxp: [ OK ]
wcte12xp: [ OK ]
wct1xxp: [ OK ]
wcte11xp: [ OK ]
wctdm24xxp: [ OK ]
opvxa1200: [ OK ]
wcfxo: [ OK ]
wctdm: [ OK ]
wcb4xxp: [ OK ]
wctc4xxp: [ OK ]
xpp_usb: [ OK ]
Running dahdi_cfg: [ OK ]
SETTING FILE PERMISSIONS
Permissions OK
STARTING ASTERISK
Asterisk Started
STARTING FOP SERVER
FOP Server Started
Chan Extension Context Language MOH Interpret Blocked State
pseudo default en default In Service
1 from-pstn en default In Service
dahdi_scan returns:
dahdi_scan [1]
active=yes
alarms=OK
description=Wildcard TDM400P REV I Board 5
name=WCTDM/4
manufacturer=Digium
devicetype=Wildcard TDM400P REV I
location=PCI Bus 00 Slot 10
basechan=1
totchans=4
irq=209
type=analog
port=1,FXO
port=2,none
port=3,none
port=4,none
And asterisk can see the channel:
> trixbox1*CLI> dahdi show channel 1
> Channel: 1LI> File Descriptor: 14
> Span: 11*CLI> Extension: I> Dialing:
> noI> Context: from-pstn Caller ID: I>
> Calling TON: 0 Caller ID name:
> Mailbox: none Destroy: 0LI> InAlarm:
> 1LI> Signalling Type: FXS Kewlstart
> Radio: 0*CLI> Owner: <None> Real:
> <None>> Callwait: <None> Threeway:
> <None> Confno: -1LI> Propagated
> Conference: -1 Real in conference: 0
> DSP: no1*CLI> Busy Detection: no TDD:
> no1*CLI> Relax DTMF: no
> Dialing/CallwaitCAS: 0/0 Default law:
> ulaw Fax Handled: no Pulse phone: no
> DND: no1*CLI> Echo Cancellation:
> trixbox1128 taps trixbox1(unless TDM
> bridged) currently OFF Actual
> Confinfo: Num/0, Mode/0x0000 Actual
> Confmute: No
> Hookstate (FXS only): Onhook
A cat of /etc/asterisk/dahdi.conf shows:
[trixbox1.localdomain ~]# cat /etc/asterisk/dahdi-channels.conf
; Autogenerated by /usr/sbin/dahdi_genconf on Tue May 25 17:45:13 2010
; If you edit this file and execute /usr/sbin/dahdi_genconf again,
; your manual changes will be LOST.
; Dahdi Channels Configurations (chan_dahdi.conf)
;
; This is not intended to be a complete chan_dahdi.conf. Rather, it is intended
; to be #include-d by /etc/chan_dahdi.conf that will include the global settings
;
; Span 1: WCTDM/4 "Wildcard TDM400P REV I Board 5" (MASTER)
;;; line="1 WCTDM/4/0 FXSKS (SWEC: MG2)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 1
callerid=
group=
context=default
I have configured a "ZAP Trunk (DAHDI compatibility Mode)" with the ZAP identifier 1 and an outbound route, but when ever I try to make an external call via it I get the "All Circuits are busy now, please try your call again later message".
I have one outbound route which uses the dial pattern 9|. and the Trunk Zap/1 and one Zap Trunk which uses Zap Identifier (trunk name): 1 and has no Dial Rules.
The FXO module is directly connected to our phone line from BT via a BT-RJ11 cable.
When running tail -f /var/log/asterisk/full and placing a call I get the following output:
[May 26 11:10:52] VERBOSE[2723] logger.c: == Using SIP RTP TOS bits 184
[May 26 11:10:52] VERBOSE[2723] logger.c: == Using SIP RTP CoS mark 5
[May 26 11:10:52] VERBOSE[2723] logger.c: == Using SIP VRTP TOS bits 136
[May 26 11:10:52] VERBOSE[2723] logger.c: == Using SIP VRTP CoS mark 6
[May 26 11:10:52] WARNING[2661] pbx.c: FONALITY: This thread has already held the conlock, skip locking
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:1] Macro("SIP/801-b7ce8c28", "user-callerid,SKIPTTL,") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:1] Set("SIP/801-b7ce8c28", "AMPUSER=801") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:2] GotoIf("SIP/801-b7ce8c28", "0?report") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:3] ExecIf("SIP/801-b7ce8c28", "1?Set(REALCALLERIDNUM=801)") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:4] Set("SIP/801-b7ce8c28", "AMPUSER=801") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:5] Set("SIP/801-b7ce8c28", "AMPUSERCIDNAME=Jona") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:6] GotoIf("SIP/801-b7ce8c28", "0?report") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:7] Set("SIP/801-b7ce8c28", "AMPUSERCID=801") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:8] Set("SIP/801-b7ce8c28", "CALLERID(all)="Jona" <801>") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:9] Set("SIP/801-b7ce8c28", "REALCALLERIDNUM=801") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:10] ExecIf("SIP/801-b7ce8c28", "0?Set(CHANNEL(language)=)") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:11] GotoIf("SIP/801-b7ce8c28", "1?continue") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Goto (macro-user-callerid,s,20)
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:20] NoOp("SIP/801-b7ce8c28", "Using CallerID "Jona" <801>") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:2] Set("SIP/801-b7ce8c28", "_NODEST=") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:3] Macro("SIP/801-b7ce8c28", "record-enable,801,OUT,") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:1] GotoIf("SIP/801-b7ce8c28", "1?check") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Goto (macro-record-enable,s,4)
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:4] AGI("SIP/801-b7ce8c28", "recordingcheck,20100526-111052,1274868652.1") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
[May 26 11:10:52] VERBOSE[2858] logger.c: recordingcheck,20100526-111052,1274868652.1: Outbound recording not enabled
[May 26 11:10:52] VERBOSE[2858] logger.c: -- <SIP/801-b7ce8c28>AGI Script recordingcheck completed, returning 0
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:5] MacroExit("SIP/801-b7ce8c28", "") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:4] Macro("SIP/801-b7ce8c28", "dialout-trunk,1,01483890915,") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:1] Set("SIP/801-b7ce8c28", "DIAL_TRUNK=1") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:2] GosubIf("SIP/801-b7ce8c28", "0?sub-pincheck,s,1") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:3] GotoIf("SIP/801-b7ce8c28", "0?disabletrunk,1") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:4] Set("SIP/801-b7ce8c28", "DIAL_NUMBER=01483890915") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:5] Set("SIP/801-b7ce8c28", "DIAL_TRUNK_OPTIONS=tr") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:6] Set("SIP/801-b7ce8c28", "OUTBOUND_GROUP=OUT_1") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:7] GotoIf("SIP/801-b7ce8c28", "1?nomax") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Goto (macro-dialout-trunk,s,9)
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:9] GotoIf("SIP/801-b7ce8c28", "0?skipoutcid") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:10] Set("SIP/801-b7ce8c28", "DIAL_TRUNK_OPTIONS=") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:11] Macro("SIP/801-b7ce8c28", "outbound-callerid,1") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:1] ExecIf("SIP/801-b7ce8c28", "0?Set(CALLERPRES()=)") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:2] ExecIf("SIP/801-b7ce8c28", "0?Set(REALCALLERIDNUM=801)") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:3] GotoIf("SIP/801-b7ce8c28", "1?normcid") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Goto (macro-outbound-callerid,s,6)
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:6] Set("SIP/801-b7ce8c28", "USEROUTCID=") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:7] Set("SIP/801-b7ce8c28", "EMERGENCYCID=") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:8] Set("SIP/801-b7ce8c28", "TRUNKOUTCID=") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:9] GotoIf("SIP/801-b7ce8c28", "1?trunkcid") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Goto (macro-outbound-callerid,s,12)
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:12] ExecIf("SIP/801-b7ce8c28", "0?Set(CALLERID(all)=)") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:13] ExecIf("SIP/801-b7ce8c28", "0?Set(CALLERID(all)=)") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:14] ExecIf("SIP/801-b7ce8c28", "0?Set(CALLERPRES()=prohib_passed_screen)") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:12] ExecIf("SIP/801-b7ce8c28", "0?AGI(fixlocalprefix)") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:13] Set("SIP/801-b7ce8c28", "OUTNUM=01483890915") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:14] Set("SIP/801-b7ce8c28", "custom=DAHDI/1") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:15] ExecIf("SIP/801-b7ce8c28", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^))") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:16] Macro("SIP/801-b7ce8c28", "dialout-trunk-predial-hook,") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:1] MacroExit("SIP/801-b7ce8c28", "") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:17] GotoIf("SIP/801-b7ce8c28", "0?bypass,1") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:18] GotoIf("SIP/801-b7ce8c28", "0?customtrunk") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:19] Dial("SIP/801-b7ce8c28", "DAHDI/1/01483890915,300,") in new
stack
[May 26 11:10:52] WARNING[2858] app_dial.c: Unable to create channel of type 'DAHDI' (cause 0 - Unknown)
[May 26 11:10:52] VERBOSE[2858] logger.c: == Everyone is busy/congested at this time (1:0/0/1)
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:20] Goto("SIP/801-b7ce8c28", "s-CHANUNAVAIL,1") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:1] GotoIf("SIP/801-b7ce8c28", "1?noreport") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Goto (macro-dialout-trunk,s-CHANUNAVAIL,3)
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:3] NoOp("SIP/801-b7ce8c28", "TRUNK Dial failed due to CHANUNAVAIL (hangupcause: 0) - failing through to other trunks") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:5] Macro("SIP/801-b7ce8c28", "outisbusy,") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- Executing [
[email protected]:1] Playback("SIP/801-b7ce8c28", "all-circuits-busy-now,noanswer") in new
stack
[May 26 11:10:52] VERBOSE[2858] logger.c: -- <SIP/801-b7ce8c28> Playing 'all-circuits-busy-now.ulaw' (language 'en')
[May 26 11:10:54] VERBOSE[2858] logger.c: -- Executing [
[email protected]:2] Playback("SIP/801-b7ce8c28", "pls-try-call-later,noanswer") in new
stack
[May 26 11:10:54] VERBOSE[2858] logger.c: -- <SIP/801-b7ce8c28> Playing 'pls-try-call-later.ulaw' (language 'en')
[May 26 11:10:54] WARNING[2661] pbx.c: FONALITY: This thread has already held the conlock, skip locking
[May 26 11:10:54] VERBOSE[2858] logger.c: == Spawn extension (macro-outisbusy, s, 2) exited non-zero on 'SIP/801-b7ce8c28' in macro 'outisbusy'
[May 26 11:10:54] VERBOSE[2858] logger.c: == Spawn extension (from-internal, 901483890915, 5) exited non-zero on 'SIP/801-b7ce8c28'
[May 26 11:10:54] VERBOSE[2858] logger.c: -- Executing [
[email protected]:1] Macro("SIP/801-b7ce8c28", "hangupcall") in new
stack
[May 26 11:10:54] VERBOSE[2858] logger.c: -- Executing [
[email protected]:1] ResetCDR("SIP/801-b7ce8c28", "vw") in new
stack
[May 26 11:10:54] VERBOSE[2858] logger.c: -- Executing [
[email protected]:2] NoCDR("SIP/801-b7ce8c28", "") in new
stack
[May 26 11:10:54] VERBOSE[2858] logger.c: -- Executing [
[email protected]:3] GotoIf("SIP/801-b7ce8c28", "1?skiprg") in new
stack
[May 26 11:10:54] VERBOSE[2858] logger.c: -- Goto (macro-hangupcall,s,6)
[May 26 11:10:55] VERBOSE[2858] logger.c: -- Executing [
[email protected]:6] GotoIf("SIP/801-b7ce8c28", "1?skipblkvm") in new
stack
[May 26 11:10:55] VERBOSE[2858] logger.c: -- Goto (macro-hangupcall,s,9)
[May 26 11:10:55] VERBOSE[2858] logger.c: -- Executing [
[email protected]:9] GotoIf("SIP/801-b7ce8c28", "1?theend") in new
stack
[May 26 11:10:55] VERBOSE[2858] logger.c: -- Goto (macro-hangupcall,s,11)
[May 26 11:10:55] VERBOSE[2858] logger.c: -- Executing [
[email protected]:11] Hangup("SIP/801-b7ce8c28", "") in new
stack
[May 26 11:10:55] VERBOSE[2858] logger.c: == Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'SIP/801-b7ce8c28' in macro 'hangupcall'
[May 26 11:10:55] VERBOSE[2858] logger.c: == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/801-b7ce8c28'
I'm guessing I've missed a configuration step somewhere but no idea where, any help greatly appreciated.