Как найти 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 /поиск активных звонков