When a caller dials out from Teams or Skype for Business Online with Phone System in Office 365 their Caller ID will be their phone number assigned to them. The Caller ID will be shown to the other part that gets the call (callee) from the caller. If you work in a call center, hospital or other sensitive environments you might not want to present your phone number when dialing out and then you can set calls as anonymous for those users. This does not work for Skype For Business server, there is other options for On-Premises users.

Start with connecting to Skype for Business Online Powershell, use the connect-office365 module. When connected you have to create a the Calling Line Identity with New-CsCallingLineIdentity. Start with checking if you have any existing Calling Line Identities in your tenant by running Get-CsCallingLineIdentity.

Global CLI is default for all users

Get-CsCallingLineIdentity should show the Global setting that is the default setting assigned to all users. Next we should create a policy that sets outbound calls to Anonymous for users, to do that we use the New-CsCallingLineIdentity.

New-CsCallingLineIdentity -Identity Anonymous -Description "Anonymous policy" -CallingIDSubstitute Anonymous -EnableUserOverride $false

As the last step we have to grant the policy we created to a user.

Grant-CsCallingLineIdentity -Identity "user@lync.se" -PolicyName Anonymous

Since I’m using a Direct Route connection for this test I can check the syslog from the SBC to see how the INVITE looks like and here we can see that FROM: is now anonymous instead of the phone number assigned to the user. Users can still receive calls on their phone number, this only affects outbound calls.

Show service number as Caller ID

You can also show another phone number in the Call ID. The procedure is the same as when you set anonymous as Caller ID. The requirement for the phone number you want to use as Caller ID is that it have to be a service number assigned to your tenant in Office 365 Phone System.

Use New-CsCallingLineIdentiy to create the new identity, this time set CallingIdSubstitute to “Service” and ServiceNumber to a number that you selected from your service number list (should be a Call Queue or Auto Attendant so that someone answers if the callee calls back).

New-CsCallingLineIdentity -Identity "Main number" -CallingIdSubstitute "Service" -ServiceNumber "+46313xxxxx" -EnableUserOverride $false -Verbose

Then assign the new policy to a user with Grant-CsCallingLineIdentity.

After a couple of minutes waiting time when I dial out and I check the SBC I can see that the INVITE is now changed so the FROM field is showing the new number and the Caller ID is changed.

Use a Direct Routing number as CallingLineIdentity

Unfortunately you can’t set a Direct Routing number in the CallingLineIdentity. So if you are using Direct Routing the best way to show a DR number used for a call queue or similar is to set a Microsoft Service number in the the policy. Then in your SBC you rewrite the FROM number to your DR number.

Using Teams Admin Center

In August 2019 Jeff Brown posted on Twitter that you can manage Caller ID policies from Teams Admin Center.