Возможно ли воспроизвести запись вызова RingCentral с использованием аудиоэлемента HTML5?

#html5-audio #ringcentral #call-recording

#html5-audio #ringcentral #запись вызова

Вопрос:

При использовании журнала вызовов RingCentral для доступа к аудиофайлам записи вызовов в contentUri объекте response.record[x].recording предоставляется a, который указывает на двоичную форму звука вызова. Authorization Заголовок API по-прежнему необходим для извлечения этого файла.

Возможно ли воспроизвести это в веб-приложении с использованием аудиоэлемента HTML5, чтобы нам не приходилось размещать / загружать звук вызова в нашу собственную систему. Похоже, что для этого нужно было бы избежать использования Authorization заголовка и предоставить авторизацию каким-либо другим способом. Например:

 <audio src="https://media.ringcentral.com/.../recording/{recordingId}"></audio>
  

Дополнительная информация о аудиоэлементе HTML5 доступна здесь:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio

Ответ №1:

Можно воспроизвести запись вызова RingCentral с использованием аудиоэлемента HTML5 без самостоятельной загрузки и размещения аудиофайла. Авторизация по-прежнему требуется, поэтому ее необходимо передать с использованием подхода, отличного от заголовка HTTP.

Два подхода включают:

1) Токен доступа в строке запроса

Вы можете добавить маркер доступа к URL-адресу мультимедиа в качестве параметра запроса, чтобы у вас было что-то вроде:

 <audio 
  src="https://media.ringcentral.com/.../{recordingId}?access_token=MyToken">
</audio>
  

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

2) Токен доступа в файле cookie

Если вам нужен постоянный URL-адрес, срок действия которого не истекает, вы можете использовать прокси-службу, которая управляет аутентификацией для вас. Один из способов сделать это — использовать поток OAuth неявного предоставления доступа RingCentral на основе cookie для передачи токена доступа в службу прокси. Таким образом, при попытке получить медиафайл по URL (без токена) прокси-служба может проверить, присутствует ли файл cookie и действителен ли он. Если это не так, служба прокси может запросить успешное неявное предоставление входа в систему перед перенаправлением в медиафайл записи вызова. Пример реализации этого доступен здесь:

https://github.com/tylerlong/permalink