如何获得RingCentral软电话中显示的用户状态?

时间:2019-03-12 18:51:04

标签: status ringcentral user-presence

RingCentral软电话应用程序将显示以下用户状态。如何通过API获取此信息?

  • 可用
  • 请勿打扰
  • 不可见
  • 通话中
  • 保留

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

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

这是一个示例屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:1)

用户存在是找到此信息的正确位置,可以通过REST API和使用Subscription API的推送通知进行的实时更新来静态完成此操作。

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

以下知识库文章指出了如何确定状态:

状态-通过“收藏夹”查看状态| RingCentral电话

enter image description here

  

其电话的状态将显示为“可用”,“请勿打扰”和“忙碌”。不可见或离线的联系人将被视为不可见。

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"

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