Asterisk media
Jump to navigation
Jump to search
Overview
Asterisk media caching 내용 정리.
Basic
Asterisk 에서는 Asterisk-13 에서 소개된 내용 중 하나는 Media 를 URI 로 받아서 바로 play 할 수 있는 내용이었다. 그리고, Asterisk-14 에서는 캐싱(Caching)까지 가능하도록 되었다.
하지만 몇가지 특징과 제한점이 있다.
Extension
Asterisk 에서는 파일의 Extension 을 이용하여 파일의 타입을 확인하지 않고, 파일을 열어서 직접 포멧을 확인하는 방식을 사용해 왔다. 하지만 URI 를 통해 Media 를 제공할 경우, 반드시 파일의 확장자(Extension)가 있어야 한다.
URI Scheme
HTTP 혹은 HTTPS 모두 지원이 가능하다.
Caching
Media(sound) 가 한번 전송이 되고나면 해당 내용은 local server 에 캐싱된다. 캐싱 및 캐싱된 이후의 관리는 전적으로 standard http 규칙을 따른다. 일반적으로 다음과 같이 작동한다.
- If a Cache-Control header is included, Asterisk will obey whatever rules it specifies. In particular, the following should be checked.
- If no-cache is specified, the resulting file is marked as always 'dirty' - that is, we have to always retrieve a new resource from the server.
- If no-store is specified, Asterisk must attempt to purge the information before Asterisk shutdown and will always retrieve the resource from the server.
- s-maxage or max-age : Mark the file as 'dirty' after so many seconds.
- If the cached resource is 'dirty', look at the E-Tag header on the remote resource and compare it to the local E-Tag. If the two are different, retrieve the resource and update the entry in the cache. If the cached resource was retrieved with no-store, then we always retrieve the full resource.
요청하는 내용과 캐싱된 내용이 같은 내용인지 아닌지를 판별하는 방법은 제공된 URI 와 캐싱된 미디어의 URI 를 비교하여 확인한다.