Существует два способа извлечь запись, используя информацию в событии, а именно свойство recordings[0].id
и свойство sessionID
.
- , непосредственно вызывая конечную точку
recording
с recordings[0].id
property. - косвенным путем путем запроса конечной точки
call-log
со свойством sessionId
Примечание 1: Пока вызов продолжается,запись не будет доступна для извлечения, даже когда идентификатор записи присутствует в событии уведомления о сеансе вызова.Запись будет доступна для восстановления вскоре после завершения вызова.
Примечание 2: Записи вызовов могут быть в формате MP3 или WAV, определенном компанией.Чтобы различить, проверьте заголовок ответа Content-Type
для типа MIME при извлечении файла записи.
1) Непосредственно через API записи
Вы можете вызватьКонечная точка API записи и извлечение носителя напрямую, вручную создавая URL записи следующим образом:
https://media.ringcentral.com/restapi/v1.0/account/{accountId}/recording/{recordingId}/content
В этом примере accountId
равно 11111111
, а recordingId
равно 44444444
для следующего:
https://media.ringcentral.com/restapi/v1.0/account/11111111/recording/44444444/content
Этот подход может быть быстрым, он может быть подвержен ошибкам, так как RingCentral однажды изменил имя хоста носителя.Хотя ожидаемых изменений нет, будущие изменения, вызов API call-log
и получение полного URL-адреса мультимедиа из ответа, являются более безопасным и рекомендуемым подходом.Об этом подходе см. Ниже.
2) Косвенно через API-интерфейс журнала вызовов
Выполнение промежуточного вызова API для call-log
API имеет двойное преимущество, так как является официальнымподход для получения медиа-URL, предоставляющий больше метаданных для вызова.При таком подходе recording.id
в записи call-log
будет совпадать со свойством recordings[0].id
в событии уведомления о сеансе вызова.
API учетной записи компании и расширения call-log
API можно вызывать с помощьюsessionId
параметр из события, как показано:
GET /restapi/v1.0/account/~/call-log?sessionId={sessionId}
GET /restapi/v1.0/account/~/extension/~/call-log?sessionId={sessionId}
В этом примере sessionId
равен 1234567890
, поэтому вы должны иметь URL-адрес API журнала вызовов компании следующим образом
GET /restapi/v1.0/account/~/call-log?sessionId=1234567890
Объект ответа будет иметь свойство recording
, которое предоставляет гиперссылки для получения медиа-файла.Файл может быть в формате WAV или MP3, который сообщается в заголовке ответа Content-Type
.
{
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/11111111/extension/22222222/call-log?view=Simple&sessionId=1234567890&page=1&perPage=100",
"records": [
{
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/11111111/extension/22222222/call-log/1234567890ABCDEFGabcdefgh?view=Simple",
"id": "1234567890ABCDEFGabcdefgh",
"sessionId": "1234567890",
"startTime": "2019-03-08T22:30:29.505Z",
"duration": 35,
"type": "Voice",
"direction": "Inbound",
"action": "Phone Call",
"result": "Accepted",
"to": {
"phoneNumber": "+16505550100",
"name": "Jane Doe"
},
"from": {
"phoneNumber": "+14155550100",
"name": "John Smith",
"location": "San Francisco, CA"
},
"recording": {
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/11111111/recording/44444444",
"id": "44444444",
"type": "OnDemand",
"contentUri": "https://media.ringcentral.com/restapi/v1.0/account/111111111/recording/44444444/content"
},
"extension": {
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/111111111/extension/22222222",
"id": 22222222
},
"reason": "Accepted",
"reasonDescription": "The call connected to and was accepted by this number."
}
],
"paging": {
"page": 1,
"perPage": 100,
"pageStart": 0,
"pageEnd": 0
},
"navigation": {
"firstPage": {
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/11111111/extension/22222222/call-log?view=Simple&sessionId=1234567890&page=1&perPage=100"
},
"lastPage": {
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/11111111/extension/22222222/call-log?view=Simple&sessionId=1234567890&page=1&perPage=100"
}
}
}