Cisco Support Community
cancel
Showing results for 
Search instead for 
Did you mean: 

URI based outbound Dial-peer configuration on CUBE

 

 

Introduction

 

This document covers the Procedure for Configuring the URI based outbound Dial-peer matching on Cisco Unified Border Element (CUBE)with examples.

 

Prerequisite

 

Cisco Unified Border Element:

 

Cisco IOS Release 15.1(2)T or a later release must be installed and running on your Cisco Unified Border Element.

 

Cisco Unified Border Element (Enterprise):

 

Cisco IOS XE Release 3.6S or a later release must be installed and running on your Cisco Unified Border Element (Enterprise).

 

 

Configuring URI based outbound Dial-peer for SIP calls

 

Cisco Unified Border Element supports dialing using directory URIs (Uniform Resource Identifier) for call addressing. Directory URIs look like email addresses and follow the username@host format. SIP address is similar to an e-mail address and is in the format of sip:userID@gateway.com. The user ID can be either a username or an E.164 address. The gateway can be either a domain (with or without a hostname) or a specific Internet IPv4 or IPv6 address.

 

 

How to provision URI dialing?

 

URI_cube-1.png

 

 

 

 

Step1: Configure Voice Call uri

 

voice  class uri 1 sip

pattern 12345@cisco.com

 

Step2:  Configure the outbound Dial-peer

 

dial-peer  voice 100 voip

  description OUTBOUND DP

  destination uri 1

   session target ipv4:10.10.10.1

 

 

 

Procedure to configure URI based outbound Dial-peer for SIP Calls

 

 

SUMMARY STEPS

 

1.enable

2.configureterminal

3.voice class uritag

4.pattern

5.exit

6.dial-peer voice tagvoip

7.sessionprotocol sipv2

8.destination uri <tag>

9.session target <ipv4:ipv4-address | ipv6:ipv6-address>

10.end

 

 

Outbound Dial-peer configuration on CUBE

 

dial-peer voice 100 voip

  description OUTBOUND DP

  destination uri 1

  session target ipv4:10.10.10.1

 

 

Different Match pattern on the SIP Invite received and URI configuration :

 

Below example shows how to configure voice class URI based on the SIP invite received, refer the above call flow.

 

1. Match based on the exact URI pattern

Received:

INVITE sip:12345@cisco.com SIP/2.0

 

voice class uri 1 sip

pattern 12345@cisco.com

 

 

2. Match based on only the host portion of uri

Received:

INVITE sip:12345@cisco.com SIP/2.0

 

voice class uri 1 sip

host cisco.com

 

 

3. Match based on the user-id portion of the uri

Received:

INVITE sip:12345@cisco.com SIP/2.0

 

voice class uri 1 sip

user-id 12345*

 

 

4. Match based on the phone number portion of the tel-uri

Received:

INVITE tel:+12345;phone-context=cisco.com SIP/2.0

 

voice class uri 1 tel

phone number 12345

phone context cisco.com

 

 

Related Information

 

Version history
Revision #:
2 of 2
Last update:
‎08-29-2017 12:14 PM
 
Comments
New Member

Great HowTo! yes

I had an issue to understand the command "destination uri" and then i found your howto faster then a cisco guide wink

 

VIP Super Bronze

Thanks Lavanya. Good document. Found it very useful

New Member

I'm trying to do exactly what this document describes but I'm not having any success.  First off, it seems like for CUBE to even attempt to route the call I need this:

voice service voip
  sip
    call-route url

Once I have that configured, it seems like CUBE attempts to route the call, but with only the IP address in the invite.  My call flow and debugs/config are below.  Any help is greatly appreciated :)
 

CUCM (192.168.1.72) --> CUBE (10.10.32.1) --> CUCM (192.168.1.81)

*Apr  8 01:37:33.468: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:
INVITE sip:phone1@br1.ccielab.com:5060 SIP/2.0
Via: SIP/2.0/TCP 192.168.1.72:5060;branch=z9hG4bK5b10bbc7a5
From: "HQ Phone 1" <sip:2001@192.168.1.72>;tag=254~49a57044-9b08-4504-98fd-797fb77c1515-42983622
To: <sip:phone1@br1.ccielab.com>
Date: Tue, 07 Apr 2015 18:46:14 GMT
Call-ID: 5caa6480-524125f6-3c-4801a8c0@192.168.1.72
Supported: timer,resource-priority,replaces
Min-SE:  1800
User-Agent: Cisco-CUCM9.1
Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY
CSeq: 101 INVITE
Expires: 180
Allow-Events: presence, kpml
Supported: X-cisco-srtp-fallback,X-cisco-original-called
Call-Info: <sip:192.168.1.72:5060>;method="NOTIFY;Event=telephone-event;Duration=500"
Cisco-Guid: 1554670720-0000065536-0000000014-1208068288
Session-Expires:  1800
P-Asserted-Identity: "HQ Phone 1" <sip:2001@192.168.1.72>
Remote-Party-ID: "HQ Phone 1" <sip:2001@192.168.1.72>;party=calling;screen=yes;privacy=off
Contact: <sip:2001@192.168.1.72:5060;transport=tcp>;video;audio
Max-Forwards: 69
Content-Length: 0


*Apr  8 01:37:33.472: //32/5CAA64800000/SIP/Msg/ccsipDisplayMsg:
Sent:
SIP/2.0 100 Trying
Via: SIP/2.0/TCP 192.168.1.72:5060;branch=z9hG4bK5b10bbc7a5
From: "HQ Phone 1" <sip:2001@192.168.1.72>;tag=254~49a57044-9b08-4504-98fd-797fb77c1515-42983622
To: <sip:phone1@br1.ccielab.com>
Date: Wed, 08 Apr 2015 01:37:33 GMT
Call-ID: 5caa6480-524125f6-3c-4801a8c0@192.168.1.72
CSeq: 101 INVITE
Allow-Events: telephone-event
Server: Cisco-SIPGateway/IOS-15.2.4.M4
Content-Length: 0


*Apr  8 01:37:33.476: //33/5CAA64800000/SIP/Msg/ccsipDisplayMsg:
Sent:
INVITE sip:192.168.1.81:5060 SIP/2.0
Via: SIP/2.0/TCP 10.10.32.1:5060;branch=z9hG4bK12B0F
Remote-Party-ID: "HQ Phone 1" <sip:2001@10.10.32.1>;party=calling;screen=yes;privacy=off
From: "HQ Phone 1" <sip:2001@10.10.32.1>;tag=10F32D4-9DB
To: <sip:192.168.1.81>
Date: Wed, 08 Apr 2015 01:37:33 GMT
Call-ID: A995CE66-DCC611E4-805BC28D-76C3BF62@10.10.32.1
Supported: timer,resource-priority,replaces,sdp-anat
Min-SE:  1800
Cisco-Guid: 1554670720-0000065536-0000000014-1208068288
User-Agent: Cisco-SIPGateway/IOS-15.2.4.M4
Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY, INFO, REGISTER
CSeq: 101 INVITE
Timestamp: 1428457053
Contact: <sip:2001@10.10.32.1:5060;transport=tcp>
Call-Info: <sip:10.10.32.1:5060>;method="NOTIFY;Event=telephone-event;Duration=2000"
Expires: 180
Allow-Events: telephone-event
Max-Forwards: 68
Session-Expires:  1800
Content-Length: 0


*Apr  8 01:37:33.480: //33/5CAA64800000/SIP/Msg/ccsipDisplayMsg:
Received:
SIP/2.0 400 Bad Request - 'Malformed/Missing URL'
Via: SIP/2.0/TCP 10.10.32.1:5060;branch=z9hG4bK12B0F
From: "HQ Phone 1" <sip:2001@10.10.32.1>;tag=10F32D4-9DB
To: <sip:192.168.1.81>;tag=99484635
Date: Tue, 07 Apr 2015 18:46:14 GMT
Call-ID: A995CE66-DCC611E4-805BC28D-76C3BF62@10.10.32.1
CSeq: 101 INVITE
Allow-Events: presence
Reason: Q.850;cause=100
Content-Length: 0


*Apr  8 01:37:33.484: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
ACK sip:192.168.1.81:5060 SIP/2.0
Via: SIP/2.0/TCP 10.10.32.1:5060;branch=z9hG4bK12B0F
From: "HQ Phone 1" <sip:2001@10.10.32.1>;tag=10F32D4-9DB
To: <sip:192.168.1.81>;tag=99484635
Date: Wed, 08 Apr 2015 01:37:33 GMT
Call-ID: A995CE66-DCC611E4-805BC28D-76C3BF62@10.10.32.1
Max-Forwards: 70
CSeq: 101 ACK
Allow-Events: telephone-event
Content-Length: 0


*Apr  8 01:37:33.484: //34/5CAA64800000/SIP/Msg/ccsipDisplayMsg:
Sent:
INVITE sip:192.168.1.72:5060 SIP/2.0
Via: SIP/2.0/TCP 10.10.32.1:5060;branch=z9hG4bK1322FE
Remote-Party-ID: "HQ Phone 1" <sip:2001@10.10.32.1>;party=calling;screen=yes;privacy=off
From: "HQ Phone 1" <sip:2001@10.10.32.1>;tag=10F32D8-1244
To: <sip:192.168.1.72>
Date: Wed, 08 Apr 2015 01:37:33 GMT
Call-ID: A9966A8E-DCC611E4-805DC28D-76C3BF62@10.10.32.1
Supported: timer,resource-priority,replaces,sdp-anat
Min-SE:  1800
Cisco-Guid: 1554670720-0000065536-0000000014-1208068288
User-Agent: Cisco-SIPGateway/IOS-15.2.4.M4
Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY, INFO, REGISTER
CSeq: 101 INVITE
Timestamp: 1428457053
Contact: <sip:2001@10.10.32.1:5060;transport=tcp>
Call-Info: <sip:10.10.32.1:5060>;method="NOTIFY;Event=telephone-event;Duration=2000"
Expires: 180
Allow-Events: telephone-event
Max-Forwards: 68
Session-Expires:  1800
Content-Length: 0


*Apr  8 01:37:33.484: //34/5CAA64800000/SIP/Msg/ccsipDisplayMsg:
Received:
SIP/2.0 400 Bad Request - 'Malformed/Missing URL'
Via: SIP/2.0/TCP 10.10.32.1:5060;branch=z9hG4bK1322FE
From: "HQ Phone 1" <sip:2001@10.10.32.1>;tag=10F32D8-1244
To: <sip:192.168.1.72>;tag=1404115661
Date: Tue, 07 Apr 2015 18:46:14 GMT
Call-ID: A9966A8E-DCC611E4-805DC28D-76C3BF62@10.10.32.1
CSeq: 101 INVITE
Allow-Events: presence
Reason: Q.850;cause=100
Content-Length: 0


*Apr  8 01:37:33.488: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
ACK sip:192.168.1.72:5060 SIP/2.0
Via: SIP/2.0/TCP 10.10.32.1:5060;branch=z9hG4bK1322FE
From: "HQ Phone 1" <sip:2001@10.10.32.1>;tag=10F32D8-1244
To: <sip:192.168.1.72>;tag=1404115661
Date: Wed, 08 Apr 2015 01:37:33 GMT
Call-ID: A9966A8E-DCC611E4-805DC28D-76C3BF62@10.10.32.1
Max-Forwards: 70
CSeq: 101 ACK
Allow-Events: telephone-event
Content-Length: 0


*Apr  8 01:37:33.488: //32/5CAA64800000/SIP/Msg/ccsipDisplayMsg:
Sent:
SIP/2.0 500 Internal Server Error
Via: SIP/2.0/TCP 192.168.1.72:5060;branch=z9hG4bK5b10bbc7a5
From: "HQ Phone 1" <sip:2001@192.168.1.72>;tag=254~49a57044-9b08-4504-98fd-797fb77c1515-42983622
To: <sip:phone1@br1.ccielab.com>;tag=10F32E0-EF0
Date: Wed, 08 Apr 2015 01:37:33 GMT
Call-ID: 5caa6480-524125f6-3c-4801a8c0@192.168.1.72
CSeq: 101 INVITE
Allow-Events: telephone-event
Server: Cisco-SIPGateway/IOS-15.2.4.M4
Reason: Q.850;cause=127
Content-Length: 0


*Apr  8 01:37:33.488: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:
ACK sip:phone1@br1.ccielab.com:5060 SIP/2.0
Via: SIP/2.0/TCP 192.168.1.72:5060;branch=z9hG4bK5b10bbc7a5
From: "HQ Phone 1" <sip:2001@192.168.1.72>;tag=254~49a57044-9b08-4504-98fd-797fb77c1515-42983622
To: <sip:phone1@br1.ccielab.com>;tag=10F32E0-EF0
Date: Tue, 07 Apr 2015 18:46:14 GMT
Call-ID: 5caa6480-524125f6-3c-4801a8c0@192.168.1.72
Max-Forwards: 70
CSeq: 101 ACK
Allow-Events: presence, kpml
Content-Length: 0

 

voice service voip
 no ip address trusted authenticate
 mode border-element license capacity 100
 allow-connections sip to sip
 fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback none
 sip
  bind control source-interface Loopback0
  bind media source-interface Loopback0
  session transport tcp
  call-route url
  pass-thru content sdp
voice class uri BR1 sip
 host br1.ccielab.com
voice class uri HQ sip
 host ccielab.com

dial-peer voice 1 pots
 translation-profile incoming GLOBALIZE
 incoming called-number .
dial-peer voice 4 pots
 destination-pattern .T
dial-peer voice 10 voip
 destination-pattern 4...$
 session protocol sipv2
 session target ipv4:10.10.160.1
 session transport tcp
 codec transparent
dial-peer voice 11 voip
 incoming called-number .
 codec transparent
dial-peer voice 20 voip
 destination-pattern 2...$
 session protocol sipv2
 session target ipv4:192.168.1.72
 destination uri HQ
 dtmf-relay rtp-nte sip-notify
 codec transparent
dial-peer voice 30 voip
 destination-pattern 3...$
 session protocol sipv2
 session target ipv4:192.168.1.81
 destination uri BR1
 dtmf-relay rtp-nte sip-notify
 codec transparent
 

 

VIP Super Bronze

Mike,

I can see you are a fellow CCIE candidate like myself. How is your study coming along. I wish you all the very best.(may we be amongst the 20% that pass on first attempt :)

There are a few things you need to sort out in your configurations for this to work.

When using URI dialling on IOS, it doesn't send the user portion of the request-URI. You will need to use sip profiles to add it..Here we modify both the To and SIP-Req-URI headers

voice class sip-profiles 50
request INVITE sip-header To modify "<sip:192.168.1.81>" "<sip:phone1@br1.ccielab.com>"
request INVITE sip-header SIP-Req-URI modify "sip:192.168.1.81:5060" "sip:phone1@br1.ccielab.com"

dial-peer voice 30 voip
voice-class sip profiles 50

I also observed that there is no incoming URI configured. You need to match an inbound dial-peer using the incoming URI statement.

For this to happen, you will need to specify the ip address of HQ under your host statement because by default CUCM will send its ip address in its host field. So you need to match the ip address. This is necessary if you want to match incoming uri based on either "via or from" sip header fields. (the host portion only contain the "ip address of cucm as you can see in the trace" In this config I am going to use the "to" header field hence its not important.

voice class uri HQ sip
host 192.168.1.72

The define an inbound dial-p to match
dial-p v 20 v
incoming URI to HQ

dial-p v 30 v
incoming URI to BR1

Now inbound calls from HQ with the following request to BR1..will match inbound dial-p 30 and outbound dial-p 30 (similar to incoming called number and destination-p)
Received:
INVITE sip:phone1@br1.ccielab.com:5060 SIP/2.0
Via: SIP/2.0/TCP 192.168.1.72:5060;branch=z9hG4bK5b10bbc7a5
From: "HQ Phone 1" <sip:2001@192.168.1.72>;tag=254~49a57044-9b08-4504-98fd-797fb77c1515-42983622
To: <sip:phone1@br1.ccielab.com>

 

New Member

Indeed I am studying for CCIE Deji.  Amen to being in the 20% :)  When are you taking your lab?  Mine is in about 3 weeks.  I will be cramming between now and then.  At this point I'm not where I was hoping to be,  but it is what it is.

Thank you for pointing me in the right direction.  I found the section on URI dial-peers in the CUBE config guide, so I will read through that before I follow up with any questions.  

Mike

New Member

Deji, if I'm not mistaken, using your method of SIP profiles to modify the headers would only allow me to dial a single specific URI.  What if I needed to dial multiple URIs?

New Member

I ran into the same issue going down the same path and this post seems to be the best reference.  Its been a while but figured I'd post for the next guy.

Ran into some neat features in the cube config guide for copying fields from the inbound sip header and modifying the outbound with sip profiles.

 

voice class sip-copylist 3000
 sip-header from
 sip-header to

!

voice class sip-profiles 3000
 request INVITE peer-header sip TO copy "sip:(.*@.*)>" u01
 request INVITE sip-header To modify "sip:(.*)(>.*)" "sip:\u01\2"
 request INVITE sip-header SIP-Req-URI modify ".*" "INVITE sip:\u01 SIP/2.0"
!
dial-peer voice 3000 voip
 rtp payload-type cisco-codec-fax-ack 111
 rtp payload-type cisco-codec-video-h264 97
 session protocol sipv2
 session target ipv4:172.20.110.20
 destination uri 2
 incoming uri to 2
 voice-class sip early-offer forced
 voice-class sip profiles 3000
 voice-class sip copy-list 3000
 dtmf-relay rtp-nte sip-kpml
 codec transparent
 no vad

 

http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/cube_fund/configuration/xe-3s/cube-fund-xe-3s-book/voi-sip-param-mod.html#task_0DC87B03479A4DD9A81AD2E405CA8EC9

VIP Super Bronze

Hi Mike, yes you are correct that this will only allow single directory URI. I will have to look into how to dial multiple URI. But since this is for the lab only I will just worry about dialling that URI. 

 

New Member

Hi Guys,

for you issue , i think you will need to pass through the sip headers in the voice serivce voip global command , because by default CUBE is using the one on the dial-peer.

check this : http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/cube_proto/configuration/15-mt/cube-proto-15-mt-book/sip-supp-uri-based-dialing.pdf

Cheers