summaryrefslogtreecommitdiff
path: root/protocols/Teams/src/teams_endpoint.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Teams/src/teams_endpoint.cpp')
-rw-r--r--protocols/Teams/src/teams_endpoint.cpp25
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);