Lync/Skype presence status on SharePoint is not showing or not correct!
One of our customers was having a problem with his Skype/Lync presence status on SharePoint not displaying correctly. For instance, it was showing a user as 'Busy' whilst he is 'Available'.
In order to investigate this issue, we need first to understand how Skype/Lync presence status is working. Briefly, this feature relies on the IE add-on "NameCtrl Class". Digging deeper, this control is defined in NAME.dll that is installed in the directory %ProgramFiles%\Microsoft Office\Office15\ on the client computer during Microsoft Office Setup. Hence, what if the Skype/Lync presence status is not showing at all?
Firstly, ensure that the responsible control is loaded by accessing your IE add-ons, as follows:
N.B., the add-on will be loaded and listed in the above screenshot when you access a SharePoint page that has the presence status icon.
If after accessing the SharePoint page, you find that the add-on is not listed among your IE loaded add-ons, then check the below:
- Which IE version are you using? IE11?
- Do you already have Microsoft Office installed on your client machine? If yes, can you find Name.dll in the directory "%ProgramFiles%\Microsoft Office\Office15", or "%ProgramFiles%\Microsoft Office\Office14"? If you cannot find the dll, try repairing the installed Office, or reinstall it.
Unfortunately, if you are using IE11 you are out of luck as IE11 does not support the control "NameCtrl Class", as mentioned here https://technet.microsoft.com/en-us/library/cc263526(v=office.16).aspx. However, fortunately, IE10 does... How to sort this out rapidly and ensure that the IE version is the reason behind this? - Simply, launch the IE developer tools (f12) and change the emulator from IE11 to IE10, as shown below, which should resolve the issue (temporarily):
If this is the case, then the solution is easy and should be existent by default on SharePoint 2013. Luckily the SharePoint default master page, i.e. "Seattle.master" contains a tag for displaying the SharePoint pages using IE10 which is implemented by having the below tag in the master page...
<meta http-equiv="X-UA-Compatible" content="IE=10" />
If for any reason, you cannot find this tag, you can simply add it to your site's master page, under the tag <head runat="server"> to resolve this issue.
N.B., based on the above, using this tag will make SharePoint 2013 totally supports this functionality, although the end users have IE11
Back to the very first issue in this post, what if the Skype/Lync status is not showing correctly? - In order to investigate this, we need to know how the add-on "NameCtrl Class" is working. In fact, it works based on a SharePoint user property "SIP Address" which should have a valid value for the user in the format user@domain, e.g., firstname.lastname@example.org. If for any reason, this value is not correct, it won't show the right presence status, and that was our issue! The SIP Address was in the format sip:user@domain.
Therefore, the temp solution for this issue was to correct the SIP Address value for the user that has the issue (his status not showing correctly) on that specific SharePoint site by navigating to "https://SiteURL/_layouts/userdisp.aspx?Force=True,ID=User ID" and modifying the SIP Address value.
But what about the permanent fix for this issue?
Normally, this value is coming from AD using the User Profile Synchronization service. Hence, navigate to your UPS and check the SIP Address of the user profile. Is it correct? - If not, check it on AD. If it's correct on AD, but not on UPSA, then you need to run a User Profile Sync (incremental should be sufficient) to ensure that the value is correctly synced. If the value is correct on the User Profile Service Application, but not on your site, then normally the value should be replicated within an hour. If not, you will need to investigate why the User Profiles are not replicating to your SharePoint sites.
N.B., the value of this property on AD is in the format sip:user@domain; however, SharePoint is clever enough to convert it automatically to the format user@domain when running the User Profile Sync