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

Posted

技术标签:

【中文标题】如何获取 RingCentral 软电话中显示的用户状态?【英文标题】:How can I get a user's status as shown in the RingCentral softphone? 【发布时间】:2019-03-12 18:51:04 【问题描述】:

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

可用 忙 请勿打扰 不可见 正在通话中 暂停

我正在查看具有 presenceStatus 属性的“获取用户状态 API”,该属性具有以下值 OfflineBusyAvailable,但我如何获得显示在软电话?

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

这是一个示例截图:

【问题讨论】:

【参考方案1】:

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

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

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

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

https://support.ringcentral.com/s/article/7252?language=en_US

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

“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"

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

【讨论】:

以上是关于如何获取 RingCentral 软电话中显示的用户状态?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 以编程方式更改 RingCentral 中的用户存在状态?

获取有关 FaxOut RingCentral API 的传真状态更改的通知

仅在电话的 AlertDialog 中未显示软键盘

联想手机A65打电话时不显示软键盘怎么设置出来?

帆软报表如何获取下拉框显示值

如何以编程方式在 RingCentral 上发送消息?