Как я могу получить статус пользователя, как показано на программном телефоне RingCentral? - PullRequest
0 голосов
/ 12 марта 2019

Приложение софтфона RingCentral покажет статус пользователя следующим образом. Как я могу получить это через API?

  • Доступно
  • Busy
  • Не беспокоить
  • Невидимый
  • по вызову
  • В ожидании

Я смотрю на «Get API пользовательского статуса», в котором есть свойство presenceStatus со следующими значениями Offline, Busy, Available, но как мне получить полный список состояний, показанный на софтфон?

https://developer.ringcentral.com/api-reference#Presence-getPresenceStatus

Вот пример экрана:

enter image description here

1 Ответ

1 голос
/ 12 марта 2019

Присутствие пользователя является правильным местом для поиска этой информации, и это можно сделать статически через REST API и через обновления в режиме реального времени, используя Push-уведомления API подписки.

Состояние, отображаемое в программном телефоне, представляет собой комбинацию нескольких различных значений в присутствии пользователя и может быть таким, как показано ниже.

В следующей статье базы знаний показано, как определяется статус:

Присутствие - Просмотр присутствия через избранное | RingCentral Phone

enter image description here

Состояние их телефона будет отображаться как Доступно, Не беспокоить и Занято. Контакты невидимого или автономного режима будут рассматриваться как невидимые.

" Получить API статуса пользователя " (он же API присутствия) вернет объект, подобный следующему:

{
  "uri": "https://platform.ringcentral.com/restapi/v1.0/account/403228676008/extension/403228676008/presence",
   "extension": {
      "uri": "https://platform.ringcentral.com/restapi/v1.0/account/403228676008/extension/403228676008",
      "id": 403228676008,
      "extensionNumber": "101"
   },
   "presenceStatus": "Available",
   "telephonyStatus": "NoCall",
   "userStatus": "Available",
   "dndStatus": "TakeAllCalls",
   "allowSeeMyPresence": true,
   "ringOnMonitoredCall": false,
   "pickUpCallsOnHold": true
}

Исходя из этого, статус пользователя может быть построен с использованием этого псевдокода:

user_status = 
  !user.allowSeeMyPresence                ? "Invisible" :
  user.presenceStatus == "Offline"        ? "Invisible" :
  user.dndStatus == "DoNotAcceptAnyCalls" ? "Do Not Disturb" :
  user.telephonyStatus == "CallConnected" ? "On a Call" :
  user.telephonyStatus == "OnHold"        ? "On Hold" :
  user.presenceStatus == "Busy"           ? "Busy" : "Available"

Когда страница отображает эту информацию, вы также можете обновить ее в режиме реального времени, создав подписку на конечные точки присутствия для пользователей, для которых вы хотите получать обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...