There are two ways I've been able to get working to get the availability from Teams currently:
A. Connect directly to the server and query the user's availability (this seems like the less supported of the two options, it is not a public API and parts of it could change at any time). I have this working, and it's good if you BlyncLight is not attached to the computer you typically run Teams on. This is will be as good as it gets until there is some sort of presence functionality added to Microsoft Graph.
1. Use Fiddler to sniff the Teams conversation with the Teams server. 2. First watch for the authentication flow and extract the Azure ApplicationID (ClientID) and other needed info from the authentication flow and use it with the AuthenticationContext class in Microsoft.IdentityModel.Clients.ActiveDirectory to get an auth token. 3. Then find the presence REST request recreate it with your app. You can then either poll for availability how ever often you deem necessary or set up event listening the same way the Teams app does to get near real time updates.
B. Use the same method to get Presence from Teams that Outlook does. This will likely not be "officially" supported or documented, but it will at least stay working as long they want availability to work with "legacy" versions of Office.
1. You must be using the Teams desktop app, go to Settings and under General make sure "Register Teams as the chat app for Office" is checked. 2. You can find the documentation for how to add functionality to any IM app to allow Outlook to extract Presence from it here: docs.microsoft.com/en-us/office/client-developer/shared/integrating-im-applications-with-office#off15_IMIntegration_ImplementRequired_ILyncClient 3. Using that documentation, you can see what Outlook does to get presence from Skype, Teams, or any other app with presence enabled for Office. 4. So, just make your app do the same things (read the same registry keys, use the same interfaces, etc), and you can query and set up event listeners for presence changes.
Note: Not nearly as much of the UCCollaborationLib appears to be implemented in Teams as it is in Skype or other apps, just enough to make presence work with Outlook/Office. One frustration I can save you, is that Teams does not bother updating anything presence related on the ISelf object as far as I can tell. But if you read the user's URI from ISelf and then use it to get a "standard" IContact object, that contact will have presence information.
The success of MS teams is also largely a result of their mutual cooperation with dynamics ax. We should bear in mind that the success is never easy and is more often than not a result of cooperation of many. In this case, the best of both worlds - IT and consulting.
+1 I believe that it is vital to get ourselves the support we needed. There is a relatively new, but extremely good company when it comes to iot services - Pro4People. You could check if their services have what you need.