0

RingCentral 软电话应用程序将显示用户状态,如下所示。我怎样才能通过 API 获得这个?

  • 可用的
  • 忙碌的
  • 请勿打扰
  • 无形的
  • 通话中
  • 等候接听

我正在查看“获取用户状态 API”,它的presenceStatus属性具有以下值Offline, Busy, Available,但是如何获取软件电话上显示的完整状态列表?

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

这是一个示例屏幕截图:

在此处输入图像描述

4

1 回答 1

1

用户存在是查找此信息的正确位置,这可以通过 REST API 静态完成,也可以使用订阅 API 的推送通知通过实时更新完成。

软电话中显示的状态是用户在场的几个不同值的组合,可以如下所示。

以下知识库文章说明了如何确定状态:

Presence - 通过收藏夹查看 Presence | RingCentral 电话

在此处输入图像描述

他们的电话状态将显示为可用、请勿打扰和忙碌。隐形或离线联系人将被视为隐形。

Get User Status API ”(又名 Presence 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"

一旦页面显示此信息,您还可以通过为您希望接收更新的用户创建对存在端点的订阅来实时更新它。

于 2019-03-12T19:07:25.300 回答