I'm struggling to get my dialplan to work with a simple analog fax machine. I have TDM400B zaptel card with an FXO and FXS port. I have the FXO port connected to the POTS machine and the FAX machine connected to the FXS port. The FAX machine itself works fine, I can FAX outgoing messages fine. I can also dial the FAX extension from the internal context, the FAX machine answers and I hear the FAX tones. I'm struggling to get the fax detection to work, causing a transfer to the FAX machine. I think the fax transfer starts, but for some reason the dialplan "falls through" and the connection is dropped immediately. This should be so simple ... version: asterisk*CLI> core show version Asterisk 1.6.0-beta2 built by jduda @ asterisk on a i686 running Linux on 2008-02-03 03:23:54 UTC zapata.conf has: ; FAX machine connected here ;immediate=no ;busydetect=yes ;busycount=8 ;musiconhold=default faxdetect=no signalling=fxo_ks context=internal channel => 1 ; PSTN connected here ;immediate=no ;busydetect=yes ;busycount=8 ;musiconhold=default mwimonitor=yes ;mwilevel=512 mwimonitornotify=/usr/local/sbin/zapnotify.sh faxdetect=incoming signalling=fxs_ks context=incoming channel => 4 extensions.conf has: [fax-hardware] exten => s,1,StopPlaytones exten => s,2,Dial(ZAP/1,40,tr) exten => s,3,Goto(s-${DIALSTATUS},1) exten => s-NOANSWER,1,Hangup exten => _s-.,1,Goto(s-NOANSWER,1) [incoming] exten => fax,1,Goto(fax-hardware,s,1) exten => s,1,Goto(incoming-dial,s,1) exten => <my phone number>,1,Goto(incoming-dial,s,1) [incoming-dial] exten => s,1,Zapateller(nocallerid) exten => s,2,SetMusicOnHold(icecast) exten => s,3,GotoIf(${DB_EXISTS(blacklist/${CALLERID(number)})}?custom-blacklisted,s,1) exten => s,4,Set(DB(CALLTRACE/lastcaller)=${CALLERID(number)}) exten => s,5,AGI(MisterHouse.agi,"CallerID") exten => s,6,Answer exten => s,7,Playtones(ring) exten => s,8,Dial(${PHONES0}&${PHONES1}&${PHONES2}&${PHONES7}&${PHONES11},20,tr) exten => s,9,Goto(s-${DIALSTATUS},1) ; if no fax, branch on dialstatus exten => s-NOANSWER,1,Macro(voicemail,${PHONES0VM}) exten => s-NOANSWER,2,Hangup() exten => s-BUSY,1,Macro(voicemail,${PHONES0VM}) exten => s-BUSY,2,Hangup() exten => _s-.,1,Goto(s-NOANSWER,1) ; everything else is treated as no answer exten => s,105,Goto(5) exten => fax,1,Goto(fax-hardware,s,1) When the FAX call comes in, I get this: [Feb 14 20:01:03] NOTICE[1826]: chan_zap.c:7306 mwi_thread: Got event 18 (Ring Begin)... Passing along to ss_thread -- Starting simple switch on 'Zap/4-1' [Feb 14 20:01:04] NOTICE[1826]: chan_zap.c:7066 ss_thread: Got event 2 (Ring/Answered)... -- Executing [s at incoming:1] Goto("Zap/4-1", "incoming-dial,s,1") in new stack -- Goto (incoming-dial,s,1) -- Executing [s at incoming-dial:1] Zapateller("Zap/4-1", "nocallerid") in new stack -- Executing [s at incoming-dial:2] SetMusicOnHold("Zap/4-1", "icecast") in new stack -- Executing [s at incoming-dial:3] GotoIf("Zap/4-1", "0?custom-blacklisted,s,1") in new stack -- Executing [s at incoming-dial:4] Set("Zap/4-1", "DB(CALLTRACE/lastcaller)=8884732963") in new stack -- Executing [s at incoming-dial:5] AGI("Zap/4-1", "MisterHouse.agi,"CallerID"") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/MisterHouse.agi MisterHouse.agi,"CallerID": AGI Environment Dump: MisterHouse.agi,"CallerID": -- accountcode MisterHouse.agi,"CallerID": -- arg_1 = CallerID MisterHouse.agi,"CallerID": -- callerid = 8884732963 MisterHouse.agi,"CallerID": -- calleridname = UNAVAILABLE MisterHouse.agi,"CallerID": -- callingani2 = 0 MisterHouse.agi,"CallerID": -- callingpres = 0 MisterHouse.agi,"CallerID": -- callingtns = 0 MisterHouse.agi,"CallerID": -- callington = 0 MisterHouse.agi,"CallerID": -- channel = Zap/4-1 MisterHouse.agi,"CallerID": -- context = incoming-dial MisterHouse.agi,"CallerID": -- dnid = unknown MisterHouse.agi,"CallerID": -- enhanced = 0.0 MisterHouse.agi,"CallerID": -- extension = s MisterHouse.agi,"CallerID": -- language = en MisterHouse.agi,"CallerID": -- priority = 5 MisterHouse.agi,"CallerID": -- rdnis = unknown MisterHouse.agi,"CallerID": -- request = MisterHouse.agi MisterHouse.agi,"CallerID": -- threadid = -1232077936 MisterHouse.agi,"CallerID": -- type = Zap MisterHouse.agi,"CallerID": -- uniqueid = 1203037263.20 MisterHouse.agi,"CallerID": -- version = 1.6.0-beta2 MisterHouse.agi,"CallerID": here CallerID MisterHouse.agi,"CallerID": CallerID: 8884732963 Line: Zap/4-1 -- <Zap/4-1>AGI Script MisterHouse.agi completed, returning 0 -- Executing [s at incoming-dial:6] Answer("Zap/4-1", "") in new stack -- Executing [s at incoming-dial:7] PlayTones("Zap/4-1", "ring") in new stack -- Executing [s at incoming-dial:8] Dial("Zap/4-1", "SIP/100&SIP/101&SIP/102&SIP/107&SIP/111,20,tr") in new stack == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 == Using UDPTL TOS bits 184 == Using UDPTL CoS mark 5 -- Called 100 == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 == Using UDPTL TOS bits 184 == Using UDPTL CoS mark 5 -- Called 101 == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 == Using UDPTL TOS bits 184 == Using UDPTL CoS mark 5 -- Called 102 == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 == Using UDPTL TOS bits 184 == Using UDPTL CoS mark 5 -- Called 107 == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 == Using UDPTL TOS bits 184 == Using UDPTL CoS mark 5 -- Called 111 -- SIP/100-0827d8d0 is ringing -- SIP/101-0828f808 is ringing -- SIP/102-082a1ba0 is ringing -- SIP/107-082b3f50 is ringing -- SIP/111-082c6698 is ringing -- Redirecting Zap/4-1 to fax extension == Spawn extension (incoming-dial, fax, 0) exited non-zero on 'Zap/4-1' -- Auto fallthrough, channel 'Zap/4-1' status is 'CANCEL' -- Hungup 'Zap/4-1' asterisk*CLI> I cannot figure out why I'm getting Auto fallthrough here. Is (incoming-dial, fax, 0) expected? Why not , 1 ? Thanks for any help. Jim