CDN Mesh Delivery delivery works with the origin and CDN of your choice. Use the following tutorial to correctly configure your Akamai CDN to work most effectively with Streamroot peer-accelerated delivery.
What you need to configure
1. Enable CORS
2. Allow RANGE & OPTIONS requests
How to do it
The way to configure your HTTP headers depends on whether your streaming product is compatible with the new Akamai Luna Control Center.
AMD & PMD products:
For Adaptive Media Delivery (AMD) and Progressive Media Downloader (PMD) product categories, your Luna config will be sent to the Akamai Professional Service and they will activate OPTIONS and range requests for you.
Other products:
For Universal Streaming Live, Universal Streaming On-Demand, and Media Services Live for Smooth/HLS/MPEG-DASH/HDS, you can not access the Akamai Luna Control Center as it is not compatible for these product categories. You'll need to send an email to the Akamai Professional Service. You can use the below template:
I'd like to add the following settings to my configuration:
- CORS Headers:
- add 'Access-Control-Allow-Origin' '*' to the headers
- add "Range" to the existing headers sent in 'Access-Control-Allow-Headers'
- add "GET, OPTIONS" to the 'Access-Control-Allow-Methods'
- allow all the above headers in a preflight OPTIONS request.
The OPTIONS requests MUST only return the headers and an empty <body>.
Here is the code to implement this configuration:
<edgeservices:modify-outgoing-response.remove-header>
<name>Access-Control-Allow-Origin</name>
<status>on</status>
<edge-only>on</edge-only>
</edgeservices:modify-outgoing-response.remove-header>
<edgeservices:modify-outgoing-response.add-header>
<name>Access-Control-Allow-Origin</name>
<value>*</value>
<status>on</status>
<edge-only>on</edge-only>
</edgeservices:modify-outgoing-response.add-header>
<edgeservices:modify-outgoing-response.remove-header>
<name>Access-Control-Allow-Methods</name>
<status>on</status>
<edge-only>on</edge-only>
</edgeservices:modify-outgoing-response.remove-header>
<edgeservices:modify-outgoing-response.add-header>
<name>Access-Control-Allow-Methods</name>
<value>GET,OPTIONS</value>
<status>on</status>
<edge-only>on</edge-only>
</edgeservices:modify-outgoing-response.add-header>
<edgeservices:modify-outgoing-response.remove-header>
<name>Access-Control-Allow-Headers</name>
<status>on</status>
<edge-only>on</edge-only>
</edgeservices:modify-outgoing-response.remove-header>
<edgeservices:modify-outgoing-response.add-header>
<name>Access-Control-Allow-Headers</name>
<value>Range</value>
<status>on</status>
<edge-only>on</edge-only>
</edgeservices:modify-outgoing-response.add-header>
<match:request.method value="OPTIONS" result="true">
<edgeservices:construct-response>
<status>on</status>
<force-cache-eviction>on</force-cache-eviction>
<http-status>200</http-status>
<body/>
</edgeservices:construct-response>
</match:request.method>
How to do it from your Akamai Luna Control Center
1. OPTIONS requests

2. Range requests
The following module will add 'Range' to the allowed headers in order to be able to perform Range requests:
You're now all set for delivering your streams with both Akamai and Streamroot!