I'm having trouble getting outbound calls going with aah 1.3 and a tdm400p w/ 4 FXO. Incoming calls work fine, outbound I get this: -- Executing SetVar("SIP/231-af2b", "OUTNUM=6643955") in new stack -- Executing Cut("SIP/231-af2b", "custom=OUT_1|:|1") in new stack -- Executing GotoIf("SIP/231-af2b", "0?19") in new stack -- Executing Dial("SIP/231-af2b", "ZAP/g0/6643955") in new stack -- Called g0/6643955 -- Hungup 'Zap/1-1' == No one is available to answer at this time -- Executing Goto("SIP/231-af2b", "s-NOANSWER|1") in new stack -- Goto (macro-dialout-trunk,s-NOANSWER,1) -- Executing NoOp("SIP/231-af2b", "Dial failed due to NOANSWER") in new stack -- Executing Macro("SIP/231-af2b", "outisbusy") in new stack -- Executing Playback("SIP/231-af2b", "allison7/all-circuits-busy-now") in new stack -- Playing 'allison7/all-circuits-busy-now' (language 'en') -- Executing Playback("SIP/231-af2b", "allison7/pls-try-call-later") in new stack -- Playing 'allison7/pls-try-call-later' (language 'en') I'm not sure why (not reboot), but sometimes I get something like this: -- Executing SetVar("SIP/231-7e98", "OUTNUM=6643955") in new stack -- Executing Cut("SIP/231-7e98", "custom=OUT_1|:|1") in new stack -- Executing GotoIf("SIP/231-7e98", "0?19") in new stack -- Executing Dial("SIP/231-7e98", "ZAP/g0/6643955") in new stack -- Called g0/6643955 -- Zap/1-1 answered SIP/231-7e98 -- Hungup 'Zap/1-1' == Spawn extension (macro-dialout-trunk, s, 17) exited non-zero on 'SIP/231-7e98' in macro 'dialout-trunk' == Spawn extension (from-internal, 18005069511, 1) exited non-zero on 'SIP/231-7e98' -- Executing Macro("SIP/231-7e98", "hangupcall") in new stack -- Executing ResetCDR("SIP/231-7e98", "w") in new stack -- Executing NoCDR("SIP/231-7e98", "") in new stack -- Executing Wait("SIP/231-7e98", "5") in new stack == Spawn extension (macro-hangupcall, s, 3) exited non-zero on 'SIP/231-7e98' in macro 'hangupcall' == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/231-7e98' In this situation I can hear the call going through for a second or two, sometimes even hear the other end answer before * hangs up the channel. I've tried adding a w before ${ARG2} on line exten => s,11 (in extensions.conf below) but this has no effect. Here's some zapata.conf: [channels] language=en context=from-pstn signalling=fxs_ks usecallerid=yes hidecallerid=no callwaiting=yes usecallingpres=no callwaitingcallerid=yes threewaycalling=yes transfer=yes cancallforward=yes callreturn=yes echocancel=yes echocancelwhenbridged=no echotraining=800 rxgain=10.0 txgain=3.0 group=0 callgroup=1 pickupgroup=1 immediate=no faxdetect=incoming channel => 1-4 And part of extensions.conf: [macro-dialout-trunk] exten => s,1,GotoIf($[foo${ARG3} = foo]?3:2)) ; arg3 is pattern password exten => s,2,Authenticate(${ARG3}) exten => s,3,Macro(record-enable,${CALLERIDNUM},OUT) exten => s,4,GotoIf($[foo${ECID${CALLERIDNUM}} = foo]?7) ;check for CID override for exten exten => s,5,SetCallerID(${ECID${CALLERIDNUM}}) exten => s,6,Goto(9) exten => s,7,GotoIf($[foo${OUTCID_${ARG1}} = foo]?9) ;check for CID override for trunk exten => s,8,SetCallerID(${OUTCID_${ARG1}}) exten => s,9,SetGroup(OUT_${ARG1}) exten => s,10,CheckGroup(${OUTMAXCHANS_${ARG1}}) ; if we've used up the max channels, continue at 109 (n+101) exten => s,11,SetVar(DIAL_NUMBER=${ARG2}) exten => s,12,SetVar(DIAL_TRUNK=${ARG1}) exten => s,13,AGI(fixlocalprefix) ; this sets DIAL_NUMBER to the proper dial string for this trunk exten => s,14,SetVar(OUTNUM=${OUTPREFIX_${ARG1}}${DIAL_NUMBER}) ; OUTNUM is the final dial number exten => s,15,Cut(custom=OUT_${ARG1},:,1) ; Custom trunks are prefixed with "AMP:" exten => s,16,GotoIf($[${custom} = AMP]?19) exten => s,17,Dial(${OUT_${ARG1}}/${OUTNUM}) ; Regular Trunk Dial exten => s,18,Goto(s-${DIALSTATUS},1) ; This is a custom trunk. Substitute $OUTNUM$ with the actual number and rebuild the dialstring ; example trunks: "AMP:CAPI/XXXXXXXX:b$OUTNUM$,30,r", "AMP:OH323/$OUTNUM$@XX.XX.XX.XX:XXXX" exten => s,19,Cut(pre_num=OUT_${ARG1},$,1) exten => s,20,Cut(the_num=OUT_${ARG1},$,2) ; this is where we expect to find string OUTNUM exten => s,21,Cut(post_num=OUT_${ARG1},$,3) exten => s,22,GotoIf($[${the_num} = OUTNUM]?23:24) ; if we didn't find "OUTNUM", then skip to Dial exten => s,23,SetVar(the_num=${OUTNUM}) ; replace "OUTNUM" with the actual number to dial exten => s,24,Dial(${pre_num:4}${the_num}${post_num}) exten => s,25,Goto(s-${DIALSTATUS},1) exten => s,111,Noop(max channels used up) exten => s-BUSY,1,NoOp(Trunk is reporting BUSY) exten => s-BUSY,2,Busy() exten => s-BUSY,3,Wait(60) exten => s-BUSY,4,NoOp() exten => _s-.,1,NoOp(Dial failed due to ${DIALSTATUS}) Any ideas? Thanks, Dan