代码之家  ›  专栏  ›  技术社区  ›  Grokify Milad

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

  •  0
  • Grokify Milad  · 技术社区  · 6 年前

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

    • 忙吗?
    • 请勿打扰
    • 随叫随到
    • 暂缓

    presenceStatus 具有以下值的属性 Offline , Busy , Available ,但如何获取软电话上显示的完整状态列表?

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

    enter image description here

    0 回复  |  直到 6 年前
        1
  •  1
  •   Grokify Milad    6 年前

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

    下面的知识库文章说明如何确定状态:

    enter image description here

    手机的状态将显示为可用、请勿打扰和忙碌。不可见或脱机的联系人将被视为不可见。

    “那” Get User Status API “(aka 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"
    

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