04-06-2022 02:47 PM
We have a Cisco 4451 IOS router running CUBE software. Currently we have two inbound dial peers for inbound called numbers. The first one uses URI host matching to match the DNS name from the ISP. The second one uses the user-id to match the incoming called number so that we can reroute hard faxes. I want to add another inbound dial peer to match a specific calling number using the user-id of the SIP message.
This is the current inbound dial peer configs:
dial-peer voice 5000 voip
description Incoming from Verizon
session protocol sipv2
session transport udp
destination dpg 7000
incoming uri to VZDNS
voice-class codec 1
voice-class sip copy-list 1
voice-class sip bind control source-interface GigabitEthernet0/0/2
voice-class sip bind media source-interface GigabitEthernet0/0/2
dtmf-relay rtp-nte sip-kpml sip-notify
no vad
detect-fax mode local 5551212
As you can see we have configured an incoming URI to match the ISP's DNS information in the To header which I have included below:
voice class uri VZDNS sip
host dns:disaarnoldhub.globalipcom.com
host dns:ngancehub.disa.globalipcom.com
host dns:ngastlhub.disa.globalipcom.com
The is the current inbound dial peer used to detect our hard fax inbound calls:
dial-peer voice 5001 voip
description Incoming from Verizon for FAX
session protocol sipv2
session transport udp
destination dpg 7000
incoming uri to HardFaxDN
voice-class sip bind control source-interface GigabitEthernet0/0/2
voice-class sip bind media source-interface GigabitEthernet0/0/2
dtmf-relay rtp-nte sip-kpml sip-notify
codec g711ulaw
fax-relay ecm disable
fax rate 14400
fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback pass-through g711ulaw
no vad
As you can see we have configured an incoming URI to match the user-id information in the To header which I have included below:
voice class uri HardFaxDN sip
user-id 6363212345
Here is the dial peer that I added to match a specific calling number using the user-id of the SIP message:
dial-peer voice 5002 voip
description Incoming from Verizon for Nuisance Call
translation-profile incoming CUCM_for_Nuisance
session protocol sipv2
session transport udp
destination dpg 7000
incoming uri from NuisanceCalls
voice-class sip bind media source-interface GigabitEthernet0/0/2
dtmf-relay rtp-nte sip-kpml sip-notify
codec g711ulaw
fax-relay ecm disable
fax rate 14400
fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback pass-through g711ulaw
no vad
Here is the voice class uri to match the user-id information in the From header which I have included below
voice class uri NuisanceCalls sip
user-id 3142564320
I have also changed the preference order for the uri hunting with the following command:
voice class uri sip preference user-id host
The problem that I am having is that when the call comes in, the router looks for a matching inbound dial peer and always chooses DP 5000 because it is looking at the To header before it looks at the From header. My understanding is that DP matching will look at the To header first and if it matches it will quit hunting. Is there a way to change that?
Solved! Go to Solution.
04-06-2022 11:05 PM
Since the priority is hard-coded, where the To header matches before the From header, there is no chance to change that.
The only thing you can do is to change your dial-peer matching.
The following is the order in which inbound dial-peer is matched for SIP call-legs:
voice class uri URI-class-identifier with incoming uri {via} URI-class-identifier
voice class uri URI-class-identifier with incoming uri {request} URI-class-identifier
voice class uri URI-class-identifier with incoming uri {to} URI-class-identifier
voice class uri URI-class-identifier with incoming uri {from} URI-class-identifier
incoming called-number DNIS-string
answer-address ANI-string
04-07-2022 05:47 AM - edited 04-07-2022 07:47 AM
The order for dial-peer matching is set in IOS and can from what I know not be altered. This document explains in dept how call routing works in IOS and IOS-XE.
This table is from this document and outlines the order of operation for inbound SIP calls.
04-06-2022 11:05 PM
Since the priority is hard-coded, where the To header matches before the From header, there is no chance to change that.
The only thing you can do is to change your dial-peer matching.
The following is the order in which inbound dial-peer is matched for SIP call-legs:
voice class uri URI-class-identifier with incoming uri {via} URI-class-identifier
voice class uri URI-class-identifier with incoming uri {request} URI-class-identifier
voice class uri URI-class-identifier with incoming uri {to} URI-class-identifier
voice class uri URI-class-identifier with incoming uri {from} URI-class-identifier
incoming called-number DNIS-string
answer-address ANI-string
04-07-2022 05:47 AM - edited 04-07-2022 07:47 AM
The order for dial-peer matching is set in IOS and can from what I know not be altered. This document explains in dept how call routing works in IOS and IOS-XE.
This table is from this document and outlines the order of operation for inbound SIP calls.
04-07-2022 07:45 AM
Thank you for your responses. I have read that in depth document, which provided me enough info to be dangerous :). Your posts have confirmed what I expected. It looks like I will need to find a new approach to solving this problem. Thanks again.
04-21-2022 02:11 PM
I had a similar challenge, and after stumbling around for a while found the following command:
voice class uri sip preference user-id host
This will change the preference for matching so it looks at the user-id (configured as your desired phone number) first; after that if no match it will then look at host matches.
I had to change slightly how I was matching calls coming in to my CUBE - as you are still bound by the same match order as referenced above (via, request to, from). You have both dial-peers using uri "to", so this should be exactly what you need.... the preference command change will let you match on user-id first, then host to catch all else that didn't match user-id.
Do some reading, do some testing, but it worked out exactly like I needed it to, so I could match on specific numbers while still using the host match to catch all other traffic.
04-21-2022 10:40 PM
You might have missed that the OP already has that option in the original post.
“I have also changed the preference order for the uri hunting with the following command:
voice class uri sip preference user-id host”
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