diff options
author | George Hazan <george.hazan@gmail.com> | 2025-04-14 17:52:39 +0300 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2025-04-14 17:52:39 +0300 |
commit | 4d1681dbd44a551bc40b920ec558e7dfbabf6110 (patch) | |
tree | aa0a0bbf476293ece32678d9521058ef917e56b5 /protocols/Teams/src/teams_endpoint.cpp | |
parent | 34569ef81b0182e390d4533425d162193f06e069 (diff) |
Teams: more statuses from documentation
Diffstat (limited to 'protocols/Teams/src/teams_endpoint.cpp')
-rw-r--r-- | protocols/Teams/src/teams_endpoint.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/protocols/Teams/src/teams_endpoint.cpp b/protocols/Teams/src/teams_endpoint.cpp index 1b19cf4de5..5bf46cfbb8 100644 --- a/protocols/Teams/src/teams_endpoint.cpp +++ b/protocols/Teams/src/teams_endpoint.cpp @@ -184,9 +184,30 @@ void CTeamsProto::SetServerStatus(int iStatus) { auto *pReq = new AsyncHttpRequest(REQUEST_PUT, HOST_PRESENCE, "/me/endpoints", &CTeamsProto::OnStatusChanged); + const char *pszAvailability, *pszActivity; + switch (iStatus) { + case ID_STATUS_OFFLINE: + pszAvailability = pszActivity = "Offline"; + break; + case ID_STATUS_NA: + case ID_STATUS_AWAY: + pszAvailability = pszActivity = "Away"; + break; + case ID_STATUS_DND: + pszAvailability = "DoNotDisturb"; + pszActivity = "Presenting"; + break; + case ID_STATUS_OCCUPIED: + pszAvailability = "Busy"; + pszActivity = "InACall"; + break; + default: + pszAvailability = pszActivity = "Available"; + } + JSONNode node(JSON_NODE); - node << CHAR_PARAM("id", m_szEndpoint) << CHAR_PARAM("availability", MirandaToSkypeStatus(iStatus)) - << CHAR_PARAM("activity", "Available") << CHAR_PARAM("activityReporting", "Transport") << CHAR_PARAM("deviceType", "Desktop"); + node << CHAR_PARAM("id", m_szEndpoint) << CHAR_PARAM("availability", pszAvailability) + << CHAR_PARAM("activity", pszActivity) << CHAR_PARAM("activityReporting", "Transport") << CHAR_PARAM("deviceType", "Desktop"); pReq->m_szParam = node.write().c_str(); PushRequest(pReq); |