Есть два способа получить запись, используя информацию в событии уведомления о сеансе вызова (CSN), а именно свойство recordings[0].id
и свойство sessionID
.
- получение полного URL-адреса мультимедиа путем вызова конечной точки
call-log
со свойством sessionId
- создание URL-адреса носителя записи вручную с использованием свойства
recordings[0].id
.
Примечание 1. Во время разговора запись будет недоступна для извлечения, даже если идентификатор записи присутствует в событии уведомления о сеансе вызова. Запись будет доступна для восстановления вскоре после завершения разговора.
Примечание 2. Записи звонков могут быть в формате MP3 или WAV, определяемом компанией. Чтобы отличить, проверьте заголовок ответа Content-Type
для типа MIME при извлечении файла носителя записи.
1) Получение полного медиального URL через API журнала вызовов
Выполнение промежуточного API-вызова call-log
API имеет двойное преимущество: это официальный подход к получению URL-адреса мультимедиа и предоставление дополнительных метаданных для вызова. При таком подходе recording.id
в записи call-log
будет соответствовать свойству recordings[0].id
в событии Call Session Notification.
И учетная запись компании, и API расширения пользователя call-log
могут быть вызваны с параметром 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"
}
}
}
2) Ручное создание URL-адреса мультимедиа
Вы можете вызвать конечную точку 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
accountId
в URL-пути можно установить для текущей учетной записи авторизованного пользователя, используя ~
. Кроме того, его можно установить явно, извлекая accountId
из свойства event
или используя свойство accountId
в соответствующем объекте party
. Рекомендуется использовать ~
для установки accountId
.
Примечание. Этот подход может быть быстрым, он может быть подвержен ошибкам, так как RingCentral однажды изменил имя медиа-хоста в прошлом. Несмотря на отсутствие ожидаемых будущих изменений, вызов call-log
API и получение полного URL-адреса мультимедиа из ответа является более безопасным и рекомендуемым подходом. См. ниже этот подход. Это включено только потому, что некоторые люди попробуют это и могут столкнуться с проблемами позже.
3) Гибридный подход
Первый подход вызова конечной точки call-log
является рекомендуемым подходом, однако он включает дополнительный вызов API, и в большинстве случаев второй подход должен работать нормально.
Гибридный подход заключается в том, чтобы создать URL-адрес, как в подходе 2, а затем вернуться к подходу 1, если подход 2 возвращает 404 или другую ошибку.
person
Grokify
schedule
08.03.2019