i'm an IT italian tech assist , and I'm configured a VMware to run Asterisk 1.8.11 based on elastix+freepbx .
My dialplan is quiet easy,
INBOUND FAX CALL -> PBX inbound route -> mydestination (2000)
I've edited manually my dialplan and included in my /etc/asterisk/extensions_custom.conf , below is my customization
- Code: Select all
[from-internal-custom]
include => fax-digium-rx
[fax-digium-rx]
exten => 2000,1,NoOp(**** FAX FOR XXX INCOMING RX ****)
exten => 2000,n,Goto(fax-rx-conmet,receive,1)
[fax-rx-conmet]
exten => receive,1,NoOp(**** INCOMING FAX RX... ****)
exten => receive,n,Set(GLOBAL(FAXCOUNT)=$[${SHELL(ls -1 /var/spool/faxes/conmet/*.tif | wc -l)} +1])
exten => receive,n,Set(FAXFILE=fax-${CALLERID(num)}-${FAXCOUNT}.tif)
exten => receive,n,Set(GLOBAL(LASTFAXCALLERNUM)=${CALLERID(num)})
exten => receive,n,Set(GLOBAL(LASTFAXCALLERNAME)=${CALLERID(name)})
exten => receive,n,NoOp(**** SETTING FAXOPT ****)
exten => receive,n,Set(FAXOPT(ecm)=yes)
exten => receive,n,Set(FAXOPT(headerinfo)=<MYBUSINESSNAME>)
exten => receive,n,Set(FAXOPT(localstationid)=<MYFAXNO>)
exten => receive,n,Set(FAXOPT(maxrate)=14400)
exten => receive,n,Set(FAXOPT(minrate)=2400)
exten => receive,n,NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)})
exten => receive,n,NoOp(FAXOPT(headerinfo) : ${FAXOPT(headerinfo)})
exten => receive,n,NoOp(FAXOPT(localstationid) : ${FAXOPT(localstationid)})
exten => receive,n,NoOp(FAXOPT(maxrate) : ${FAXOPT(maxrate)})
exten => receive,n,NoOp(FAXOPT(minrate) : ${FAXOPT(minrate)})
exten => receive,n,NoOp(**** RECEIVING FAX : ${FAXFILE} ****)
exten => receive,n,ReceiveFAX(/var/spool/faxes/conmet/${FAXFILE},f)
; Hangup! Print FAXOPTs
exten => h,1,NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)})
exten => h,n,NoOp(FAXOPT(filename) : ${FAXOPT(filename)})
exten => h,n,NoOp(FAXOPT(headerinfo) : ${FAXOPT(headerinfo)})
exten => h,n,NoOp(FAXOPT(localstationid) : ${FAXOPT(localstationid)})
exten => h,n,NoOp(FAXOPT(maxrate) : ${FAXOPT(maxrate)})
exten => h,n,NoOp(FAXOPT(minrate) : ${FAXOPT(minrate)})
exten => h,n,NoOp(FAXOPT(pages) : ${FAXOPT(pages)})
exten => h,n,NoOp(FAXOPT(rate) : ${FAXOPT(rate)})
exten => h,n,NoOp(FAXOPT(remotestationid) : ${FAXOPT(remotestationid)})
exten => h,n,NoOp(FAXOPT(resolution) : ${FAXOPT(resolution)})
exten => h,n,NoOp(FAXOPT(status) : ${FAXOPT(status)})
exten => h,n,NoOp(FAXOPT(statusstr) : ${FAXOPT(statusstr)})
exten => h,n,NoOp(FAXOPT(error) : ${FAXOPT(error)})
exten => h,n,Set(PDFCNT=$[ ${SHELL(ls -1 /var/spool/faxes/conmet/pdf/*.pdf | wc -l)} +1])
exten => h,n,Set(FXN=${CALLERID(num)}-${PDFCNT})
exten => h,n,Set(FAXFILE=/var/spool/faxes/conmet/pdf/fax-${FXN}.pdf)
exten => h,n,Set(EXTEMAIL=<MYEMAILADDRESS>)
exten => h,n,Set(EXTNAME=FAX)
exten => h,n,Set(EXTCOMPANY=<MYBUSINESSNAME>)
exten => h,n,System(tiff2pdf -o /var/spool/faxes/conmet/pdf/fax-${FXN}.pdf /var/spool/faxes/conmet/fax-${CALLERID(num)}-${FAXCOUNT}.tif)
exten => h,n,System(sleep 3)
exten => h,n,NoOp(++++ NOTIFY TO AVANTFAX FOR WEB MANAGEMENT ++++)
exten => h,n,System(/var/www/avantfax/includes/faxrcvd.php /var/spool/faxes/conmet/fax-${CALLERID(num)}-${FAXCOUNT}.tif ttyIAX1)
my sip_general_additional.conf auto-generated from freepbx GUI is the following
- Code: Select all
vmexten=*97
faxdetect=yes
context=from-sip-external
callerid=Unknown
notifyringing=yes
notifyhold=yes
tos_sip=cs3
tos_audio=ef
tos_video=af41
alwaysauthreject=yes
useragent=FPBX-2.10.1(1.8.11.0)
disallow=all
allow=g729
allow=ulaw
allow=gsm
allow=slin
allow=alaw
notifycid=ignore-context
t38pt_rtp=no
t38pt_tcp=no
language=it
context=from-internal
callevents=no
jbenable=no
defaultexpiry=120
maxexpiry=3600
registerattempts=0
registertimeout=20
notifyhold=yes
notifyringing=yes
checkmwi=10
minexpiry=60
srvlookup=no
allowguest=yes
g726nonstandard=no
t38pt_udptl=yes
videosupport=no
maxcallbitrate=384
canreinvite=no
rtpholdtimeout=300
rtpkeepalive=0
rtptimeout=30
nat=no
externip=<MY_EXTERNAL_IP>
localnet=<MY_LOCAL_IP>/255.255.255.0
FFFA module details
- Code: Select all
freepbx*CLI> fax show capabilities
Registered FAX Technology Modules:
Type : DIGIUM
Description : Digium FAX Driver
Capabilities : SEND RECEIVE T.38 G.711 MULTI-DOC
Type : Spandsp
Description : Spandsp FAX Driver
Capabilities : SEND RECEIVE T.38 G.711
2 registered modules
freepbx*CLI> fax show settings
FAX For Asterisk Settings:
ECM: Enabled
Status Events: On
Minimum Bit Rate: 2400
Maximum Bit Rate: 14400
Modem Modulations Allowed: V17,V27,V29
FAX Technology Modules:
DIGIUM (Digium FAX Driver) Settings:
Maximum T.38 Packet Delay: 800
T.38 Session Packet Capture: Off
G.711 Session Audio Capture: On
Spandsp (Spandsp FAX Driver) Settings:
OUTPUT from a receiving fax
- Code: Select all
freepbx*CLI>
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [<MY_FAX_NO>@from-trunk:1] Set("SIP/ConMET_1-00000541", "__FROM_DID=<MY_FAX_NO>") in new stack
-- Executing [<MY_FAX_NO>@from-trunk:2] Set("SIP/ConMET_1-00000541", "CDR(did)=<MY_FAX_NO>") in new stack
-- Executing [<MY_FAX_NO>@from-trunk:3] ExecIf("SIP/ConMET_1-00000541", "0 ?Set(CALLERID(name)=<INCOMING_FAX_FROM>)") in new stack
-- Executing [<MY_FAX_NO>@from-trunk:4] Set("SIP/ConMET_1-00000541", "__CALLINGPRES_SV=allowed_not_screened") in new stack
-- Executing [<MY_FAX_NO>@from-trunk:5] Set("SIP/ConMET_1-00000541", "CALLERPRES()=allowed_not_screened") in new stack
-- Executing [<MY_FAX_NO>@from-trunk:6] Goto("SIP/ConMET_1-00000541", "ext-miscdests,2,1") in new stack
-- Goto (ext-miscdests,2,1)
-- Executing [2@ext-miscdests:1] NoOp("SIP/ConMET_1-00000541", "MiscDest: conmet-fax") in new stack
-- Executing [2@ext-miscdests:2] Goto("SIP/ConMET_1-00000541", "from-internal,2000,1") in new stack
-- Goto (from-internal,2000,1)
-- Executing [2000@from-internal:1] NoOp("SIP/ConMET_1-00000541", "**** FAX PER CON.MET. IN ARRIVO ****") in new stack
-- Executing [2000@from-internal:2] Goto("SIP/ConMET_1-00000541", "fax-rx-conmet,receive,1") in new stack
-- Goto (fax-rx-conmet,receive,1)
-- Executing [receive@fax-rx-conmet:1] NoOp("SIP/ConMET_1-00000541", "**** RICEZIONE FAX IN CORSO... ****") in new stack
-- Executing [receive@fax-rx-conmet:2] Set("SIP/ConMET_1-00000541", "GLOBAL(FAXCOUNT)=6") in new stack
== Setting global variable 'FAXCOUNT' to '6'
-- Executing [receive@fax-rx-conmet:3] Set("SIP/ConMET_1-00000541", "FAXFILE=fax-<INCOMING_FAX_FROM>-6.tif") in new stack
-- Executing [receive@fax-rx-conmet:4] Set("SIP/ConMET_1-00000541", "GLOBAL(LASTFAXCALLERNUM)=<INCOMING_FAX_FROM>") in new stack
== Setting global variable 'LASTFAXCALLERNUM' to '<INCOMING_FAX_FROM>'
-- Executing [receive@fax-rx-conmet:5] Set("SIP/ConMET_1-00000541", "GLOBAL(LASTFAXCALLERNAME)=Decor - Fax - ATA") in new stack
== Setting global variable 'LASTFAXCALLERNAME' to 'Decor - Fax - ATA'
-- Executing [receive@fax-rx-conmet:6] NoOp("SIP/ConMET_1-00000541", "**** SETTING FAXOPT ****") in new stack
-- Executing [receive@fax-rx-conmet:7] Set("SIP/ConMET_1-00000541", "FAXOPT(ecm)=yes") in new stack
-- Executing [receive@fax-rx-conmet:8] Set("SIP/ConMET_1-00000541", "FAXOPT(headerinfo)=ConMET srl") in new stack
-- Executing [receive@fax-rx-conmet:9] Set("SIP/ConMET_1-00000541", "FAXOPT(localstationid)=<MY_FAX_NO>") in new stack
-- Executing [receive@fax-rx-conmet:10] Set("SIP/ConMET_1-00000541", "FAXOPT(maxrate)=14400") in new stack
-- Executing [receive@fax-rx-conmet:11] Set("SIP/ConMET_1-00000541", "FAXOPT(minrate)=2400") in new stack
-- Executing [receive@fax-rx-conmet:12] NoOp("SIP/ConMET_1-00000541", "FAXOPT(ecm) : yes") in new stack
-- Executing [receive@fax-rx-conmet:13] NoOp("SIP/ConMET_1-00000541", "FAXOPT(headerinfo) : ConMET srl") in new stack
-- Executing [receive@fax-rx-conmet:14] NoOp("SIP/ConMET_1-00000541", "FAXOPT(localstationid) : <MY_FAX_NO>") in new stack
-- Executing [receive@fax-rx-conmet:15] NoOp("SIP/ConMET_1-00000541", "FAXOPT(maxrate) : 14400") in new stack
-- Executing [receive@fax-rx-conmet:16] NoOp("SIP/ConMET_1-00000541", "FAXOPT(minrate) : 2400") in new stack
-- Executing [receive@fax-rx-conmet:17] NoOp("SIP/ConMET_1-00000541", "**** RECEIVING FAX : fax-<INCOMING_FAX_FROM>-6.tif ****") in new stack
-- Executing [receive@fax-rx-conmet:18] ReceiveFAX("SIP/ConMET_1-00000541", "/var/spool/faxes/conmet/fax-<INCOMING_FAX_FROM>-6.tif,f") in new stack
-- Channel 'SIP/ConMET_1-00000541' receiving FAX '/var/spool/faxes/conmet/fax-<INCOMING_FAX_FROM>-6.tif'
== Using UDPTL TOS bits 184
== Using UDPTL CoS mark 5
-- Channel 'SIP/ConMET_1-00000541' FAX session '26' started
-- FAX handle 0: [ 000.002197 ], STAT_EVT_STRT_RX st: IDLE rt: IDLENSRX
-- FAX handle 0: [ 000.002350 ], STAT_EVT_RX_HW_RDY st: WT_RX_HW_RDY rt: RRDYNHRY
-- FAX handle 0: [ 000.002467 ], P30EVN_RECEIVE_STARTED
-- FAX handle 0: [ 000.002566 ], STAT_INFO_CSI
-- FAX handle 0: [ 000.002667 ], STAT_INFO_DIS
-- FAX handle 0: [ 002.173739 ], STAT_EVT_TX_V21_DONE st: WT_DIS_RSP rt: WDSRNT21
-- FAX handle 0: [ 005.493860 ], STAT_EVT_T4_EXP st: WT_DIS_RSP rt: RXXXNFRX
-- FAX handle 0: [ 005.493913 ], STAT_INFO_CSI
-- FAX handle 0: [ 005.493961 ], STAT_INFO_DIS
-- FAX handle 0: [ 007.665997 ], STAT_EVT_TX_V21_DONE st: WT_DIS_RSP rt: WDSRNT21
-- FAX handle 0: [ 010.995160 ], STAT_EVT_T4_EXP st: WT_DIS_RSP rt: RXXXNFRX
-- FAX handle 0: [ 010.995213 ], STAT_INFO_CSI
-- FAX handle 0: [ 010.995241 ], STAT_INFO_DIS
-- FAX handle 0: [ 013.163963 ], STAT_EVT_TX_V21_DONE st: WT_DIS_RSP rt: WDSRNT21
-- FAX handle 0: [ 015.607032 ], STAT_INFO_TSI
-- FAX handle 0: [ 015.984955 ], STAT_INFO_DCS
-- FAX handle 0: [ 015.985005 ], STAT_EVT_DCS st: WT_DIS_RSP rt: WDSRNDCS
-- FAX handle 0: [ 015.985039 ], STAT_NEG_V17_14400
-- FAX handle 0: [ 015.985062 ], STAT_NEG_MMR
-- FAX handle 0: [ 015.985098 ], STAT_NEG_A4
-- FAX handle 0: [ 015.985120 ], STAT_NEG_RES_204x98
-- FAX handle 0: [ 015.985140 ], STAT_NEG_ECM
-- FAX handle 0: [ 015.985158 ], STAT_EVT_SW_ECM st: WT_DIS_RSP rt: WDSRNSWE
-- FAX handle 0: [ 016.306927 ], STAT_EVT_RX_IMG_STRT st: RCV_ECM_TRN rt: UNEXPECT
-- FAX handle 0: [ 019.245924 ], STAT_EVT_RX_TRN_END st: RCV_ECM_TRN rt: RTCFNERT
-- FAX handle 0: [ 019.245978 ], STAT_FRM_CFR
-- FAX handle 0: [ 020.435118 ], STAT_EVT_TX_V21_DONE st: RCV_ECM_STRT rt: RECMNT21
-- FAX handle 0: [ 022.026856 ], STAT_EVT_RX_IMG_STRT st: RCV_ECM_STRT rt: RECMNSRI
-- FAX handle 0: [ 022.026906 ], P30EVN_PHASE_C
-- FAX handle 0: [ 022.026926 ], P30EVN_DOC_START
-- FAX handle 0: [ 022.026994 ], P30EVN_PAGE_START
-- FAX handle 0: [ 027.406803 ], STAT_EVT_RX_IMG_END st: RCV_ECM rt: RECMNERI
-- FAX handle 0: [ 028.806758 ], STAT_INFO_PPS_EOP
-- FAX handle 0: [ 028.806820 ], STAT_EVT_PPS_EOP st: F_END_ECM rt: FEEMNP_P
-- FAX handle 0: [ 028.806923 ], P30EVN_PAGE_END
-- FAX handle 0: [ 028.806945 ], P30EVN_DOC_END
-- FAX handle 0: [ 028.806961 ], STAT_FRM_MCF
-- FAX handle 0: [ 029.996792 ], STAT_EVT_TX_V21_DONE st: F_END_ECM rt: FECMNFCS
-- FAX handle 0: [ 031.905787 ], entering CLOSING state
-- FAX handle 0: [ 031.905831 ], STAT_FRM_DCN
-- FAX handle 0: [ 031.905853 ], entering CLOSING state
-- FAX handle 0: [ 031.905868 ], STAT_EVT_DCN st: F_END_ECM rt: FEEMNDCN
-- FAX handle 0: [ 034.408729 ], STAT_EVT_HW_CLOSE st: WT_HW_CLS rt: WCLSNCLS
-- FAX handle 0: [ 034.408924 ], STAT_SES_COMPLETE
-- FAX handle 0: [ 034.408953 ], P30EVN_COMPLETE
-- Channel 'SIP/ConMET_1-00000541' FAX session '26' is complete, result: 'SUCCESS' (FAX_SUCCESS), error: 'NO_ERROR', pages: 1, resolution: '204x98', transfer rate: '14400', remoteSID: ''
== Spawn extension (fax-rx-conmet, receive, 18) exited non-zero on 'SIP/ConMET_1-00000541'
-- Executing [h@fax-rx-conmet:1] NoOp("SIP/ConMET_1-00000541", "FAXOPT(ecm) : yes") in new stack
-- Executing [h@fax-rx-conmet:2] NoOp("SIP/ConMET_1-00000541", "FAXOPT(filename) : /var/spool/faxes/conmet/fax-<INCOMING_FAX_FROM>-6.tif") in new stack
-- Executing [h@fax-rx-conmet:3] NoOp("SIP/ConMET_1-00000541", "FAXOPT(headerinfo) : <MY_COMPANY>") in new stack
-- Executing [h@fax-rx-conmet:4] NoOp("SIP/ConMET_1-00000541", "FAXOPT(localstationid) : <MY_FAX_NO>") in new stack
-- Executing [h@fax-rx-conmet:5] NoOp("SIP/ConMET_1-00000541", "FAXOPT(maxrate) : 14400") in new stack
-- Executing [h@fax-rx-conmet:6] NoOp("SIP/ConMET_1-00000541", "FAXOPT(minrate) : 2400") in new stack
-- Executing [h@fax-rx-conmet:7] NoOp("SIP/ConMET_1-00000541", "FAXOPT(pages) : 1") in new stack
-- Executing [h@fax-rx-conmet:8] NoOp("SIP/ConMET_1-00000541", "FAXOPT(rate) : 14400") in new stack
-- Executing [h@fax-rx-conmet:9] NoOp("SIP/ConMET_1-00000541", "FAXOPT(remotestationid) : ") in new stack
-- Executing [h@fax-rx-conmet:10] NoOp("SIP/ConMET_1-00000541", "FAXOPT(resolution) : 204x98") in new stack
-- Executing [h@fax-rx-conmet:11] NoOp("SIP/ConMET_1-00000541", "FAXOPT(status) : SUCCESS") in new stack
-- Executing [h@fax-rx-conmet:12] NoOp("SIP/ConMET_1-00000541", "FAXOPT(statusstr) : FAX_SUCCESS") in new stack
-- Executing [h@fax-rx-conmet:13] NoOp("SIP/ConMET_1-00000541", "FAXOPT(error) : NO_ERROR") in new stack
-- Executing [h@fax-rx-conmet:14] Set("SIP/ConMET_1-00000541", "PDFCNT=6") in new stack
-- Executing [h@fax-rx-conmet:15] Set("SIP/ConMET_1-00000541", "FXN=<INCOMING_FAX_FROM>-6") in new stack
-- Executing [h@fax-rx-conmet:16] Set("SIP/ConMET_1-00000541", "FAXFILE=/var/spool/faxes/conmet/pdf/fax-<INCOMING_FAX_FROM>-6.pdf") in new stack
-- Executing [h@fax-rx-conmet:17] Set("SIP/ConMET_1-00000541", "EXTEMAIL=<MY_EMAIL_ADDR>") in new stack
-- Executing [h@fax-rx-conmet:18] Set("SIP/ConMET_1-00000541", "EXTNAME=FAX") in new stack
-- Executing [h@fax-rx-conmet:19] Set("SIP/ConMET_1-00000541", "EXTCOMPANY=<MY_COMPANY>") in new stack
-- Executing [h@fax-rx-conmet:20] System("SIP/ConMET_1-00000541", "tiff2pdf -o /var/spool/faxes/conmet/pdf/fax-<INCOMING_FAX_FROM>-6.pdf /var/spool/faxes/conmet/fax-<INCOMING_FAX_FROM>-6.tif") in new stack
-- Executing [h@fax-rx-conmet:21] System("SIP/ConMET_1-00000541", "sleep 3") in new stack
-- Executing [h@fax-rx-conmet:22] NoOp("SIP/ConMET_1-00000541", "++++ NOTIFICA VERSO AVANTFAX PER LA GESTIONE VIA WEB ++++") in new stack
-- Executing [h@fax-rx-conmet:23] System("SIP/ConMET_1-00000541", "/var/www/avantfax/includes/faxrcvd.php /var/spool/faxes/conmet/fax-<INCOMING_FAX_FROM>-6.tif ttyIAX1") in new stack
-- Registered IAX2 '2000' (AUTHENTICATED) at 127.0.0.1:40000
-- Registered IAX2 '3000' (AUTHENTICATED) at 127.0.0.1:40001
Finally what happens?
I've got my email with attached fax if I receive faxes from t38 capable devices like in this case
- Code: Select all
-- Channel 'SIP/ConMET_1-00000541' FAX session '26' is complete, result: 'SUCCESS' (FAX_SUCCESS), error: 'NO_ERROR', pages: 1, resolution: '204x98', transfer rate: '14400', remoteSID: ''
and I cannot receive any type of faxes from others....
- Code: Select all
[2013-06-04 15:50:43] VERBOSE[4909] pbx.c: -- Executing [h@fax-rx-conmet:13] NoOp("SIP/ConMET_1-00000516", "FAXOPT(error) : T1_TIMEOUT") in new stack
[2013-06-04 15:52:47] VERBOSE[4950] res_fax_digium.c: -- Channel 'SIP/ConMET_1-0000051f' FAX session '13' is complete, result: 'FAILED' (FAX_NO_FAX), error: 'T1_TIMEOUT', pages: 0, resolution: 'unknown', transfer rate: '2400', remoteSID: ''
Most stranger is this... if I do a faxinfo on a received (and SUCCESS) tiff file to obtain informations about it I obtain this
[root@freepbx asterisk]# faxinfo /var/spool/faxes/conmet/fax-05XXXXXXXXX-4.tif
/var/spool/faxes/conmet/fax-05XXXXXXXXX-4.tif:
Sender: <unknown>
Pages: 1
Quality: Normal
Page: 1728 by 595
Received: 2013:05:28 19:13:12
TimeToRecv: <unknown>
SignalRate: 0 bit/s
Segmentation fault
This is critical because
- Code: Select all
/var/www/avantfax/includes/faxrcvd.php /var/spool/faxes/conmet/fax-05XXXXXXXXX-4.tif ttyIAX1
do a faxinfo check on file and it says that file is corrupted and can't go on ....
Just something is going terribly wrong, but really can't understand what and why. This is not my first pbx/iaxmodem/avantfax/fffa setup , but this is worst game ever...
Please,
somebody can gently help me to solve this puzzle?
Thanks anybody.