如何获取 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”,该属性具有以下值 Offline
、Busy
、Available
,但我如何获得显示在软电话?
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 中的用户存在状态?