[asterisk-users] DialPlan help with Analog Fax Machine

Jim Duda jim at duda.tzo.com
Thu Feb 14 19:04:00 CST 2008


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








More information about the asterisk-users mailing list