# External media support

The Sinch platform supports playing audio files during a call. Audio files can be provided through a public URL, and multiple audio formats are supported.

## Accessing media

External media is accessed by providing a valid URL in the `play.url` property of a `PLAY` message within the SVAML `messages` command. Supported URL schemes are HTTP and HTTPS. The URL must point directly to the media file; redirects are not supported.

When a media file is downloaded for the first time, playback can be delayed. Delay depends on file size and the source server's upload speed.

### Content caching

After a successful download, the platform stores a local copy of the media file. This reduces repeated traffic between Sinch and the partner backend and helps reduce playback latency.

The following caching rules apply:

**When a `Cache-Control` header is present:**

- The platform uses the `max-age` directive to determine cache duration.
- The minimum supported duration is 24 hours; values below 24 hours are treated as 24 hours.
- This duration is absolute and expires exactly after the specified time from the moment the file was downloaded.


**When no `Cache-Control` header is present:**

- The file is cached for 24 hours from the last access time.
- Expiration is extended by 24 hours each time the media resource is used.


### Limits

Consider the following limits when providing an external media reference:

- File size is limited to 1 MB by default.
- Download attempts are limited to 50 per hour.
- Total downloaded content is limited to 50 MB per hour.


For larger files or a higher hourly content limit, contact Sinch support.

## Supported Content-Type headers

When accessing an external media resource, the platform requires a `Content-Type` header in the response. The following values are supported:

| Content-Type | File extensions |
|  --- | --- |
| `audio/wav` `audio/x-wav` `audio/wave` `audio/x-pn-wav` `audio/adpcm` | `.wav`, `.wave` |
| `audio/mpeg` `audio/x-mpeg` `audio/mp3` `audio/x-mp3` `audio/x-mpeg3` `audio/mp4` | `.mp1`, `.mp2`, `.mp3`, `.mp4`, `.mpa` |
| `audio/aac` `audio/x-aac` `audio/x-m4a` | `.m4a`, `.m4b`, `.m4p`, `.m4v`, `.m4r`, `.aac`, `.3gp` |
| `audio/aiff` `audio/x-aiff` `audio/aifc` `audio/x-aifc` | `.aiff`, `.aif`, `.aifc` |
| `audio/gsm` `audio/x-gsm` | `.gsm` |
| `audio/ogg` | `.ogg` |
| `audio/opus` | `.opus` |