Resolution to multiple users associated with the source phone number error

I had an error message recently that appeared in the client logs for a user with Enterprise Voice enabled. The Skype for Business Client informed the user that the call could not be completed. This was the same for any call made.

Each time a call was attempted to the PSTN, the following message appeared in the client logs:

ms-diagnostics: 4002;reason=”Multiple users associated with the source phone number”


This error was meaningful and pointed me to the cause. It is telling us that two or more users have the same phone number assigned to them in the Skype for Business Control Panel.

Finding these users was easy with PowerShell!


This is how we do it:

Running the command Get-CsUser will return all the users but I needed to narrow this search down using the Where-Object Filter on the phone number that is assigned to each user.

I have the phone number of the user who reported the issue and by searching for that I should be able to list all users with that number assigned to them.

The Where-Object filter can be abbreviated to just Where or even just ? I prefer to use Where to make it easy for me to read. I will use this filter on the LineURI and output the results to a Table with the DisplayName and LineURI of the users that matched. The Format-Table command can also be shortened to FT


Get-CsUser | Where {$_.LineURI -eq “Tel:+35312345678;ext=5678” } | Format-Table -Property DisplayName,LineURI


The returned result was as follows:


DisplayName                       LineURI

———–                               ——-

Hutton, Austin                     Tel:+35312345678;ext=5678

Wayne, Bruce                       Tel:+35312345678;ext=5678



Now that’s great! I have found my users with the same number assigned and can correct this.

There is also a chance that you have a Private Number assigned to a user that could also be duplicated.

You can modify the script and replace the $_.LineURI with $_.PrivateLine as follows:


Get-CsUser | Where {$_.PrivateLine -eq “Tel:+35312345678;ext=5678” } | Format-Table -Property DisplayName,PrivateLine


The returned result in my case would be nothing as I am not using private numbers in my lab.

You can also modify the command to incorporate a search of the two; LineURI and PrivateLine as follows using the -or with the Where statement:


Get-CsUser | Where {$_.LineURI -eq “Tel:+35312345678;ext=5678” -or $_.PrivateLine -eq “Tel:+35312345678;ext=5678” }| Format-Table -Property DisplayName,LineURI,PrivateLine


This is my output:

DisplayName                      LineURI                                           PrivateLine

———–                             ——-                                                ———–

Hutton, Austin                   Tel:+35312345678;ext=5678

Wayne, Bruce                     Tel:+35312345678;ext=5678

Don’t forget these duplicate numbers may be assigned to other devices, objects, features or response groups so you must consider this.

Replace the Get-CsUser in the following command with the below:

Get-CsUser | Where {$_.LineURI -eq “Tel:+35312345678;ext=5678” } | Format-Table -Property DisplayName,LineURI



Get-CsTrustedApplicationEndpoint (you will need to return the sipaddress and identity as well in the Table)





So I guess all of this could be put in a script which I may do in the future.

All the best!


Leave a comment

Filed under Errors, PowerShell, Skype for Business Server 2015

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 )

Google photo

You are commenting using your Google 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