Customize Lync Presence Status

Within the Lync client we can set a number of default states we can use to show our presence to the audience. As you can see below:


Below you see the default states explained:

You are online and available to contact.

You are in a Lync call, or, according to your Outlook Calendar, you are in a meeting, and you don’t want to be interrupted.

Do not disturb
You don’t want to be disturbed and will see conversation notifications only if they are sent by someone in your Workgroup.

Be right back
You are stepping away from the computer for a few moments.

Your computer has been idle for a period of time (15 minutes by default).

Off work
You are not working and are not available to contact.

You are not signed in. You’ll appear Offline to individuals whom you have blocked from seeing your presence.

Your presence is not known. Your presence might appear unknown to others who are not using Lync as their instant messaging (IM) program.
Beside these defaults one there are also other possibilities we can achieve to present our presence. Like in some public IM programs we can define as offline.
Some organizations enabled this in their policy as well

Appear Offline
In the OCS we could manage this via GPO. Also we had the opportunity to enable this trough a register setting. As seen above in the screenshot it is not enabled by default and can be enabled in Lync by running a csclientpolicy command:

Get-CsClientPolicy | Set-CsClientPolicy –EnableAppearOffline:$true

This commando will edit the default policy, when a user logs of, exit the client and start it again the new status will be available directly.

Custom Presence
Also in Lync we have the possibility to create custom presences. This can be added up to 4 custom once. What we need is a file (custom.xml). They are available on TechNet An example I put here:

<?xml version=”1.0″?>
< custom States xmlns=””
<customState ID=”1″ availability=”online”>
<activity LCID=”1033″>Working from Home</activity>
< activity LCID=”1044″>activity 2 for 1044</activity>
< activity LCID=”1055″>activity 3 for 1055</activity>
< /customState>
< customState ID=”2″ availability=”busy”>
<activity LCID=”1033″>In a Live Meeting</activity>
< activity LCID=”1036″>Equivalent French String for – In a Live Meeting </activity>
< /customState>
< customState ID=”3″ availability=”busy”>
<activity LCID=”1033″>Meeting with Customer</activity>
< activity LCID=”1055″>meeting with client</activity>
< activity LCID=”1036″>Equivalent French String for – Meeting with Customer</activity>
< /customState>
< customState ID=”4″ availability=”do-not-disturb”>
<activity LCID=”1033″>Interviewing</activity>
< /customState></customStates>

LCID stands for Location ID, A full list can be found here link
Make this file available on a webserver what clients can reach. Then you can change the default Policy or create a new one.

Get-CsClientPolicy | Set-CsClientPolicy–CustomStateURL “https://fqdn/customstates.xml”

When a user logs of, exit the client and start it again the new status will be availble directly.