PDA

View Full Version : Fax detection. How does it work?



josecanuc
02-16-11, 05:46 PM
How does fax detection on an incoming route work?

I set up my only incoming route to detect faxes and set the proper destination for detected fax versus non-fax.

When I send a fax from a physical machine coming in through a DID via IAX2, the WARP never seems to detect the fax. I have tried letting it ring-ring-ring, and answering and listening to the sending machine beep for a while.

mrecoskie
02-16-11, 07:21 PM
Do you have a Asterisk CLI trace with a verbosity set - eg. 'core set verbose 9'?

josecanuc
02-17-11, 11:03 AM
Here's a trace. I let it ring for about 10 seconds before answering the extension and listened for another 7-8 seconds before hanging up.




Verbosity was 0 and is now 9
-- Accepting AUTHENTICATED call from 74.54.54.178:
> requested format = ulaw,
> requested prefs = (ulaw),
> actual format = ulaw,
> host prefs = (ulaw),
> priority = mine
-- Executing [9794460363@from-trunk:1] Set("IAX2/voipms-8054", "__FROM_DID=9794460363") in new stack
-- Executing [9794460363@from-trunk:2] ExecIf("IAX2/voipms-8054", "0 |Set|CALLERID(name)=9798466900") in new stack
-- Executing [9794460363@from-trunk:3] Set("IAX2/voipms-8054", "__CALLINGPRES_SV=allowed_not_screened") in new stack
-- Executing [9794460363@from-trunk:4] SetCallerPres("IAX2/voipms-8054", "allowed_not_screened") in new stack
-- Executing [9794460363@from-trunk:5] Set("IAX2/voipms-8054", "FAX_DEST=ext-fax^4003^1") in new stack
-- Executing [9794460363@from-trunk:6] Answer("IAX2/voipms-8054", "") in new stack
-- Executing [9794460363@from-trunk:7] Wait("IAX2/voipms-8054", "6") in new stack
-- Executing [9794460363@from-trunk:8] Goto("IAX2/voipms-8054", "from-did-direct|4003|1") in new stack
-- Goto (from-did-direct,4003,1)
-- Executing [4003@from-did-direct:1] Macro("IAX2/voipms-8054", "exten-vm|novm|4003") in new stack
-- Executing [s@macro-exten-vm:1] Macro("IAX2/voipms-8054", "user-callerid|") in new stack
-- Executing [s@macro-user-callerid:1] Set("IAX2/voipms-8054", "AMPUSER=9798466900") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("IAX2/voipms-8054", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("IAX2/voipms-8054", "1|Set|REALCALLERIDNUM=9798466900") in new stack
-- Executing [s@macro-user-callerid:4] Set("IAX2/voipms-8054", "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:5] Set("IAX2/voipms-8054", "AMPUSERCIDNAME=") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("IAX2/voipms-8054", "1?report") in new stack
-- Goto (macro-user-callerid,s,9)
-- Executing [s@macro-user-callerid:9] GotoIf("IAX2/voipms-8054", "0?continue") in new stack
-- Executing [s@macro-user-callerid:10] Set("IAX2/voipms-8054", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:11] GotoIf("IAX2/voipms-8054", "1?continue") in new stack
-- Goto (macro-user-callerid,s,18)
-- Executing [s@macro-user-callerid:18] NoOp("IAX2/voipms-8054", "Using CallerID "9798466900" <9798466900>") in new stack
-- Executing [s@macro-exten-vm:2] Set("IAX2/voipms-8054", "RingGroupMethod=none") in new stack
-- Executing [s@macro-exten-vm:3] Set("IAX2/voipms-8054", "VMBOX=novm") in new stack
-- Executing [s@macro-exten-vm:4] Set("IAX2/voipms-8054", "EXTTOCALL=4003") in new stack
-- Executing [s@macro-exten-vm:5] Set("IAX2/voipms-8054", "CFUEXT=") in new stack
-- Executing [s@macro-exten-vm:6] Set("IAX2/voipms-8054", "CFBEXT=") in new stack
-- Executing [s@macro-exten-vm:7] Set("IAX2/voipms-8054", "RT=""") in new stack
-- Executing [s@macro-exten-vm:8] Macro("IAX2/voipms-8054", "record-enable|4003|IN") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("IAX2/voipms-8054", "1?check") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] ExecIf("IAX2/voipms-8054", "0|MacroExit|") in new stack
-- Executing [s@macro-record-enable:5] GotoIf("IAX2/voipms-8054", "0?Group:OUT") in new stack
-- Goto (macro-record-enable,s,16)
-- Executing [s@macro-record-enable:16] GotoIf("IAX2/voipms-8054", "1?IN") in new stack
-- Goto (macro-record-enable,s,21)
-- Executing [s@macro-record-enable:21] ExecIf("IAX2/voipms-8054", "0|MacroExit|") in new stack
-- Executing [s@macro-record-enable:22] NoOp("IAX2/voipms-8054", "Recording enable for 4003") in new stack
-- Executing [s@macro-record-enable:23] Set("IAX2/voipms-8054", "CALLFILENAME=20110217-150049-1297954843.12") in new stack
-- Executing [s@macro-record-enable:24] MixMonitor("IAX2/voipms-8054", "/mnt/sd/recordings/20110217-150049-1297954843.12.ulaw||") in new stack
== Begin MixMonitor Recording IAX2/voipms-8054
-- Executing [s@macro-record-enable:25] MacroExit("IAX2/voipms-8054", "") in new stack
-- Executing [s@macro-exten-vm:9] Macro("IAX2/voipms-8054", "dial||tr|4003") in new stack
-- Executing [s@macro-dial:1] GotoIf("IAX2/voipms-8054", "1?dial") in new stack
-- Goto (macro-dial,s,3)
-- Executing [s@macro-dial:3] AGI("IAX2/voipms-8054", "dialparties.agi") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
dialparties.agi: Starting New Dialparties.agi
== Parsing '/etc/asterisk/manager.conf': Found
== Parsing '/etc/asterisk/manager_additional.conf': Found
== Parsing '/etc/asterisk/manager_custom.conf': Found
== Manager 'admin' logged on from 127.0.0.1
dialparties.agi: Caller ID name is '9798466900' number is '9798466900'
dialparties.agi: USE_CONFIRMATION: 'FALSE'
dialparties.agi: RINGGROUP_INDEX: ''
dialparties.agi: Methodology of ring is 'none'
-- dialparties.agi: Added extension 4003 to extension map
> dialparties.agi: Extension 4003 has call screening off
-- dialparties.agi: Extension 4003 cf is disabled
-- dialparties.agi: Extension 4003 do not disturb is disabled
> dialparties.agi: extnum 4003 has: cw: 1; hascfb: 0 [] hascfu: 0 []
dialparties.agi: ExtensionState: 0
-- dialparties.agi: dbset CALLTRACE/4003 to 9798466900
-- dialparties.agi: Filtered ARG3: 4003
== Manager 'admin' logged off from 127.0.0.1
-- AGI Script dialparties.agi completed, returning 0
-- Executing [s@macro-dial:7] Dial("IAX2/voipms-8054", "PIKA/fxs/3||tr") in new stack
-- group 0/0 channel 2/2 type=5
-- Called fxs/3
-- PIKA/fxs/3 is ringing
-- Channel PIKA/fxs/3 offhook state = 1.
-- PIKA/fxs/3 answered IAX2/voipms-8054
-- Channel PIKA/fxs/3 onhook.
-- Executing [h@macro-dial:1] Macro("IAX2/voipms-8054", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("IAX2/voipms-8054", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,4)
-- Executing [s@macro-hangupcall:4] GotoIf("IAX2/voipms-8054", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,7)
-- Executing [s@macro-hangupcall:7] GotoIf("IAX2/voipms-8054", "1?theend") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] Hangup("IAX2/voipms-8054", "") in new stack
== Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'IAX2/voipms-8054' in macro 'hangupcall'
== Spawn h extension (macro-dial, h, 1) exited non-zero on 'IAX2/voipms-8054'
== Spawn extension (macro-dial, s, 7) exited non-zero on 'IAX2/voipms-8054' in macro 'dial'
== Spawn extension (macro-exten-vm, s, 9) exited non-zero on 'IAX2/voipms-8054' in macro 'exten-vm'
== Spawn extension (from-did-direct, 4003, 1) exited non-zero on 'IAX2/voipms-8054'
== End MixMonitor Recording IAX2/voipms-8054
-- Hungup 'IAX2/voipms-8054'
talk*CLI>

mrecoskie
02-17-11, 12:22 PM
I think the proper way to do this is using NVFaxDetect app. (http://www.voip-info.org/wiki/index.php?page_id=1917)
I assume assigning a specific DID for faxes is not an option.