Brian Rubarts' UC-blog

Blocking US Premium Rate Telephone Numbers (900 Numbers) in Lync Server

with 3 comments

Let’s say that your company wants to prohibit dialing 900-numbers by its employees and visitors.  The official name for numbers in this NPA within the North American Numbering Plan is “Premium-Rate Telephone Numbers”.

Traditionally, you would use Telephony Class of Service to accomplish this goal.  With Lync Server 2010, that would entail you making sure that 1-900-xxx-xxxx is not included in any Route with an associated PSTN Usage that is applied to the Voice Policies applied to any users which you wish to prohibit dialing this number.  Then, if a user without a PSTN Usage associated with a Route that has a Match Expression that includes 900xxxxxxx, then the caller would receive a Fast Busy signal, and receive a notification in the Lync client that the number is not valid.    That meets the requirement to prohibit access to the numbers, but it is kind of a clunky administrative response to a bad call attempt.
A more elegant and flexible way of accomplishing the organization’s goal, however, might be to use an Unassigned Number Range and an Unassigned Number Announcement.
To do this, simply create number ranges for numbers that you wish to prohibit.  Then, assign an announcement to the range(s), and you are in business.
Benefits of this approach:
  • Customizable Announcement which can either be a file or Text-to-Speech
  • Customizable call forwarding action after the announcement is played
  • A Monitoring Server CDR entry for the call so that you will know exactly which number the employee/visitor actually tried to call

Step 1. (Optional) Make Sure You Can Normalize 900 Numbers.

If you don’t already have a Normalization Rule in the Dial plan to cover these
numbers, then you can use this:

MATCH EXPRESSION:                   ^1?(900|976)([2-9]\d{2}\d{4})$

If you already have a sufficient rule, then skip this step.

Step 2. Create Announcement

New-CsAnnouncement -Parent  -Name “Announce_USPremiumeRateNumbers” -TextToSpeechPrompt “We are sorry, but the Premium Rate Number you dialed is prohibited.  If you need to reach this number, please notify your manager.  Thank you.” -Language “en-US”

Step 3. Create Unassigned Number range(s)

New-CsUnassignedNumber -Identity “Range_USPremiumRate_900” -NumberRangeStart “+19000000000” -NumberRangeEnd “+19009999999” –AnnouncementService -AnnouncementName  “Announce_USPremiumRateNumbers”


One of your additional options in the New-CsAnnouncement command is to add a SIP Address to forward the call to after the announcement has been played.  If you have an Operator or Receptionist Response Group Workflow configured, then use its SIP address to send the call to.

For all practical purposes, you could start the number range at +1900200000 instead of +19000000000, since in the NANP, only 2-9 are valid first digits in the Nxx.

You might notice that my Normalization Rule match expression includes 976.  Technically, 976 is not in use in the NANP, but premium numbers used to exist in that range, and it never hurts to block something that has no current legitimate use.

Written by rubartsunifiedcommunications

August 4, 2011 at 5:14 am

3 Responses

Subscribe to comments with RSS.

  1. This is very helpful. Excellent post!


    August 4, 2011 at 12:35 pm

  2. Hey Brian,
    Your excellent method of dealing with premium numbers inspired me to add that functionality to my Lync Dialing Rule Optimizer. See


    Ken Lasko

    September 15, 2011 at 4:07 am

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: