Forum Discussion
Direct Routing - PABX Extension Number
- May 20, 2021Hi,
the behavior in issue 1 is correct. Teams only tries to match the phone number. So to use that approach you have to normalize the 4 digits (YYYY) to the e.164 (+44XXXXXXYYYY) on your SBC before you send it to Teams.
In general I would recommend to use full e.164 in Teams. This would mean to transform 4 digit numbers to e.164 from PBX to Teams. The other way round you have to do the opposite and strip the digits before you send it to the PBX.
The issue 2 is related to the dial plan that got applied by default depending on your country. If you want to implement extension dialing to your pbx you need to create your own user level dial plan.
Regards,
Paul
the behavior in issue 1 is correct. Teams only tries to match the phone number. So to use that approach you have to normalize the 4 digits (YYYY) to the e.164 (+44XXXXXXYYYY) on your SBC before you send it to Teams.
In general I would recommend to use full e.164 in Teams. This would mean to transform 4 digit numbers to e.164 from PBX to Teams. The other way round you have to do the opposite and strip the digits before you send it to the PBX.
The issue 2 is related to the dial plan that got applied by default depending on your country. If you want to implement extension dialing to your pbx you need to create your own user level dial plan.
Regards,
Paul
paul-lange , thank you for taking your time to respond.
For my second issue, I think I will be out of luck as the country service dialplan is always applied at the end of all dial plans? Which will not make it possible to send a call out without been transformed to "something" with a +. I will take up the work in the SBC to fix this.
NormalizationRules :
{Description=DE International Dialing Rule;
Pattern=^00(\d+)$;
Translation=+$1;
Name=DE Intl Dialing;
IsInternalExtension=False,
Description=DE Extensions rule;
Pattern=^((\+)?(\d+))(;)?(ext|extn|EXT|EXTN|x|X)(=)?(\d+)$;
Translation=$1;ext=$7;
Name=DE Extension Rule;
IsInternalExtension=False,
Description=DE Long Distance DialingRule;
Pattern=^0(\d+)$;
Translation=+49$1;
Name=DE Long Distance;
IsInternalExtension=False}
- fowler_23May 24, 2021Iron Contributor
It doesn't need to. Just amend your global dial plan and then add a new normalisation rule.
Go to Advanced and type in the If (\d{4})
Then $1 in the "Then do this"
Then if you test, you'll see putting in 4444
outputs 4444
As you talk about SBC's, you're obviously using Direct Routing so just ensure you have a Voice Route that matches the 3 digit number. Then 4444 will go straight to the SBC without any addition of +44 or +49 etc
Hope that helps.
- sonicswMay 25, 2021Copper Contributor@flowler_32 thank you so much, this worked!
Strange, if I enter the same but in the basic form it rejects me as the result is not e164. Would you happen to know also how to manipulate the source FROM callerID in the same manner in case the destination number is (\d{4})?- fowler_23May 25, 2021Iron Contributor
yes - you should use Advanced.
For your 2nd question, I would use the SBC to do that manipulation so for example. This call should hit your SBC with the calling number being the full E164 number and your called number being the 4 digit extension. You will probably have a call routing table where if Called Number is a 4 digit extension then it goes to your PBX.On the SBC, just do a translation that extracts last 4 digits from calling number and send that through so for example if the calling number range was +4411612xxxx then regex would be ^[+]4411612(\d{4})$ and output would be \1
This captures last 4 digits in the brackets and uses that as the output so PBX would receive 4 digits as both calling and called number.