I set up a trixbox system with an A400P (1 FXO on Channel 1, 1 FXS on Channel 2). Everything worked fine.
Then, I installed PBX in a Flash on the same hardware (took the trixbox system off). I have the Trunks set up correctly (1 Zap Trunk with nothing in the Dial Rules and nothing in the Outbound Dial Prefix, so everything should pass through) and the Outbound Routes set correctly (1 Outbound Route with . in the dialing plan, so everything should pass through).
Now, I can’t ‘connect’ to the A400P. When I try to dial a number that should work, I get the dreaded “All circuits are busy now” message.
===========================================
Here’s my zapata.conf:
;
; Zapata telephony interface
;
; Configuration file
[trunkgroups]
[channels]
language=en
context=from-zaptel
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.0
group=0
callgroup=1
pickupgroup=1
immediate=no
;faxdetect=both
faxdetect=incoming
;faxdetect=outgoing
;faxdetect=no
;Include genzaptelconf configs
#include zapata-auto.conf
;Include AMP configs
#include zapata_additional.conf
===========================================
Here’s my zapata-auto.conf:
; 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 TDM400P REV E/F Board 1” (MASTER)
signalling=fxs_ks
; Note: this is a trunk. Create a ZAP trunk in AMP for Channel 1
context=from-zaptel
group=0
channel => 1
; channel 2, WCTDM, inactive.
; channel 3, WCTDM, inactive.
; channel 4, WCTDM, inactive.
===========================================
Here’s my zaptel.conf:
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 TDM400P REV E/F Board 1” (MASTER)
fxsks=1
Global data
loadzone = us
defaultzone = us
===========================================
ztcfg -vv shows this:
Zaptel Version: 1.4.12.1
Echo Canceller: MG2
Configuration
Channel map:
Channel 01: FXS Kewlstart (Default) (Slaves: 01)
1 channels to configure.
===========================================
zap show channels brings up this:
Chan Extension Context Language MOH Interpret
pseudo from-zaptel en default
1 from-zaptel en default
The ‘zap show channels’ command is deprecated and will be removed in a future release. Please use ‘dahdi show channels’ instead.
===========================================
zap show channel 1 brings up this:
Channel: 1
File Descriptor: 17
Span: 1
Extension:
Dialing: no
Context: from-zaptel
Caller ID:
Calling TON: 0
Caller ID name:
Destroy: 0
InAlarm: 0
Signalling Type: FXS Kewlstart
Radio: 0
Owner:
Real:
Callwait:
Threeway:
Confno: -1
Propagated Conference: -1
Real in conference: 0
DSP: no
Relax DTMF: no
Dialing/CallwaitCAS: 0/0
Default law: ulaw
Fax Handled: no
Pulse phone: no
Echo Cancellation: 128 taps unless TDM bridged, currently OFF
Actual Confinfo: Num/0, Mode/0x0000
Actual Confmute: No
Hookstate (FXS only): Onhook
The ‘zap show channel’ command is deprecated and will be removed in a future release. Please use ‘dahdi show channel’ instead.
===========================================
Watching what happens at the CLI prompt shows this:
-- Executing [13@from-internal:1] Macro("SIP/658072-08d7dbb0", "user-callerid|SKIPTTL|") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/658072-08d7dbb0", "AMPUSER=658072") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("SIP/658072-08d7dbb0", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("SIP/658072-08d7dbb0", "1|Set|REALCALLERIDNUM=658072") in new stack
-- Executing [s@macro-user-callerid:4] Set("SIP/658072-08d7dbb0", "AMPUSER=658072") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/658072-08d7dbb0", "AMPUSERCIDNAME=658072") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/658072-08d7dbb0", "0?report") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/658072-08d7dbb0", "AMPUSERCID=658072") in new stack
-- Executing [s@macro-user-callerid:8] Set("SIP/658072-08d7dbb0", "CALLERID(all)="658072" <658072>") in new stack
-- Executing [s@macro-user-callerid:9] Set("SIP/658072-08d7dbb0", "REALCALLERIDNUM=658072") in new stack
-- Executing [s@macro-user-callerid:10] ExecIf("SIP/658072-08d7dbb0", "0|Set|CHANNEL(language)=") in new stack
-- Executing [s@macro-user-callerid:11] GotoIf("SIP/658072-08d7dbb0", "1?continue") in new stack
-- Goto (macro-user-callerid,s,20)
-- Executing [s@macro-user-callerid:20] NoOp("SIP/658072-08d7dbb0", "Using CallerID "658072" <658072>") in new stack
-- Executing [13@from-internal:2] Set("SIP/658072-08d7dbb0", "_NODEST=") in new stack
-- Executing [13@from-internal:3] Macro("SIP/658072-08d7dbb0", "record-enable|658072|OUT|") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("SIP/658072-08d7dbb0", "1?check") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] AGI("SIP/658072-08d7dbb0", "recordingcheck|20081012-130249|1223834569.15") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
recordingcheck|20081012-130249|1223834569.15: Outbound recording not enabled
– AGI Script recordingcheck completed, returning 0
– Executing [s@macro-record-enable:5] MacroExit(“SIP/658072-08d7dbb0”, “”) in new stack
– Executing [13@from-internal:4] Macro(“SIP/658072-08d7dbb0”, “dialout-trunk|2|13||”) in new stack
– Executing [s@macro-dialout-trunk:1] Set(“SIP/658072-08d7dbb0”, “DIAL_TRUNK=2”) in new stack
– Executing [s@macro-dialout-trunk:2] GosubIf(“SIP/658072-08d7dbb0”, “0?sub-pincheck|s|1”) in new stack
– Executing [s@macro-dialout-trunk:3] GotoIf(“SIP/658072-08d7dbb0”, “0?disabletrunk|1”) in new stack
– Executing [s@macro-dialout-trunk:4] Set(“SIP/658072-08d7dbb0”, “DIAL_NUMBER=13”) in new stack
– Executing [s@macro-dialout-trunk:5] Set(“SIP/658072-08d7dbb0”, “DIAL_TRUNK_OPTIONS=tr”) in new stack
– Executing [s@macro-dialout-trunk:6] Set(“SIP/658072-08d7dbb0”, “OUTBOUND_GROUP=OUT_2”) in new stack
– Executing [s@macro-dialout-trunk:7] GotoIf(“SIP/658072-08d7dbb0”, “0?nomax”) in new stack
– Executing [s@macro-dialout-trunk:8] GotoIf(“SIP/658072-08d7dbb0”, “0?chanfull”) in new stack
– Executing [s@macro-dialout-trunk:9] GotoIf(“SIP/658072-08d7dbb0”, “0?skipoutcid”) in new stack
– Executing [s@macro-dialout-trunk:10] Set(“SIP/658072-08d7dbb0”, “DIAL_TRUNK_OPTIONS=”) in new stack
– Executing [s@macro-dialout-trunk:11] Macro(“SIP/658072-08d7dbb0”, “outbound-callerid|2”) in new stack
– Executing [s@macro-outbound-callerid:1] ExecIf(“SIP/658072-08d7dbb0”, “0|SetCallerPres|”) in new stack
– Executing [s@macro-outbound-callerid:2] ExecIf(“SIP/658072-08d7dbb0”, “0|Set|REALCALLERIDNUM=658072”) in new stack
– Executing [s@macro-outbound-callerid:3] GotoIf(“SIP/658072-08d7dbb0”, “1?normcid”) in new stack
– Goto (macro-outbound-callerid,s,6)
– Executing [s@macro-outbound-callerid:6] Set(“SIP/658072-08d7dbb0”, “USEROUTCID=”) in new stack
– Executing [s@macro-outbound-callerid:7] Set(“SIP/658072-08d7dbb0”, “EMERGENCYCID=”) in new stack
– Executing [s@macro-outbound-callerid:8] Set(“SIP/658072-08d7dbb0”, “TRUNKOUTCID=”) in new stack
– Executing [s@macro-outbound-callerid:9] GotoIf(“SIP/658072-08d7dbb0”, “1?trunkcid”) in new stack
– Goto (macro-outbound-callerid,s,12)
– Executing [s@macro-outbound-callerid:12] ExecIf(“SIP/658072-08d7dbb0”, “0|Set|CALLERID(all)=”) in new stack
– Executing [s@macro-outbound-callerid:13] GotoIf(“SIP/658072-08d7dbb0”, “1?exit”) in new stack
– Goto (macro-outbound-callerid,s,11)
– Executing [s@macro-outbound-callerid:11] MacroExit(“SIP/658072-08d7dbb0”, “”) in new stack
– Executing [s@macro-dialout-trunk:12] ExecIf(“SIP/658072-08d7dbb0”, “0|AGI|fixlocalprefix”) in new stack
– Executing [s@macro-dialout-trunk:13] Set(“SIP/658072-08d7dbb0”, “OUTNUM=13”) in new stack
– Executing [s@macro-dialout-trunk:14] Set(“SIP/658072-08d7dbb0”, “custom=ZAP/1”) in new stack
– Executing [s@macro-dialout-trunk:15] ExecIf(“SIP/658072-08d7dbb0”, “0|Set|DIAL_TRUNK_OPTIONS=M(setmusic^)”) in new stack
– Executing [s@macro-dialout-trunk:16] Macro(“SIP/658072-08d7dbb0”, “dialout-trunk-predial-hook|”) in new stack
– Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit(“SIP/658072-08d7dbb0”, “”) in new stack
– Executing [s@macro-dialout-trunk:17] GotoIf(“SIP/658072-08d7dbb0”, “0?bypass|1”) in new stack
– Executing [s@macro-dialout-trunk:18] GotoIf(“SIP/658072-08d7dbb0”, “0?customtrunk”) in new stack
– Executing [s@macro-dialout-trunk:19] Dial(“SIP/658072-08d7dbb0”, “ZAP/1/13|300|”) in new stack
== Everyone is busy/congested at this time (1:0/0/1)
– Executing [s@macro-dialout-trunk:20] Goto(“SIP/658072-08d7dbb0”, “s-CHANUNAVAIL|1”) in new stack
– Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
– Executing [s-CHANUNAVAIL@macro-dialout-trunk:1] GotoIf(“SIP/658072-08d7dbb0”, “1?noreport”) in new stack
– Goto (macro-dialout-trunk,s-CHANUNAVAIL,3)
– Executing [s-CHANUNAVAIL@macro-dialout-trunk:3] NoOp(“SIP/658072-08d7dbb0”, “TRUNK Dial failed due to CHANUNAVAIL (hangupcause: 0) - failing through to other trunks”) in new stack
– Executing [13@from-internal:5] Macro(“SIP/658072-08d7dbb0”, “outisbusy|”) in new stack
– Executing [s@macro-outisbusy:1] Playback(“SIP/658072-08d7dbb0”, “all-circuits-busy-now|noanswer”) in new stack
– <SIP/658072-08d7dbb0> Playing ‘all-circuits-busy-now’ (language ‘en’)
– Executing [s@macro-outisbusy:2] Playback(“SIP/658072-08d7dbb0”, “pls-try-call-later|noanswer”) in new stack
– <SIP/658072-08d7dbb0> Playing ‘pls-try-call-later’ (language ‘en’)
– Executing [s@macro-outisbusy:3] Macro(“SIP/658072-08d7dbb0”, “hangupcall”) in new stack
– Executing [s@macro-hangupcall:1] ResetCDR(“SIP/658072-08d7dbb0”, “w”) in new stack
– Executing [s@macro-hangupcall:2] NoCDR(“SIP/658072-08d7dbb0”, “”) in new stack
– Executing [s@macro-hangupcall:3] GotoIf(“SIP/658072-08d7dbb0”, “1?skiprg”) in new stack
– Goto (macro-hangupcall,s,6)
– Executing [s@macro-hangupcall:6] GotoIf(“SIP/658072-08d7dbb0”, “1?skipblkvm”) in new stack
– Goto (macro-hangupcall,s,9)
– Executing [s@macro-hangupcall:9] GotoIf(“SIP/658072-08d7dbb0”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,11)
– Executing [s@macro-hangupcall:11] Hangup(“SIP/658072-08d7dbb0”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on ‘SIP/658072-08d7dbb0’ in macro ‘hangupcall’
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on ‘SIP/658072-08d7dbb0’ in macro ‘outisbusy’
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on ‘SIP/658072-08d7dbb0’
I’ve seen posts on other forums regarding this problem with other cards. It almost appears to be a problem with some of the newer versions of the zaptel drivers, but I’m not sure. Is this a possiblity? If so, how can I go ‘back’ to an older driver (such as 1.4.8) that appeared to work?
John Rayfield, Jr.