11-21-2016 03:01 PM - edited 03-18-2019 06:36 AM
I'm trying to configure fax detection on a CUBE 4331 version 15.4(3)S4. I have a SIP trunk to the provider and a SIP trunk to CUCM.
I have configured a dspfarm profile transcode with the associate app CUBE. As well as added detect-fax mode local to the main inbound voip dial peer to redirect the call to the DID matching a route pattern on CUCM which points to the fax server.
Am I missing something? Does anyone have a good working example of what it should all look like?
11-21-2016 03:51 PM
Here you go. I think this should cover you. You also need to add the audio file to the router for the VXML. The way this worked was that they could use the same DIDs for a single reach of fax or voice calls. I have some extreme SIP header modification going on as well too.
voice class sip-profiles 1
request ANY sdp-header Audio-Attribute modify "a=inactive" "a=sendrecv"
response ANY sdp-header Audio-Attribute modify "a=inactive" "a=sendrecv"
request ANY sdp-header Audio-Attribute modify "a=sendonly" "a=sendrecv"
response ANY sdp-header Audio-Attribute modify "a=sendonly" "a=sendrecv"
request ANY sdp-header Audio-Attribute modify "a=inactive" "a=sendrecv"
response ANY sdp-header Audio-Attribute modify "a=inactive" "a=sendrecv"
request ANY sdp-header Audio-Attribute modify "a=sendonly" "a=sendrecv"
response ANY sdp-header Audio-Attribute modify "a=sendonly" "a=sendrecv"
!
voice class sip-profiles 7001
request INVITE peer-header sip SIP-Req-URI copy "sip:(.*)@" u01
request INVITE peer-header sip SIP-Req-URI copy "sip:(.*)@" u01
request INVITE sip-header SIP-Req-URI modify "sip:(.*)" "sip:\u01@SIPSERVERIP:5060 SIP/2.0"
!
voice class sip-profiles 7002
request REINVITE sdp-header Audio-Attribute add "a=silenceSupp:off - - - -"
!
voice class sip-profiles 7003
request ANY sdp-header Audio-Attribute modify "a=silenceSupp:off - - - -" ""
response ANY sdp-header Audio-Attribute modify "a=silenceSupp:off - - - -" ""
request ANY sdp-header Audio-Attribute modify "a=inactive" "a=sendrecv"
response ANY sdp-header Audio-Attribute modify "a=inactive" "a=sendrecv"
request ANY sdp-header Audio-Attribute modify "a=sendonly" "a=sendrecv"
response ANY sdp-header Audio-Attribute modify "a=sendonly" "a=sendrecv"
request ANY sdp-header Audio-Attribute modify "a=inactive" "a=sendrecv"
response ANY sdp-header Audio-Attribute modify "a=inactive" "a=sendrecv"
request ANY sdp-header Audio-Attribute modify "a=sendonly" "a=sendrecv"
response ANY sdp-header Audio-Attribute modify "a=sendonly" "a=sendrecv"
!
!
voice class sip-copylist 2
sip-header SIP-Req-URI
!
voice translation-rule 1001
rule 1 /\(..........\)/ /#\1/
!
voice translation-profile VXML
translate called 1001
!
dspfarm profile 1 transcode universal
codec pass-through
codec g711ulaw
codec g711alaw
codec g729ar8
codec g729abr8
cng-fax-detect
maximum sessions 21
associate application CUBE
!
dial-peer voice 105 voip
description INCOMING DIAL PEER WITH FAX DETECT
translation-profile incoming VXML
session protocol sipv2
session target sip-server
incoming called-number ^...........$
voice-class sip profiles 7003
voice-class sip profiles 1 inbound
voice-class sip copy-list 2
dtmf-relay rtp-nte
codec g711ulaw
fax protocol none
no vad
detect-fax mode local 5001
!
dial-peer voice 106 voip
description "Outgoing to VXML Cube Loop"
destination-pattern #
session protocol sipv2
session target ipv4:ROUTER IP HERE
session transport udp
voice-class sip profiles 1 inbound
dtmf-relay rtp-nte
codec g711ulaw
fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback pass-through g711ulaw
no vad
!
dial-peer voice 107 voip
description "Incoming to VXML via Loop"
service fax
session protocol sipv2
session target sip-server
incoming called-number #..........$
voice-class sip profiles 1 inbound
dtmf-relay rtp-nte
codec g711ulaw
fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback pass-through g711ulaw
no vad
!
dial-peer voice 5001 voip
description SIP Fax SIP URI Copy to Fax server
destination-pattern 5001
session protocol sipv2
session target ipv4:FAXSERVERIP
voice-class sip profiles 7001
codec g711ulaw
fax protocol pass-through g711ulaw
no vad
!
Please rate useful posts and mark answers as correct if applicable.
11-21-2016 04:21 PM
Can you explain the flow of the call from when it first hits the CUBE? I'm trying to understand what dial peers 106 and 107 are actually doing. Thanks!
11-22-2016 07:06 AM
Hey,
105 is the incoming from the provider which has a translation profile to make it match 105/106 to loop the call.
106/107 are incoming/outgoing peers to loop the call back to the Cube (VXML GW). This occurs to playback ringing to the caller while CNG tones are being detected or not. If this didn't occur the caller would hear silence while the Cube decides if the call is a fax or voice call. If teh Cube detects CNG fax tones, it will send it to peer 5001 based on peer's 105 detect-fax mode local 5001 command.
On teh VXML Gateway (Cube) you need to put a tcl script as well as the wav file containing basic ringback.
Also not that this only works with G711 and IOS 15.4(2)T+. LTI based transcoding is only supported if the carrier is not sending G711.
Please rate useful posts and mark answers as correct if applicable.
11-22-2016 08:17 AM
Hey,
That's making things clearer. Can you explain the tcl script part? Where did you reference that in your config?
Are the script and wav file just standard that you can download and copy to the flash of the CUBE?
Thanks!
11-22-2016 09:00 AM
Attached are an .au audio file and a default tcl script. You will need to edit the script to match your call flow. Put them in Flash on the router.
You will need to create an application on the router:
application
service fax flash:fax_detect.vxml
Then under dial-peer 107 you can see where it states "service fax" to invoke the application created above.
You will need to edit the script to match how you are sending the digits in this section:
"phone://1011"
12-02-2016 01:01 PM
I'm finally getting back to this. I think I'm close but I get this error when I put a call inbound.
*Dec 2 20:37:22.668: %CALL_CONTROL-6-APP_NOT_FOUND: Application fax in dial-peer 501 not found. Handing callid 131830 to the alternate app
When I created the application it looked good. I got this response back.
*Dec 2 12:28:13.250: //-1//HIFS:/hifs_ifs_cb: hifs ifs file read succeeded. size=512, url=bootflash:/fax_detect.vxml
12-02-2016 01:39 PM
Send me your script and a snippit of your router config.
12-02-2016 01:56 PM
voice translation-rule 10
rule 1 /^\+*1\(..........\)/ /#\1/
!
voice translation-profile VXML
translate called 10
!
application
service fax bootflash:/fax_detect.vxml
!
!
dspfarm profile 5 transcode universal
codec g711ulaw
cng-fax-detect
maximum sessions 5
associate application CUBE
!
dial-peer voice 100 voip
description To CUCM
translation-profile incoming VXML
session protocol sipv2
session target sip-server
incoming called-number .
voice-class codec 2
dtmf-relay rtp-nte
fax protocol none
no vad
detect-fax mode local 502
!
dial-peer voice 500 voip
description Outgoing to VXML Cube Loop
destination-pattern #
session protocol sipv2
session target ipv4:xxx.xxx.xxx.xxx
session transport udp
dtmf-relay rtp-nte
codec g711ulaw
fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback pass-through g711ulaw
no vad
!
dial-peer voice 501 voip
description Incoming to VXML via Loop
service fax
session protocol sipv2
session target sip-server
incoming called-number #..........$
dtmf-relay rtp-nte
codec g711ulaw
fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback pass-through g711ulaw
no vad
!
dial-peer voice 502 voip
description XMedius Fax Server
destination-pattern 502
session protocol sipv2
session target dns:avnfax1.avn.com
codec g711ulaw
fax protocol pass-through g711ulaw
no vad
!
12-03-2016 05:43 AM
On your 501 dial-peer you have #..........$ but your application has dest="phone://9494458745.
That is not a match. You need to add a # to the application file.
12-03-2016 08:07 AM
That makes sense. I changed it to add the # in the vxml file and redid the service fax under application so it read the file again, but I still get the same application fax in dial peer 501 not found error when I place a call in.
In the file now is dest="phone://#9494458745"
02-28-2017 07:31 PM
Were you able to get this figured out?
If the call isn't a fax, what happens after
03-01-2017 09:55 AM
It fails at the point of trying to run the VXML app. Produces an error message saying it can't find the or read the file.
I'm trying to get a good answer on whether or not this is supported on the 4331 router platform. And what hardware it is actually supported on.
03-01-2017 11:12 AM
Are you working with TAC on it?
This doc shows it should work as long as the 4300 is on IOS 15.4(2)T+
http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/cube_proto/configuration/15-mt/cube-proto-15-mt-book/voi-cube-fax-detection-vxml.html
07-21-2017 07:31 AM
For anyone looking for an answer to this, since the original thread never reached a conclusion. I am looking for the same information.
This specific thread will not work, because the ISR 4XXX series does not include VXML services anymore. I am not sure if there is another way to do fax detection on the new ISR line, but this specific VXML/TCL way will not longer work.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide