如何获取在线帐户门户中显示的每个队列的队列成员的呼叫队列可用性?我特别希望每个队列的“成员可用性”下的 UI 中显示Available
和Busy
状态。Unavailable
我发现了一些呼叫队列 API,它们可以列出队列和队列成员,但它们像 UI 一样提供成员可用性。
呼叫队列 API:
如何获取在线帐户门户中显示的每个队列的队列成员的呼叫队列可用性?我特别希望每个队列的“成员可用性”下的 UI 中显示Available
和Busy
状态。Unavailable
我发现了一些呼叫队列 API,它们可以列出队列和队列成员,但它们像 UI 一样提供成员可用性。
呼叫队列 API:
以上是在正确的轨道上。队列成员列表可用后,您可以查询每个用户的队列可用性。
注意:如下所示的用户队列可用性对于他们所在的所有队列都是相同的,因此要按队列进行演示,此信息需要与他们的队列成员列表相结合。这可以从队列或用户角度检索:
要管理单个队列的可用性,请从感兴趣的队列中添加/删除用户,这可以使用Edit Call Queue Members API来完成。
对于这两个步骤,请查询 Get User Status API。下面提供了一个示例。
获取用户状态 API:
示例请求和响应如下所示:
要求:
GET /restapi/v1.0/account/{accountId}/extension/{extensionId}/presence
回复:
HTTP 200 OK
{
"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
}
使用以下命令获取用户的队列可用性:
1) 用户队列设置
用户的请勿打扰dndStatus
属性用于指示用户是否正在接受呼叫,包括呼叫队列。用户可以将其设置dndStatus
为以下四个值之一,其中“部门”是呼叫队列的另一个名称:
DoNotAcceptAnyCalls
DoNotAcceptDepartmentCalls
TakeAllCalls
TakeDepartmentCallsOnly
这大致可以映射到:
DoNotAcceptAnyCalls
或DoNotAcceptDepartmentCalls
TakeAllCalls
或TakeDepartmentCallsOnly
2) 用户整体可用性
下一步是检查presenceStatus
具有以下值的枚举字符串的属性:Offline
, Busy
, Available
。Offline
映射到Unavailable
UI 中。这是个人呼叫和队列呼叫的整体可用性。
3) 队列成员可用性
要创建队列成员可用性,请结合上面的两个属性,如以下伪代码。
我在下面添加了一个额外的“可用”条件,这不是必需的,但对解释很有用:
member_availability =
user.dndStatus == "DoNotAcceptAnyCalls" ? "Unavailable" :
user.dndStatus == "DoNotAcceptDepartmentCalls" ? "Unavailable" :
user.presenceStatus == "Offline" ? "Unavailable" :
user.presenceStatus == "Busy" ? "Busy" :
user.presenceStatus == "Available" ? "Available" : "Available"
这为用户提供了他们所在的所有队列的可用性,因此需要将其映射到队列成员列表或用户的队列列表。
示例代码
这是我编写的一些 Ruby 包装器代码,以便更轻松地在此处更新用户的队列状态: