Custom Presence in Lync 2010 in 4 Easy Steps – It Works With Office 365, Too

I know that there is a great deal of information on configuring custom presence states for Microsoft Office Communicator 2007 and 2007 R2. The examples in blogs and on Microsoft’s TechNet site all discuss how to configure an .xml file and then how to create the .reg file so that you can automatically update the registry for the client computer. The process is identical for Lync 2010 custom presence states, do you can also use this process for Communicator 2007 and Communicator 2007 R2. The process works the same whether you hare using Office 365’s Lync implementation or an on-premises Lync Server 2010 implementation.

Custom presence states are pretty much all client-side based.

So here is how to do it. Really, it isn’t that hard.

1. Create the .xml file.

I cheat. I take an existing custom presence file and edit the file as necessary. You can take the xml code here on the left (clue, it is blue and indented) and copy and paste it into a file named something really creative, like, custompresence.xml. Note: Doing a direct copy and paste will likely add odd characters, so make sure you paste it as straight text.

<?xml version=”1.0″ encoding=”utf-8″?>
  <customState ID=”1″ availability=”Online”>
    <activity LCID=”1033″>Working from home</activity>
  <customState ID=”2″ availability=”Online”>
    <activity LCID=”1033″>I am a happy camper</activity>
  <customState ID=”3″ availability=”do-not-disturb”>
    <activity LCID=”1033″>In a conference call</activity>
  <customState ID=”4″ availability=”do-not-disturb”>
    <activity LCID=”1033″>Wrapping up for the day</activity>

If you double-click the file after you have created it, it should appear in Internet Explorer and look nice and pretty like the image below and to the right. In my case, I like to run mine from a web server, so I just typed in the URL, which happens to be If you want, you can even use the one that I use. No charge. You can also, if you are running Office 365, put the .xml file on your SharePoint site and use the URL from the SharePoint location. Many people also just keep the file on the local computer. Since I do lots of roaming between computers and networks, I like to use the same file; the best way to do that is to use a web server.CustomPresenceXML

I am sure you remember from all of your other reading on the topic that you can only have up to four custom presence states and that the availability can only be one of the following

  • online
  • busy
  • do-not-disturb

2. Configure the Registry.

I have set up custom presence several times, but I hate creating the .reg file that is used by most examples, including the one on Microsoft’s TechNet site. I usually do a manual registry edit. I started making the manual changes in the registry because I used to have to go there anyways to troubleshoot issues with the .reg file on several occasions.  Yeah, I make mistakes when typing all the time. Smile

Like I said, you can create a .reg file as many other people recommend, and then run the .reg file so it configures the settings for you. I prefer to just go into the registry and create the settings. So, if you want to be like me, fire off regedit.exe to open the registry editor. In the registry editor, navigate to one of the following:

  • HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Communicator
  • HKEY_CURRENT_USER\Software\Policies\Microsoft\Communicator

The HKLM settings take priority over the HKCU settings, but it will work in either place depending on whether you want to apply the custom presence states to the computer or to the user on the computer. In this case, I am using HKCU.

You may find that there is no Communicator key located under the Microsoft node in the tree. No problem, just add it. Right-click the Microsoft node and select New, then Key, and then type in CustomPresenceRegistryCommunicator.

Next, you need to take two steps.

  1. You need to create a DWORD for for EnableSIPHighSecurityMode and set it to 0 (which is the default). To create the DWORD, simply right-click on the Communicator node in the tree and select DWORD (32-bit) Value, then enter in EnableSIPHighSecurityModefor the name and the value is 0.
  2. Next, you need to create a String Value for the CustomStateURL value. Again, to create the entry is pretty easy as all you need to do is right-click the Communicator node and select String Value, then enter in the location of the .xml file. In my case, I put in for the value.CustomPresenceRegistry2 If you want, you can store your custompresence.xml file on the local hard drive. If it is on the local drive, you can just enter file:///c:/FolderName/custompresence.xml instead of using a web url.

The result should look like the image above.

If you use a .reg file like in other examples, you should still see the same information in your registry if you view the settings in registry editor.

3. Sign out of Lync 2010 and then sign back in again.

In the notification area in the task bar, right-click the Lync 2010 icon and select Sign Out, then right-click the Lync 2010 icon again, and select Sign In. You will not have to exit and restart the Lync 2010 client CustomPresenceif everything is done correctly.

If all went according to plan, you should see the custom presence states. It should work perfectly unless you made a typing mistake, or you followed my example real closely and I had made a typing mistake. I think my typing was good enough in this case.

4. Use your new custom presence states and make your peers jealous of your awesome geek skills.

Note: Custom presence states will not be visible to Federated users that view your presence. In order for them to see your new custom presence states, you will need to add them to your Colleagues container in the Lync client. How? Easy. Just click on the Relationship link in Lync and then drag and drop the contacts into the Colleagues container.

This entry was posted in Lync, Office Communications Server. Bookmark the permalink.

13 Responses to Custom Presence in Lync 2010 in 4 Easy Steps – It Works With Office 365, Too

  1. Anders says:

    Hi. I’ve followed the steps and it sort of works. But instead of displaying the custom presence, it just shows the availability like “Online” and “Busy”.

    My XML file:





    Any idea why?

  2. Al says:

    Can’t get it to work – is it possible that the Key belongs in the Office subkey or needs to be named Lync, rather than communicator?

  3. Nadri Ahmad says:

    Thank a lot …it’s work

  4. Bob says:

    Will this work in LYNC 2013?

  5. Tom says:

    Terrific Job! This works like a champ. Thank you Al

  6. Pingback: Custom Presence in Lync 2013–Where did my Custom Presence States Go After I Upgraded? | Build Your Business on a Solid Infrastructure

  7. Ed says:

    Great INFO, thanks worked like a charm. Thanks Russ.
    (NOTE: follow the instructions carefully … there will be several Microsoft and Policies level names … make sure it is HKEY_CURRENT_USER -> Software -> Microsoft -> Communicator )

Leave a Reply to Russ Kaufmann Cancel 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