Cisco CUBE

Example

Match the “1200@” in Diversion Header and capture the extension:

“sip:(1…)@”

Replace the match with “8145551200@” using the captured digits (\1):

“sip:814555\1@”

Complete SIP profile rule:

request INVITE sip-header Diversion modify “sip:(1…)@” “sip:814555\1@”
!
voice class sip-profiles 1
request INVITE sdp-header Video-Attribute remove
request INVITE sdp-header Video-Media modify "m=video(.*)" ""
request INVITE sdp-header Video-Bandwidth-Info remove
request INVITE sdp-header Video-Connection-Info remove
request REINVITE sdp-header Video-Attribute remove
request REINVITE sdp-header Video-Connection-Info remove
request REINVITE sdp-header Video-Bandwidth-Info remove
request REINVITE sdp-header Video-Media modify "m=video(.*)" ""
request UPDATE sdp-header Video-Attribute remove
request UPDATE sdp-header Video-Connection-Info remove
request UPDATE sdp-header Video-Bandwidth-Info remove
request UPDATE sdp-header Video-Media modify "m=video(.*)" ""
!
dial-peer sort ! Sort Dialer Peers in Ascending Order
dial-peer sort descending ! Sort Dialer Peers in Descending Order

Unlike the UCCE documentation if G729 transcoding is not needed, leave out Univeral and just have g711alaw / ulaw and CPA setup as per below.

dspfarm profile 4 transcode 
     codec g711ulaw
     codec g711alaw
     maximum sessions 250
     call-progress-analysis
     associate application CUBE
     !

Cisco UCCE Reference

dspfarm profile 3 transcode universal
codec g729abr8
codec g729ar8
codec g711alaw
codec g711ulaw
codec g729br8
call-progress-analysis
maximum sessions 360
associate application CUBE
voice options sip-options-keepalives 1
 transport udp

dial-peer voice xxx voip
 destination-pattern xxxx
 session protocol sipv2
 session target ipv4:123.123.123.123
 voice-class sip options-keepalives profile 1
voice class server-group 1
 hunt-scheme {preference | round-robin}
 ipv4 1.1.1.1 preference 5
 ipv4 2.2.2.2

dial-peer voice 100 voip
 destination-pattern 1234
 session protocol sipv2
 codec g711ulaw
 dtmf-relay rtp-nte
 session server-group 1
voice class e164-pattern-map 300
 e164 919200200.
 e164 510100100.
 e164 408100100.

dial-peer voice 1 voip
 description Inbound DP Via Calling
 incoming **calling** e164-pattern-map 300
 codec g729r8

voice class e164-pattern-map 400
 url flash:e164-pattern-map.cfg

dial-peer voice 2 voip
 description Outbound DP Via Called
 destination e164-pattern-map 400

! example of e164-pattern-map.cfg

9192002010
5101001010
1231231231

Reference

!Configuring the Server Group
Device(config)# voice class server-group 151
Device(config-class)# ipv4 10.1.1.1 preference 1
Device(config-class)# ipv4 10.1.1.2 preference 2
Device(config-class)# ipv4 10.1.1.3 preference 3
Device(config-class)# hunt-scheme round-robin
Device(config-class)# description It has 3 entries

!Configuring an E164 pattern map class
Device(config)# voice class e164-pattern-map 3000
Device(config-class)# e164 300
!Configuring an outbound SIP dial peer.
Device(config)# dial-peer voice 181 voip
!Associate a destination pattern map
Device(config-dial-peer)# destination e164-pattern-map 3000
Device(config-dial-peer)# session protocol sipv2
!Associate a server group with the dial peer
Device(config-dial-peer)# session server-group 151
!Associate the dial peer with a keepalive profile group
Device(config-dial-peer)# voice-class sip options-keepalive profile 171
Device(config-dial-peer)# end

!Verifying the Keepalive group configurations
Device# show voice class sip-options-keepalive 171
!
voice translation-rule 10
!
voice translation-rule 11
 rule 1 /^9\(.*\)/ /0\1/
!
voice translation-profile SIP-voice
 translate calling 10
 translate called 11
!
voice class sip-profiles 1
 request REINVITE sip-header Diversion remove
 request INVITE sip-header Diversion remove
 request INVITE sdp-header Video-Attribute remove
 request INVITE sdp-header Video-Media modify "m=video(.*)" ""
 request INVITE sdp-header Video-Bandwidth-Info remove
 request INVITE sdp-header Video-Connection-Info remove
 request REINVITE sdp-header Video-Attribute remove
 request REINVITE sdp-header Video-Connection-Info remove
 request REINVITE sdp-header Video-Bandwidth-Info remove
 request REINVITE sdp-header Video-Media modify "m=video(.*)" ""
 request UPDATE sdp-header Video-Attribute remove
 request UPDATE sdp-header Video-Connection-Info remove
 request UPDATE sdp-header Video-Bandwidth-Info remove
 request UPDATE sdp-header Video-Media modify "m=video(.*)" ""

!
dial-peer voice 201 voip
 description eircom SIP
 translation-profile outgoing SIP-voice
 preference 1
 destination-pattern .T
 session protocol sipv2
 session target ipv4:159.134.113.212
 voice-class codec 1 offer-all
 voice-class sip profiles 1
 dtmf-relay rtp-nte
 no vad
!
dial-peer voice 202 voip
 description eircom SIP
 translation-profile outgoing SIP-voice
 preference 2
 destination-pattern .T
 session protocol sipv2
 session target ipv4:159.134.113.84
 voice-class codec 1 offer-all
 voice-class sip profiles 1
 dtmf-relay rtp-nte
 no vad
!

Reference: https://community.cisco.com/t5/ip-telephony-and-phones/overlapping-e164-pattern-map/td-p/3372208/page/2

Closest match is not quite obvious. This is what I have found from testing.

  1. use $ to terminate the numbers
  2. a exact match for a number of a range of numbers using brackets [0-5] are treated equally and match before the wild card dot “.”

So in summary

The following config does NOT match against the dial-peer with the closest match. i.e. if I dial “+35315552491” it uses e164 map 1000 and not 1001.

!
voice class e164-pattern-map 1000
description ### Match UCCE numbers ###
e164 +3531555249[0-4]
!
voice class e164-pattern-map 1001
description ### Match UCCE Test A side number ###
e164 +35315552491
!

The closing match does also not work with below (adding the $).

!
voice class e164-pattern-map 1000
description ### Match UCCE numbers ###
e164 +3531555249[0-4]$
!
voice class e164-pattern-map 1001
description ### Match UCCE Test A side number ###
e164 +35315552491$
!

However this DOES work - i.e. match e164 1001 when you dial the +35315552491 i.e. using the wildcard “.” and not the range [0-4]

!
voice class e164-pattern-map 1000
description ### Match UCCE numbers ###
e164 +3531555249.$
!
voice class e164-pattern-map 1001
description ### Match UCCE Test A side number ###
e164 +35315552491$
!

And this would also work

!
voice class e164-pattern-map 1000
description ### Match UCCE numbers ###
e164 +3531555249.$
!
voice class e164-pattern-map 1001
description ### Match UCCE Test A side number ###
e164 +3531555249[0-4]$
!

i.e. if you dial a number in the range “+3531555249[0-4]” it will match 1001 over 1000.

But don't mix exact numbers and range numbers as I believe the first one found will be matched.
Mix Exact names, and ranges numbers versus numbers with the dot wildcard.

voice service voip
  sip
   call service stop

To re-enable

voice service voip
  sip
   default call service stop
  • vendors/cisco/uc/cube.txt
  • Last modified: 2024/07/29 14:52
  • by gerardorourke