Microsoft Teams and user status/presence

Recent news says that Skype For Business is eventually going to be taken down and replaced by Microsoft Teams

Does Microsoft Teams have a way to update a user's status/presence?

Recent news says that Skype For Business is eventually going to be taken down and replaced by Microsoft Teams. I have a few projects that rely on Skype For Business and I use the following code to update a user's presence on Skype For Business using the 2013 lync SDK.

public static void PublishPresence(ContactAvailability contactAvailability)
{
    var publishData = new Dictionary
    {
        {PublishableContactInformationType.Availability, contactAvailability}
    };

        SendPublishRequest(publishData);
}

private static void SendPublishRequest(Dictionary publishData)
{
    try
    {
        PublishContactInformation(publishData);
    }
    catch (Exception exception)
    {
        _logger.Error("Cannot publish presence to Lync. Error: " + exception);
    }
}

public static void PublishContactInformation(Dictionary publishData)
{
    LyncClient lyncClient = LyncClient.GetClient();

    lyncClient.Self.BeginPublishContactInformation(publishData, ar => lyncClient.Self.EndPublishContactInformation(ar), null);
}

With that said we do plan on moving our projects to Microsoft Teams. However, we looked at the current Microsoft Teams SDK and we could not find any information about updating a user's presence. Is something similar not listed on their documentation that allows myself to change my own status/presence?

If I change my availability status in the web interface of Teams, a request is posted to https://emea-client-ss.msg.skype.com/v1/users/ME/presenceDocs/messagingService. The JSON posted has a type property with value UserPresenceDoc. The skype in there is not a typo; it seems the current Teams infrastructure simply piggybacks off Skype. (It may or may not continue to do so, or continue to maintain endpoints for compatibility.) – Jeroen Mostert Oct 6 '17 at 14:52 So it's a REST call... hmm. Would you be able to lead me to any documentation about that request? – Rafael Oct 6 '17 at 14:55 Beyond what you can google with keywords like presenceDocs and messagingService, no. I have no idea how either Skype or Teams work, I simply used the debugging feature in my browser to spy on the network request. You can easily do the same. (Well, assuming you have Teams, of course.) – Jeroen Mostert Oct 6 '17 at 14:56 My account doesn't have Teams enabled yet, but I will play around with it more when my admin enables it. –

If you have an MSDN/Visual Studio subscription, you have access to a Developer Tenant. This allows you to spin up full O365 development environment with all the bells and whistles (including Teams).

I'm happy to help with the API's that exist in Production or Preview today but Stack Overflow isn't the right platform for long-term roadmap discussions. That is something best left to official channels to disclose when it's ready. At the moment, you're correct in that the Microsoft Teams SDK doesn't include APIs for interacting with Presence. This is because Teams itself is mirroring Skype's presence using Skype's API. You can replicate this functionality within your application using the similar APIs. A good place to start would be the Unified Communications Web API (UCWA). If you're simply looking to surface Presence (rather than manipulate it), you can retrieve contactPresence. For manipulating the current user's status, you can use presence.



Data information

Original Question

Link to Rafael

Data coming from Stack Exchange Network