Как получить доступ к участникам RingCentral Call Queue? - PullRequest
1 голос
/ 12 марта 2019

Как я могу получить доступность очереди вызовов для участников очереди на очередь, которая отображается на портале онлайн-аккаунта? Я специально хочу, чтобы статусы Available, Busy и Unavailable отображались в пользовательском интерфейсе в разделе «Доступность участников» для каждой очереди.

Я обнаружил несколько API-интерфейсов очереди вызовов, которые могут перечислять очереди и участников очереди, но они обеспечивают доступность участников, например пользовательский интерфейс.

API очереди вызовов:

Изображение ниже из статьи об очереди вызовов - доступность пользователя и обработка вызовов

RingCentral Call Queue Member Availability

1 Ответ

1 голос
/ 12 марта 2019

Выше на правильном пути. Как только список участников очереди станет доступен, вы можете запросить каждого пользователя о доступности его или ее очереди.

Примечание: Доступность очереди пользователя, представленная ниже, одинакова для всех очередей, в которых они присутствуют, поэтому для проведения презентации по очереди эту информацию необходимо объединить со списком участников очереди. Это можно получить из очереди или с точки зрения пользователя:

Чтобы управлять доступностью отдельной очереди, добавьте / удалите пользователя из интересующих очередей, что можно сделать с помощью Редактировать API членов очереди вызовов .

Для обоих шагов запросите 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 в пользовательском интерфейсе. Это общая доступность как для личных звонков, так и для очередей.

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, который я написал, чтобы упростить обновление статуса очереди пользователя здесь:

RingCentral Ruby SDK extension_presence.rb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...