01-29-2011 12:40 AM - edited 03-16-2019 03:09 AM
Hi guys,
I am trying to modify the calling number of a dn when I am calling to PSTN but not by using voice translation-profiles on outgoing dial-peers.
Let me describe the problem a little more.
My client has about 250 phones on a CME 7.1 with two E1's to connect to the PSTN.
I have some dn's numbered 71XX. I am trying to translate 71XX to 903721958400 (this is the general rule). Everything ok so far, but my problem is that I have more than 15 exceptions to the general rule (7122 to 903721958422, 7147 to 903721958447,... you get the point). I cannot make the general rule 71XX to 9037219584XX because again there are too many exceptions (I am limited to the 16 rules possible in the translation rules).
Is there any other way to modify the calling number other than applying a translation-profile to the outgoing-dial peer? I did try to apply translation-profiles to ephone-dns but it modifies the number for internal calls to, not just for external calls.
Thnak you for your help.
Solved! Go to Solution.
01-29-2011 10:38 AM
You can have patterns on both Dial-peer and voice-port
You can try num-exp too
voice translation-rule 10
rule 1 /3009/ /123\0/
!
voice translation-rule 11
rule 1 /1233009/ /555\0/
!
voice translation-profile ON_DIALPEER
translate calling 10
!
voice translation-profile ON_PORT
translate calling 11
!
dial-peer voice 3 pots
translation-profile outgoing ON_DIALPEER
destination-pattern 911
port 0/0/0:15
prefix 911
!
voice-port 0/0/0:15
translation-profile outgoing ON_PORT
3009 ----> 1233009(Dial-peer) ----> 5551233009 (On_Port)
EU-R5-BR2#
099851: Jan 29 18:35:46.284: //-1/xxxxxxxxxxxx/RXRULE/regxrule_get_profile_from_trunkgroup_internal: Voice port 0x486D7438 does not belong to any trunk group
099852: Jan 29 18:35:46.288: //-1/6BB71D7598C9/RXRULE/regxrule_stack_pop_RegXruleNumInfo: stack=0x48BCC330; count=1
099853: Jan 29 18:35:46.288: //-1/6BB71D7598C9/RXRULE/regxrule_stack_pop_callinfo_internal: numinfo=0x475A502C
099854: Jan 29 18:35:46.288: //-1/6BB71D7598C9/RXRULE/regxrule_stack_push_RegXruleNumInfo_internal: stack=0x48BCC330; count=1
099855: Jan 29 18:35:46.840: //-1/6BB71D7598C9/RXRULE/regxrule_stack_push_RegXruleNumInfo_internal: stack=0x48BCC330; count=2
099856: Jan 29 18:35:46.840: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number=3009 type=unknown plan=unknown numbertype=calling
099857: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Matched with rule 1 in ruleset 10
099858: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Matched with rule 1 in ruleset 10
099859: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/sed_subst: Successful substitution; pattern=3009 matchPattern=3009 replacePattern=123\0 replaced pattern=1233009
099860: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_subst_num_type: Match Type = none, Replace Type = none Input Type = unknown
099861: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_subst_num_plan: Match Plan = none, Replace Plan = none Input Plan = unknown
099862: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: xlt_number=1233009 xlt_type=unknown xlt_plan=unknown
099863: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number=911 type=unknown plan=unknown numbertype=called
099864: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_get_RegXrule: Invalid translation ruleset tag=0
099865: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Error: ruleset for called number not found
099866: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: No match: number=911 type=unknown plan=unknown
099867: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number= type=unknown plan=unknown numbertype=redirect-target
099868: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_get_RegXrule: Invalid translation ruleset tag=0
099869: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Error: ruleset for redirect-target number not found
099870: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: No match: number= type=unknown plan=unknown
099871: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number= type=unknown plan=unknown numbertype=redirect-called
099872: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_get_RegXrule: Invalid translation ruleset tag=0
099873: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Error: ruleset for redirect-called number not found
099874: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: No match: number= type=unknown plan=unknown
099875: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_dp_translate: calling_number=1233009 calling_octet=0x0
called_number=911 called_octet=0x80
redirect_number= redirect_type=0 redirect_plan=0 redirect_PI=0 redirect_SI=0
099876: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_get_profile_from_voiceport_internal: Found profile ON_PORT defined on voice-port
099877: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number=1233009 type=unknown plan=unknown numbertype=calling
099878: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Matched with rule 1 in ruleset 11
099879: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Matched with rule 1 in ruleset 11
099880: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/sed_subst: Successful substitution; pattern=1233009 matchPattern=1233009 replacePattern=555\0 replaced pattern=5551233009
099881: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_subst_num_type: Match Type = none, Replace Type = none Input Type = unknown
099882: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_subst_num_plan: Match Plan = none, Replace Plan = none Input Plan = unknown
099883: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: xlt_number=5551233009 xlt_type=unknown xlt_plan=unknown
099884: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number=911 type=unknown plan=unknown numbertype=called
099885: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_get_RegXrule: Invalid translation ruleset tag=0
099886: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Error: ruleset for called number not found
099887: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: No match: number=911 type=unknown plan=unknown
099888: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number= type=unknown plan=unknown numbertype=redirect-called
099889: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_get_RegXrule: Invalid translation ruleset tag=0
099890: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Error: ruleset for redirect-called number not found
099891: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: No match: number= type=unknown plan=unknown
099892: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_vp_translate: calling_number=5551233009 calling_octet=0x0
called_number=911 called_octet=0x80
redirect_number= redirect_type=0 redirect_plan=0
099893: Jan 29 18:35:46.860: ISDN Se0/0/0:15 Q931: Applying typeplan for sw-type 0x2 is 0x2 0x1, Calling num 5551233009
099894: Jan 29 18:35:46.860: ISDN Se0/0/0:15 Q931: Sending SETUP callref = 0x008B callID = 0x800C switch = primary-4ess interface = User
099895: Jan 29 18:35:46.864: ISDN Se0/0/0:15 Q931: TX -> SETUP pd = 8 callref = 0x008B
Bearer Capability i = 0x8090A3
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA98381
Exclusive, Channel 1
Display i = 'XXX'
Calling Party Number i = 0x2180, '5551233009'
Plan:ISDN, Type:National
Called Party Number i = 0xA1, '911'
Plan:ISDN, Type:National
099896: Jan 29 18:35:46.924: ISDN Se0/0/0:15 Q931: RX <- CALL_PROC pd = 8 callref = 0x808B
Channel ID i = 0xA98381
Exclusive, Channel 1
HTH
PS: Rate useful posts.!
01-31-2011 04:59 AM
Use patterns, not punctual transaltations.
You can also use COR so that certain phones will go out certain DPs with the appropriate translation.
01-29-2011 01:59 AM
You can do this using translation rules. Rules get executed ina TOP DOWN fashion. Once a rule is matched then the processing of other rules further down isn't done. so..
For Eg.
EU-R3-BR1#sh run | sec trans
voice translation-rule 1
rule 1 /^9011/ //
rule 2 /^7122$/ /903721958422/
rule 3 /^71..$/ /903721958400/
EU-R3-BR1#test voice translation-rule 1 7122
Matched with rule 2
Original number: 7122 Translated number: 903721958422
Original number type: none Translated number type: none
Original number plan: none Translated number plan: none
EU-R3-BR1#test voice translation-rule 1 7123
Matched with rule 3
Original number: 7123 Translated number: 903721958400
Original number type: none Translated number type: none
Original number plan: none Translated number plan: none
7122 is an exception. 7123 is general rule to HEAD Number.
HTH
PS:Rate only useful posts
01-29-2011 04:30 AM
This is my current implementation.
The problem is that I have more than 15 numbers that need specific transformation. In the example you have provided 7122 is in that situation. I will need to transform 7122, 7123, .... (more than 15 numbers). Voice translation-rule have a limit of 16 transformation (i am using one for the general rule and 15 for some specific transformation). So I can not use this method once my 16 specific transformation is needed.
Thank you for participating in my quest for the solution.
01-29-2011 05:48 AM
Hi,
Can you list your exception to see if we can make less rules than exceptions.
Regards.
Alain.
01-29-2011 10:38 AM
You can have patterns on both Dial-peer and voice-port
You can try num-exp too
voice translation-rule 10
rule 1 /3009/ /123\0/
!
voice translation-rule 11
rule 1 /1233009/ /555\0/
!
voice translation-profile ON_DIALPEER
translate calling 10
!
voice translation-profile ON_PORT
translate calling 11
!
dial-peer voice 3 pots
translation-profile outgoing ON_DIALPEER
destination-pattern 911
port 0/0/0:15
prefix 911
!
voice-port 0/0/0:15
translation-profile outgoing ON_PORT
3009 ----> 1233009(Dial-peer) ----> 5551233009 (On_Port)
EU-R5-BR2#
099851: Jan 29 18:35:46.284: //-1/xxxxxxxxxxxx/RXRULE/regxrule_get_profile_from_trunkgroup_internal: Voice port 0x486D7438 does not belong to any trunk group
099852: Jan 29 18:35:46.288: //-1/6BB71D7598C9/RXRULE/regxrule_stack_pop_RegXruleNumInfo: stack=0x48BCC330; count=1
099853: Jan 29 18:35:46.288: //-1/6BB71D7598C9/RXRULE/regxrule_stack_pop_callinfo_internal: numinfo=0x475A502C
099854: Jan 29 18:35:46.288: //-1/6BB71D7598C9/RXRULE/regxrule_stack_push_RegXruleNumInfo_internal: stack=0x48BCC330; count=1
099855: Jan 29 18:35:46.840: //-1/6BB71D7598C9/RXRULE/regxrule_stack_push_RegXruleNumInfo_internal: stack=0x48BCC330; count=2
099856: Jan 29 18:35:46.840: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number=3009 type=unknown plan=unknown numbertype=calling
099857: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Matched with rule 1 in ruleset 10
099858: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Matched with rule 1 in ruleset 10
099859: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/sed_subst: Successful substitution; pattern=3009 matchPattern=3009 replacePattern=123\0 replaced pattern=1233009
099860: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_subst_num_type: Match Type = none, Replace Type = none Input Type = unknown
099861: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_subst_num_plan: Match Plan = none, Replace Plan = none Input Plan = unknown
099862: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: xlt_number=1233009 xlt_type=unknown xlt_plan=unknown
099863: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number=911 type=unknown plan=unknown numbertype=called
099864: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_get_RegXrule: Invalid translation ruleset tag=0
099865: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Error: ruleset for called number not found
099866: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: No match: number=911 type=unknown plan=unknown
099867: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number= type=unknown plan=unknown numbertype=redirect-target
099868: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_get_RegXrule: Invalid translation ruleset tag=0
099869: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Error: ruleset for redirect-target number not found
099870: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: No match: number= type=unknown plan=unknown
099871: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number= type=unknown plan=unknown numbertype=redirect-called
099872: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_get_RegXrule: Invalid translation ruleset tag=0
099873: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Error: ruleset for redirect-called number not found
099874: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: No match: number= type=unknown plan=unknown
099875: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_dp_translate: calling_number=1233009 calling_octet=0x0
called_number=911 called_octet=0x80
redirect_number= redirect_type=0 redirect_plan=0 redirect_PI=0 redirect_SI=0
099876: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_get_profile_from_voiceport_internal: Found profile ON_PORT defined on voice-port
099877: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number=1233009 type=unknown plan=unknown numbertype=calling
099878: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Matched with rule 1 in ruleset 11
099879: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Matched with rule 1 in ruleset 11
099880: Jan 29 18:35:46.844: //-1/6BB71D7598C9/RXRULE/sed_subst: Successful substitution; pattern=1233009 matchPattern=1233009 replacePattern=555\0 replaced pattern=5551233009
099881: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_subst_num_type: Match Type = none, Replace Type = none Input Type = unknown
099882: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_subst_num_plan: Match Plan = none, Replace Plan = none Input Plan = unknown
099883: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: xlt_number=5551233009 xlt_type=unknown xlt_plan=unknown
099884: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number=911 type=unknown plan=unknown numbertype=called
099885: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_get_RegXrule: Invalid translation ruleset tag=0
099886: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Error: ruleset for called number not found
099887: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: No match: number=911 type=unknown plan=unknown
099888: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: number= type=unknown plan=unknown numbertype=redirect-called
099889: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_get_RegXrule: Invalid translation ruleset tag=0
099890: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_match_internal: Error: ruleset for redirect-called number not found
099891: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_profile_translate_internal: No match: number= type=unknown plan=unknown
099892: Jan 29 18:35:46.848: //-1/6BB71D7598C9/RXRULE/regxrule_vp_translate: calling_number=5551233009 calling_octet=0x0
called_number=911 called_octet=0x80
redirect_number= redirect_type=0 redirect_plan=0
099893: Jan 29 18:35:46.860: ISDN Se0/0/0:15 Q931: Applying typeplan for sw-type 0x2 is 0x2 0x1, Calling num 5551233009
099894: Jan 29 18:35:46.860: ISDN Se0/0/0:15 Q931: Sending SETUP callref = 0x008B callID = 0x800C switch = primary-4ess interface = User
099895: Jan 29 18:35:46.864: ISDN Se0/0/0:15 Q931: TX -> SETUP pd = 8 callref = 0x008B
Bearer Capability i = 0x8090A3
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA98381
Exclusive, Channel 1
Display i = 'XXX'
Calling Party Number i = 0x2180, '5551233009'
Plan:ISDN, Type:National
Called Party Number i = 0xA1, '911'
Plan:ISDN, Type:National
099896: Jan 29 18:35:46.924: ISDN Se0/0/0:15 Q931: RX <- CALL_PROC pd = 8 callref = 0x808B
Channel ID i = 0xA98381
Exclusive, Channel 1
HTH
PS: Rate useful posts.!
01-29-2011 01:02 PM
Indeed a good ideea. This will extend my number of possible exception to 30.
Thank you for your help.
Is there a diffrent approach in which you will not be limited to a number of exceptions? Like having an external number mask or something like that.
01-29-2011 02:16 PM
Num-exp should work... have to try in my lab though :-)
You can try looping calls...voip to voip then pots then port
01-29-2011 03:38 PM
Here's a post which should help you
https://supportforums.cisco.com/thread/2034931
HTH
PS: Rate Useful posts!
01-30-2011 10:42 PM
My notes on number expansion say that it "manipulates called number" so this will not be a solution.
Cascading the call through multiple dial-peers is another good ideea. It will probably be a configuration nightmare because it will be very difficult to see through all the manipulations (it will be good to keep the client because no one else will be able to read what I have done - unless for proper doc ).
Thanks for your help.
01-31-2011 12:05 AM
Yup. You are correct.!
YEah looping dial-peers is a night mare.!
Get a CUCMBE.
01-31-2011 04:59 AM
Use patterns, not punctual transaltations.
You can also use COR so that certain phones will go out certain DPs with the appropriate translation.
01-31-2011 01:28 PM
@Paolo Nice one with the COR lists :-)... Slipped my mind though...
02-01-2011 12:17 AM
Very nice ideas guys. Thank you all for this brainstorming session.
For now I will go with applying translation profiles on dp and voice port, but very soon i will try the COR ideea since the client asked about hiding the identity for certain numbers (clid restrict - on certain dp will work just great). Looks like a lot of things you can do on CM are possible on CME with a lot of ingeniozity and help from friends.
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