Как найти callerStatus и calleeStatus для вызовов RingCentral?

Как получить статус звонка для прошлых звонков?

Я хочу получить callerStatus а также calleeStatus статус, который я вижу в ответе API RingOut Status, но я не уверен, что использовать для ringOutId в пути URL:

https://developer.ringcentral.com/api-reference

Запрос

GET /restapi/v1.0/account/400162076008/extension/400162076009/ring-out/Y3MxNzE4NDkyODg0NDM5MDJAMTAuNjIuMjkuMzM

отклик

HTTP 200 OK

{
    "uri" : "https://platform.ringcentral.com/restapi/v1.0/account/400162076008/extension/400162076009/ring-out/2",
    "id" : "Y3MxNzE4NDkyODg0NDM5MDJAMTAuNjIuMjkuMzM",
    "status" : {
      "callStatus" : "Success",
      "callerStatus" : "Success",
      "calleeStatus" : "Success"
    }
}

При выполнении вызова статуса RingOut без ringOutIdЯ надеялся получить список звонков, но вместо этого я получаю следующую ошибку:

Resource for parameter [ringOutId] is not found

Что я использую для ringOutId? Как я могу получить callerStatus а также calleeStatus для звонков?

2 ответа

Решение

RingOut Active Call Статус

API RingOut Status используется только при совершении телефонных звонков через RingOut. ringOutId возвращается в ответе на API Make RingOut. Он также возвращает статус только во время разговора и через некоторое время, после чего возвращает 404.

Ссылка на API: https://developer.ringcentral.com/api-reference

RingOut Исторический статус звонка

Чтобы получить статус вызова для исторических вызовов, используйте API журнала вызовов. По умолчанию служба вернет статус общего вызова в result имущество. Чтобы получить статус отдельных абонентов на вызове, известных как ноги, используйте API детального журнала вызовов. Доступны следующие URL:

Журнал вызовов компании (все пользователи)

GET /restapi/v1.0/account/~/call-log?view=Detailed

https://developer.ringcentral.com/api-reference

Журнал вызовов внутреннего абонента

GET /restapi/v1.0/account/~/extension/~/call-log?view=Detailed

https://developer.ringcentral.com/api-reference

При подробном просмотре вы получите ответ с legs свойство, которое представляет собой массив записей журнала вызовов, также известный как записи сведений о вызовах (CDR). Пример записи показан ниже. Каждый звонок в legs массив имеет result имущество. result используется вместо статуса, поскольку в журнале вызовов перечислены только завершенные вызовы. Каждая нога имеет legType свойство, которое можно использовать для идентификации звонящего и вызываемого.

Например, legType можно установить на:

  • RingOutClientToCaller
  • RingOutClientToSubscriber

RingOutClientToSubscriber может быть использован для calleeStatus, Это дает нам:

  • callerStatus знак равно leg.result где leg.legType == 'RingOutClientToCaller'
  • calleeStatus знак равно leg.result где leg.legType == 'RingOutClientToSubscriber'

Примечание: CDR может иметь только одну ногу. Это может произойти, если result является Busy, В RingOut, если одна сторона занята, это может быть оптимизацией, чтобы не вызывать другую сторону. Много раз наши клиенты будут использовать RingOut, чтобы сначала позвонить своему сотруднику, а если сотрудник ответит, то позвонит клиенту. Если сотрудника нет, нет причин звонить клиенту и слушать, как он занят.

Вот пример записи журнала ответных вызовов:

{
  "uri": "https://platform.ringcentral.com/restapi/v1.0/account/727097016/extension/727097016/call-log/L6HbCN6tB1nyDUA?view=Detailed",
  "id": "L6HbCN6tB1nyDUA",
  "sessionId": "575838550017",
  "startTime": "2018-11-22T08:42:05.500Z",
  "duration": 19,
  "type": "Voice",
  "direction": "Outbound",
  "action": "RingOut PC",
  "result": "Call connected",
  "to": {
    "phoneNumber": "+12125550111",
    "name": "Daenerys Targaryen",
  },
  "from": {
    "phoneNumber": "+16505550101",
    "name": "John Snow"
  },
  "extension": {
    "uri": "https://platform.ringcentral.com/restapi/v1.0/account/727097016/extension/727097016",
    "id": 727097016
  },
  "transport": "PSTN",
  "lastModifiedTime": "2018-11-22T08:42:30.007Z",
  "billing": {
    "costIncluded": 0.0,
    "costPurchased": 0.0
  },
  "legs": [
    {
      "startTime": "2018-11-22T08:42:05.257Z",
      "duration": 20,
      "type": "Voice",
      "direction": "Outbound",
      "action": "RingOut PC",
      "result": "Call connected",
      "to": {
        "phoneNumber": "+16505550101",
        "name": "John Snow"
      },
      "from": {
        "phoneNumber": "+12125550111",
        "name": "Daenerys Targaryen",
      },
      "extension": {
        "uri": "https://platform.ringcentral.com/restapi/v1.0/account/727097016/extension/727097016",
        "id": 727097016
      },
      "transport": "PSTN",
      "billing": {
        "costIncluded": 0.0,
        "costPurchased": 0.0
      },
      "legType": "RingOutClientToSubscriber"
    },
    {
      "startTime": "2018-11-22T08:42:05.500Z",
      "duration": 19,
      "type": "Voice",
      "direction": "Outbound",
      "action": "RingOut PC",
      "result": "Call connected",
      "to": {
        "phoneNumber": "+12125550111",
        "name": "Daenerys Targaryen",
      },
      "from": {
        "phoneNumber": "+16505550101",
        "name": "John Snow"
      },
      "extension": {
        "uri": "https://platform.ringcentral.com/restapi/v1.0/account/727097016/extension/727097016",
        "id": 727097016
      },
      "transport": "PSTN",
      "legType": "RingOutClientToCaller",
      "master": true
    }
  ]
},

Примечание. В подробном примере журнала вызовов to а также from для RingOutClientToCaller нога совпадает с to а также from для общего вызова, в то время как они поменялись местами для RingOutClientToSubscriber нога к вызываемой. Это связано с тем, что вызываемый абонент будет соединен с вызывающим абонентом, чей номер указан в to собственность с их точки зрения.

вы можете позвонить https://platform.devtest.ringcentral.com/restapi/v1.0/account/~/active-calls на эту конечную точку, получить все сведения об активных вызовах, см. https://developers.ringcentral.com/guide/voice /поиск активных звонков

Другие вопросы по тегам