My requirement is I need to create a windows service which retrieves the Lync presence status(Available, Busy, Do not disturb ....) of each user in the Active directory.
I googled and found that below SDKs can retrieve the Lync Presence. Lync Client 2010 SDK, Unified Communications Managed API, Lync Server 2010 SDK, Unified Communications Client API.
Please suggest the best SDK among them to achieve my requirement.
Thanks in Advance.
There's a good write-up of each SDK and where you would use them here: http://www.codelync.com/an-overview-of-the-lync-apis/
For what you want to achieve, I would recommend using UCMA - the Unified Communications Client API. The way it works it that you give it a list of users you want to monitor status of, and it will then call back on an event each time their presence changes. You get a presence event as soon as you start subscribing, so you could then unsubscribe if you don't want to have ongoing notification.
An example of subscribing to lots of users might be:
There's a couple of tips, tricks and gotchas when using the Remote Presence View: check out MSDN here.