Outbound Calling Party Numbers
I previously wrote about how CM determines proper inbound call delivery (inc-call-handling-trmt), but might loosely be considered the DID -> Extension association. But… the inc-call-handling-trmt tables only tell CM how to figure out which extension to which a call should be delivered; they don’t actually associate DIDs with extensions. So how does CM determine the outbound calling party number when a station/extension makes an outgoing call? Enter public-unknown-numbering.
list public-unknown-numbering Page x
NUMBERING - PUBLIC/UNKNOWN FORMAT
Total
Ext Ext Trk CPN CPN
Len Code Grp(s) Prefix Len
4 5289 33055516 10
The “Ext Len” and “Ext Code” columns behave similarly to “Number Len” and “Number Digits” on inc-call-handling-trmt – just with extensions rather than inbound digit strings.
To calculate the sent number on a per-entry basis, using the example above:
- Check the Total CPN Length column to see how many digits should be sent in total. (10)
- Calculate the length of the CPN Prefix. (8)
- Subtract the calculated CPN Prefix length from the Total CPN Length, and remember that number as the Remaining Extension Digits. (10-8=2)
- Take the number of Remaining Extension Digits (2) from the right side of the extension (5289), and append it to the CPN Prefix (33055516). The result is 3305551689.
CM determines which entry is most specific, and then uses it, by first filtering by the appropriate extension length, and then ordering the entries by most specific (longest extension code) to least specific (shortest extension code). It then determines whether there is an entry for the specific trunk group that the call is traversing; if there is, it’s used. If not, the entry without a trunk group being defined is used. And of course if no entry is matched, CM cannot determine what number to send, and therefore doesn’t send one.
Let’s consider another example:
list public-unknown-numbering Page x
NUMBERING - PUBLIC/UNKNOWN FORMAT
Total
Ext Ext Trk CPN CPN
Len Code Grp(s) Prefix Len
4 2 0
4 7 630555 10
4 7 15 330322 10
4 7 45 8155552700 10
4 70 220835 10
4 707 3808352702 10
4 7074 7406546414 10
4 7074 15 33032211 10
If extension 7074 places a call, and the call traverses trunk-group 15, the sent number will be 3303221174. If it’s traversing any other trunk-group, the sent number will be 7406546414. Easy, right? Let’s try another.
If extension 7068 places a call, and that call traverses trunk-group 15:
- Check to see if there is an entry of extension length 4 and extension code 7068. There’s not.
- Check to see if there is an entry of extension length 4 and extension code 706. There’s not.
- Check to see if there is an entry of extension length 4 and extension code 70. Entries found.
- Determine if there is an entry for trunk-group 15. There’s not..
- Evaluate the entry that does not have a trunk-group defined. The result is that the sent number will be 2208357068.
Of course, for any of that to be effective, the call needs to traverse a trunk-group that supports sending CPNs, and it has to be enabled for that trunk-group.
change trunk-group 1 Page 1 of 21
TRUNK GROUP
Group Number: 1 Group Type: isdn CDR Reports: y
[...]
Service Type: public-ntwrk Auth Code? n TestCall ITC: rest
[...]
change trunk-group 1 Page 3 of 21
TRUNK FEATURES
[...]
Send Name: n Send Calling Number: y
[...]
Whether or not each station’s public-unknown-number is sent as the CPN is configured via “change station”:
change station 7074 Page 2 of 6
STATION
FEATURE OPTIONS
[...]
Per Station CPN - Send Calling Number? y
[...]
Valid options are y (yes, send CPN), n (no, don’t send CPN), or r (send restricted flag). If set to ‘y’, then CM uses the public-unknown-numbering table to determine the value to send for the trunk-group that the call is traversing. If set to ’n’, CM doesn’t send a CPN, but also doesn’t set the restricted CPN flag. If set to ‘r’, then CM doesn’t send a CPN, but does set the restricted CPN flag. I’m not a fan of using option ’n’ – in many cases, the upstream carrier will insert a default telephone number (or billing account number, or primary telephone number) as the CPN if none is present. On the flip side, when the environment has been deliberately and appropriately designed, that might be the only desired configuration. If your intent is to prevent the called party from seeing the calling party number, use option ‘r’.
It was pointed out to me that the original version of this post didn’t actually indicate how to change the unknown number for an extension. That’s done via “change public-unknown-numbering (extension-length) ext-digits (extension)”, like so:
change public-unknown-numbering 4 ext-digits 7074 Page 1 of 2
NUMBERING - PUBLIC/UNKNOWN FORMAT
Total
Ext Ext Trk CPN CPN
Len Code Grp(s) Prefix Len
Total Administered: 157
4 7074 15 7406546414 10 Maximum Entries: 9999
Note: If an entry applies to
a SIP connection to Avaya
Aura(R) Session Manager,
the resulting number must
be a complete E.164 number.
Communication Manager
automatically inserts
a '+' digit in this case.
The above example indicates that extension 7074 is already being mapped to “7406546414” whenever it traverses trunk-group 15 outbound. If you need to add another mapping for that extension, or if that extension is not listed, simply go to page 2 and complete the necessary fields. Page 2 is always blank, for adding, whereas page 1 jumps to the point in the list where the requested extension is stored (in order numerically).