Подписка на активные вызовы оператора

Параметры запроса
{
    operatorIds: string[]
}
PY
Параметры ответа
CallFromServer[]
PY
export interface CallFromServer {
    acd: 'true' | 'false'
    answerTime: iso8601
    numberA: string
    numberB: string
    direction: string
    displayNameA: string
    displayNameB: string
    // Ссылка на диалог вызова, используется для получения записи разговора на этапе постобработки
    callRef?: string
    conferenceId?: string
    faxReceive: 'true' | 'false'
    faxUrls: Url[]
    // Идентификатор вызова, используется для управления вызовом: принять, отбить, завершить и др.
    id: string
    onConsultation?: 'true' | 'false'
    operatorId: string
    isConsult: 'true' | 'false'
    queueDescription: string
    queueId: string
    // Служебная ссылка на диалог, не используется
    ref: string
    releaseTime: iso8601
    startTime: iso8601
    status: ActiveCallStatus
    supervising?: InterceptModes
    type: ActiveCallType
}

type Url = string
 
export enum ActiveCallStatus {
    working = 'working',
    alerting = 'alerting',
    initiating = 'initiating',
    fax_receiving = 'fax_receiving',
    fax_rejecting = 'fax_rejecting',
    hold = 'hold',
    acw = 'acw',
    released = 'released',
    finished = 'finished',
}
 
export enum ActiveCallType {
    call = 'call',
    mail = 'mail',
    chat = 'chat',
}
 

export enum InterceptModes {
    observing = 'observing',
    consult = 'consult',
    conference = 'conference',
}
PY

Идентификатор вызова id: string используется в командах call/acceptcall/rejectcall/complete

Ссылка на диалог вызова callRef?: string используется в команде call/getCallRecord

Коды ответов:

200

Пример:
Запрос:

{
  "action": "call/subscribe",
  "requestId": 13,
  "payload": {
    "operatorIds": [
      "4"
    ]
  }
}            
PY

Код ответа:

200

Ответ:

{
  "action": "call/subscribe",
  "requestId": 13,
  "payload": {},
  "status": 200
}
PY

Сразу после этого приходит уведомление с пустым списком вызовов

{
  "action": "event",
  "requestId": 0,
  "payload": {
    "event": "call/subscribe",
    "payload": []
  },
  "status": 200
}
PY

При входящем вызове, например с номера 6601 приходит уведомление

{
  "action": "event",
  "requestId": 0,
  "payload": {
    "event": "call/subscribe",
    "payload": [
      {
        "id": "0648139dc0cb2f00",
        "type": "call",
        "status": "alerting",
        "acd": "false",
        "direction": "in",
        "ref": "{<<\"0648139dbe8a77af\">>,95}",
        "intervention": "true",
        "callRef": "1993245726",
        "isConsult": false,
        "displayNameA": "Матвей Владимирович",
        "displayNameB": "Константинопольский Константин",
        "alertingTime": "2020/12/16 07:59:08",
        "faxReceive": "true",
        "startTime": "2020-12-16T07:59:08.000+07:00",
        "numberA": "6601",
        "numberB": "2004",
        "operatorId": "4",
        "faxUrls": []
      }
    ]
  },
  "status": 200
}
PY

Для того чтобы принять вызов, нужно отправить команду call/accept, используя id вызова