Free PBX Fax

Dear all,

I was trying to configure freepbx to recieve faxes through our sip provider. I have verified with our sip provider that they do support fax t38 through sip trunk. I did enable an extension with fax enabled otion and email address. I have configured inbound rule for also with fax dedection for that extension. I see the followin on asterisk logs. What could be wrong?

Redirecting ‘SIP/AC-00000007’ to fax extension due to CNG detection
== Spawn extension (from-trunk, fax, 1) exited non-zero on ‘SIP/AC-00000007’
– Executing [fax@from-trunk:1] Goto(“SIP/AC-00000007”, “from-did-direct,285,1”) in new stack
– Goto (from-did-direct,285,1)
– Executing [285@from-did-direct:1] Set(“SIP/AC-00000007”, “__RINGTIMER=15”) in new stack
– Executing [285@from-did-direct:2] Macro(“SIP/AC-00000007”, “exten-vm,novm,285,0,0,0”) in new stack
– Executing [s@macro-exten-vm:1] Macro(“SIP/AC-00000007”, “user-callerid,”) in new stack
– Executing [s@macro-user-callerid:1] Set(“SIP/AC-00000007”, “TOUCH_MONITOR=1392730928.7”) in new stack
– Executing [s@macro-user-callerid:2] Set(“SIP/AC-00000007”, “AMPUSER=22555879”) in new stack
– Executing [s@macro-user-callerid:3] GotoIf(“SIP/AC-00000007”, “0?report”) in new stack
– Executing [s@macro-user-callerid:4] ExecIf(“SIP/AC-00000007”, “1?Set(REALCALLERIDNUM=22555879)”) in new stack
– Executing [s@macro-user-callerid:5] Set(“SIP/AC-00000007”, “AMPUSER=”) in new stack
– Executing [s@macro-user-callerid:6] Set(“SIP/AC-00000007”, “AMPUSERCIDNAME=”) in new stack
– Executing [s@macro-user-callerid:7] GotoIf(“SIP/AC-00000007”, “1?report”) in new stack
– Goto (macro-user-callerid,s,15)
– Executing [s@macro-user-callerid:15] GotoIf(“SIP/AC-00000007”, “0?continue”) in new stack
– Executing [s@macro-user-callerid:16] Set(“SIP/AC-00000007”, “__TTL=64”) in new stack
– Executing [s@macro-user-callerid:17] GotoIf(“SIP/AC-00000007”, “1?continue”) in new stack
– Goto (macro-user-callerid,s,28)
– Executing [s@macro-user-callerid:28] Set(“SIP/AC-00000007”, “CALLERID(number)=22555879”) in new stack
– Executing [s@macro-user-callerid:29] Set(“SIP/AC-00000007”, “CALLERID(name)=22555879”) in new stack
– Executing [s@macro-user-callerid:30] Set(“SIP/AC-00000007”, “CDR(cnum)=22555879”) in new stack
– Executing [s@macro-user-callerid:31] Set(“SIP/AC-00000007”, “CDR(cnam)=22555879”) in new stack
– Executing [s@macro-user-callerid:32] Set(“SIP/AC-00000007”, “CHANNEL(language)=en”) in new stack
– Executing [s@macro-exten-vm:2] Set(“SIP/AC-00000007”, “RingGroupMethod=none”) in new stack
– Executing [s@macro-exten-vm:3] Set(“SIP/AC-00000007”, “__EXTTOCALL=285”) in new stack
– Executing [s@macro-exten-vm:4] Set(“SIP/AC-00000007”, “__PICKUPMARK=285”) in new stack
– Executing [s@macro-exten-vm:5] Set(“SIP/AC-00000007”, “RT=”) in new stack
– Executing [s@macro-exten-vm:6] Gosub(“SIP/AC-00000007”, “sub-record-check,s,1(exten,285,)”) in new stack
– Executing [s@sub-record-check:1] Set(“SIP/AC-00000007”, “REC_POLICY_MODE_SAVE=”) in new stack
– Executing [s@sub-record-check:2] GotoIf(“SIP/AC-00000007”, “1?check”) in new stack
– Goto (sub-record-check,s,7)
– Executing [s@sub-record-check:7] Set(“SIP/AC-00000007”, “__MON_FMT=wav”) in new stack
– Executing [s@sub-record-check:8] GotoIf(“SIP/AC-00000007”, “1?next”) in new stack
– Goto (sub-record-check,s,11)
– Executing [s@sub-record-check:11] ExecIf(“SIP/AC-00000007”, “0?Return()”) in new stack
– Executing [s@sub-record-check:12] ExecIf(“SIP/AC-00000007”, “0?Set(__REC_POLICY_MODE=)”) in new stack
– Executing [s@sub-record-check:13] GotoIf(“SIP/AC-00000007”, “0?exten,1”) in new stack
– Executing [s@sub-record-check:14] Set(“SIP/AC-00000007”, “__REC_STATUS=INITIALIZED”) in new stack
– Executing [s@sub-record-check:15] Set(“SIP/AC-00000007”, “NOW=1392730930”) in new stack
– Executing [s@sub-record-check:16] Set(“SIP/AC-00000007”, “__DAY=18”) in new stack
– Executing [s@sub-record-check:17] Set(“SIP/AC-00000007”, “__MONTH=02”) in new stack
– Executing [s@sub-record-check:18] Set(“SIP/AC-00000007”, “__YEAR=2014”) in new stack
– Executing [s@sub-record-check:19] Set(“SIP/AC-00000007”, “__TIMESTR=20140218-154210”) in new stack
– Executing [s@sub-record-check:20] Set(“SIP/AC-00000007”, “__FROMEXTEN=222555879”) in new stack
– Executing [s@sub-record-check:21] Set(“SIP/AC-00000007”, “__CALLFILENAME=exten-285-22555879-20140218-154210-1392730928.7”) in new stack
– Executing [s@sub-record-check:22] Goto(“SIP/AC-00000007”, “exten,1”) in new stack
– Goto (sub-record-check,exten,1)
– Executing [exten@sub-record-check:1] GotoIf(“SIP/AC-00000007”, “0?callee”) in new stack
– Executing [exten@sub-record-check:2] Set(“SIP/AC-00000007”, “__REC_POLICY_MODE=dontcare”) in new stack
– Executing [exten@sub-record-check:3] GotoIf(“SIP/AC-00000007”, “1?caller”) in new stack
– Goto (sub-record-check,exten,10)
– Executing [exten@sub-record-check:10] Set(“SIP/AC-00000007”, “__REC_POLICY_MODE=”) in new stack
– Executing [exten@sub-record-check:11] GosubIf(“SIP/AC-00000007”, “0?record,1(exten,285,22555879)”) in new stack
– Executing [exten@sub-record-check:12] Return(“SIP/AC-00000007”, “”) in new stack
– Executing [s@macro-exten-vm:7] GotoIf(“SIP/AC-00000007”, “1?macrodial”) in new stack
– Goto (macro-exten-vm,s,13)
– Executing [s@macro-exten-vm:13] GosubIf(“SIP/AC-00000007”, “0?clrheader,1()”) in new stack
– Executing [s@macro-exten-vm:14] Macro(“SIP/AC-00000007”, “dial-one,Ttr,285”) in new stack
– Executing [s@macro-dial-one:1] Set(“SIP/AC-00000007”, “DEXTEN=285”) in new stack
– Executing [s@macro-dial-one:2] Set(“SIP/AC-00000007”, “DIALSTATUS_CW=”) in new stack
– Executing [s@macro-dial-one:3] GosubIf(“SIP/AC-00000007”, “0?screen,1()”) in new stack
– Executing [s@macro-dial-one:4] GosubIf(“SIP/AC-00000007”, “0?cf,1()”) in new stack
– Executing [s@macro-dial-one:5] GotoIf(“SIP/AC-00000007”, “1?skip1”) in new stack
– Goto (macro-dial-one,s,8)
– Executing [s@macro-dial-one:8] GotoIf(“SIP/AC-00000007”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:9] GotoIf(“SIP/AC-00000007”, “0?continue”) in new stack
– Executing [s@macro-dial-one:10] Set(“SIP/AC-00000007”, “EXTHASCW=ENABLED”) in new stack
– Executing [s@macro-dial-one:11] GotoIf(“SIP/AC-00000007”, “0?next1:cwinusebusy”) in new stack
– Goto (macro-dial-one,s,23)
– Executing [s@macro-dial-one:23] GotoIf(“SIP/AC-00000007”, “1?next3:continue”) in new stack
– Goto (macro-dial-one,s,24)
– Executing [s@macro-dial-one:24] ExecIf(“SIP/AC-00000007”, “0?Set(DIALSTATUS_CW=BUSY)”) in new stack
– Executing [s@macro-dial-one:25] GotoIf(“SIP/AC-00000007”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:26] GosubIf(“SIP/AC-00000007”, “1?dstring,1():dlocal,1()”) in new stack
– Executing [dstring@macro-dial-one:1] Set(“SIP/AC-00000007”, “DSTRING=”) in new stack
– Executing [dstring@macro-dial-one:2] Set(“SIP/AC-00000007”, “DEVICES=”) in new stack
– Executing [dstring@macro-dial-one:3] ExecIf(“SIP/AC-00000007”, “1?Return()”) in new stack
– Executing [s@macro-dial-one:27] GotoIf(“SIP/AC-00000007”, “1?nodial”) in new stack
– Goto (macro-dial-one,s,47)
– Executing [s@macro-dial-one:47] ExecIf(“SIP/AC-00000007”, “1?Set(DIALSTATUS=NOANSWER)”) in new stack
– Executing [s@macro-dial-one:48] NoOp(“SIP/AC-00000007”, “Returned from dial-one with nothing to call and DIALSTATUS: NOANSWER”) in new stack
– Executing [s@macro-dial-one:49] MacroExit(“SIP/AC-00000007”, “”) in new stack
– Executing [s@macro-exten-vm:15] Set(“SIP/AC-00000007”, “SV_DIALSTATUS=NOANSWER”) in new stack
– Executing [s@macro-exten-vm:16] GosubIf(“SIP/AC-00000007”, “0?docfu,1()”) in new stack
– Executing [s@macro-exten-vm:17] GosubIf(“SIP/AC-00000007”, “0?docfb,1()”) in new stack
– Executing [s@macro-exten-vm:18] Set(“SIP/AC-00000007”, “DIALSTATUS=NOANSWER”) in new stack
– Executing [s@macro-exten-vm:19] ExecIf(“SIP/AC-00000007”, “0?MacroExit()”) in new stack
– Executing [s@macro-exten-vm:20] GotoIf(“SIP/AC-00000007”, “1?s-NOANSWER,1”) in new stack
– Goto (macro-exten-vm,s-NOANSWER,1)
– Executing [s-NOANSWER@macro-exten-vm:1] GotoIf(“SIP/AC-00000007”, “0?exit,1”) in new stack
– Executing [s-NOANSWER@macro-exten-vm:2] PlayTones(“SIP/AC-00000007”, “congestion”) in new stack
– Executing [s-NOANSWER@macro-exten-vm:3] Congestion(“SIP/AC-00000007”, “10”) in new stack
== Spawn extension (macro-exten-vm, s-NOANSWER, 3) exited non-zero on ‘SIP/AC-00000007’ in macro ‘exten-vm’
== Spawn extension (from-did-direct, 285, 2) exited non-zero on ‘SIP/AC-00000007’
– Executing [h@from-did-direct:1] Macro(“SIP/AC-00000007”, “hangupcall,”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“SIP/AC-00000007”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [s@macro-hangupcall:3] ExecIf(“SIP/AC-00000007”, “0?Set(CDR(recordingfile)=)”) in new stack
– Executing [s@macro-hangupcall:4] Hangup(“SIP/AC-00000007”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘SIP/AC-00000007’ in macro ‘hangupcall’
== Spawn extension (from-did-direct, h, 1) exited non-zero on 'SIP/AC-00000007

Sorry the provider told me tha the Fax protocol is: G711Alaw passthrough. should it work with freepbx?

First you said your provider uses t.38 now you are saying pass through. Which is it?

Also this is between you are your provider. FreePBX Distro includes SPAN DSP that works with t.38 and FAX emulation mode.

If you installed with another distro I can’t comment.

Hi Skyking, Thank you for you reply. My provider is using g711 pass through for fax finialy, so i was wrong about t38. Do i need any extra settings on the trunk with my provider?I have just configure the settings i described for faxing. The telephony is working perfectly although the last 1 year we moved to sip. So we are trying now to move faxing also to sip.

If they say it works you should have to do nothing. Either direct it to a FAX extension for FAX to email or to an ATA. If choosing the ATA option you want to make sure you follow the manufacturers recommendations and program it properly for fax pass through.

FAX pass through is not very reliable.

Yes i have configure as i told you. It does recognize it is a fax as you can see on the logs below and redirect it to fax extension as you can see but then no answer as you can see.

Redirecting ‘SIP/AC-00000007’ to fax extension due to CNG detection
== Spawn extension (from-trunk, fax, 1) exited non-zero on ‘SIP/AC-00000007’