Where to start
Start with the 5G MSd End-to-End deployment (with Docker) tutorial. It sets up a working Application Function (AF) and Application Server (AS) and is the prerequisite for the feature tutorials that follow (Consumption Reporting, QoE Metrics Reporting, CMCD Reporting and the 5G Network deployment all build on it). The testing tutorials (AS, AF, Postman) are for developers who want to exercise individual interfaces in detail. For the source, see the Resources page; for the standards context, see the Standards page and the technical documentation.
Tutorial: 5G MSd End-to-End deployment (with Docker)
Covers: deploying a complete 5G Media Streaming setup with Docker. Start here.
Tutorial: 5G MSd End-to-End deployment with 5G Network
Covers: deploying 5G Media Streaming with a 5G Network and a commercial off-the-shelf (COTS) User Equipment (UE). Builds on the Docker end-to-end tutorial.
Tutorial: 5G Media Streaming with Consumption Reporting
Covers: enabling and using Consumption Reporting for 5G Media Streaming. Builds on the Docker end-to-end tutorial.
Tutorial: 5G Media Streaming with QoE Metrics Reporting
Covers: enabling and using Quality of Experience (QoE) Metrics Reporting for 5G Media Streaming. Builds on the Docker end-to-end tutorial.
Tutorial: CMCD Reporting
Covers: enabling Common Media Client Data (CMCD) collection in the 5GMS Application Server, deploying the cmcd-toolkit collector and Grafana dashboard, and verifying end-to-end CMCD metric delivery. Builds on the Docker end-to-end tutorial.
Tutorial: Developing and Testing the 5GMS Application Server
Covers: setting up the 5GMSd AS for development and testing; testing the AS with and without the AF (using an M3 client); configuring HTTP and HTTPS Application Servers; and testing the internal M3 Certificates and ContentHostingConfiguration APIs.
Tutorial: Testing the 5GMS Application Function
Covers: setting up the 5GMSd AF; testing the M1 interface APIs (Provisioning Sessions, Server Certificates, Content Protocol Discovery, Content Hosting, Consumption Reporting); testing the M3 interface APIs (simple HTTP configuration, HTTP configuration and certificate sending); and testing the M5 interface APIs (Service Access Information).
Tutorial: Testing M1 and M5 APIs with Postman
Covers: testing the M1 and M5 APIs of the 5GMSd AF with Postman.
Feature Deep Dives
The Scope page introduces each 5GMS feature and links here for the full technical detail: reference points, APIs, JSON configuration schemas and current implementation status. The provisioning and reference-point terminology used below is defined on the Scope page.
Content Hosting
The content hosting feature provides a service equivalent to a Content Delivery Network (CDN) deployed inside or outside the Trusted DN. It includes selecting the ingest protocol and format, caching and proxying of media objects, content preparation, access protection (e.g. URL signing) and indicating a target distribution area (e.g. through geofencing).
The following are the reference points and APIs.
-
At M1:
-
At M5:
Once a Provisioning Session is established using the API at interface M1d, Content Hosting can be configured. The security of the content published to the 5GMS System may be guaranteed by a provisioned Server Certificate.
This is a JSON scheme of a Content Hosting Configuration, which tells the 5GMS System where to ingest content from and how to distribute it:
{
"name": "string",
"ingestConfiguration": {
"pull": true,
"protocol": "string",
"baseURL": "string"
},
"distributionConfigurations": [
{
"entryPoint": {
"relativePath": "string",
"contentType": "string",
"profiles": ["string"]
},
"contentPreparationTemplateId": "string",
"edgeResourcesConfigurationId": "string",
"canonicalDomainName": "string",
"domainNameAlias": "string",
"baseURL": "string",
"pathRewriteRules": [
{
"requestPathPattern": "string",
"mappedPath": "string"
}
],
"cachingConfigurations": [
{
"urlPatternFilter": "string",
"cachingDirectives": {
"statusCodeFilters": [0],
"noCache": true,
"maxAge": 0
}
}
],
"geoFencing": {
"locatorType": "string",
"locators": ["string"]
},
"urlSignature": {
"urlPattern": "string",
"tokenName": "string",
"passphraseName": "string",
"passphrase": "string",
"tokenExpiryName": "string",
"useIPAddress": true,
"ipAddressName": "string"
},
"certificateId": "string",
"supplementaryDistributionNetworks": [
{
"distributionNetworkType": "NETWORK_EMBMS",
"distributionMode": "MODE_EXCLUSIVE"
}
]
}
]
}
Key fields:
name: A human-readable label for this configuration.ingestConfiguration: How the AS obtains the source content, including the ingestprotocoland the sourcebaseURL.distributionConfigurations: How the content is exposed to clients, including theentryPoint(relative path, content type and profiles), caching rules, geo-fencing and URL signing.
Note that some fields are accepted by the API but are not yet implemented by the Reference Tools (see the :::note in the "Summary of APIs" section on Scope): Content Preparation, Edge Resources, Geo-fencing and URL signing.
Note that the supported protocols in 3GPP Release 17 are:
- HTTP pull-based content ingest protocol:
urn:3gpp:5gms:content-protocol:http-pull-ingest - DASH-IF push-based content ingest protocol:
urn:3gpp:5gms:content-protocol:dash-if-ingest
Examples are available in the examples-files directory of rt-5gms-examples
Network Assistance
The network assistance feature enables the 5GMS Client in the UE to interrogate or manipulate the network Quality of Service (QoS) for an ongoing media streaming session. It defines two mechanisms for obtaining network assistance: via interactions with the Policy Control Function (PCF) (AF-based network assistance), or via Access Network Bitrate Recommendation (ANBR) signalling interactions between the UE modem and the Radio Access Network (RAN) (ANBR-based network assistance).
Of the two Network Assistance capabilities described below, the support table in Scope: Summary of features supported by the 5GMS Application Function indicates that only Delivery Boost is currently implemented; Throughput Estimation (Bit Rate Recommendation) is still in development. The descriptions below cover both as defined by the specification.
Both mechanisms make it possible to obtain:
-
Bit Rate Recommendation (Throughput Estimation), which allows the 5GMS Client to stay synchronized with the network's current capabilities.
- The client asks the 5GMS System for a bit rate estimate. The system then queries the Policy Control Function (PCF) to determine the available throughput for that specific session.
- The client uses this data to proactively adjust its streaming speed, for example by switching media quality levels (downlink).
- It prevents stuttering and lag, ensuring a stable and consistent Quality of Experience (QoE) by staying within the network's "QoS envelope."
-
Delivery Boost, which is a reactive feature used to request extra network performance when needed.
- The client requests a temporary increase in bit rate. The 5GMS System asks the PCF to modify the session parameters to grant this extra capacity.
- If the network has spare capacity, the boost is granted. The client uses this "boost" of speed to quickly refill a depleted buffer or finish a large file transfer faster.
- It helps the user recover from potential playback interruptions or speeds up time-sensitive data tasks.
The following are the reference points and APIs.
The network assistance feature is not explicitly provisioned by the 5GMS Application Provider. It is either available for a particular media streaming session or not, depending on system pre-configuration and/or policy.
Dynamic Policies
The dynamic policies feature enables the 5GMS Client in the UE to manipulate the network traffic handling policies for an ongoing media streaming session.
The following are the reference points and APIs.
-
At M1:
-
At M5:
When the dynamic policy feature is offered and selected, the 5GMSd Application Provider specifies a set of policies which can be invoked for the unicast downlink streaming session. The UE becomes aware of the selected policies in the form of a list of valid Policy Template Ids.
Examples are available in the examples-files directory of rt-5gms-examples
This is a JSON scheme of a Policy Template, which describes the QoS and charging treatment a session may request:
{
"externalReference": "string",
"qoSSpecification": {
"qosReference": "string",
"maxBtrUl": "string",
"maxBtrDl": "string",
"maxAuthBtrUl": "string",
"maxAuthBtrDl": "string",
"defPacketLossRateDl": 0,
"defPacketLossRateUl": 0
},
"applicationSessionContext": {
"sliceInfo": {
"sst": 255,
"sd": "string"
},
"dnn": "string"
},
"chargingSpecification": {
"sponId": "string",
"sponStatus": "SPONSOR_DISABLED",
"gpsi": ["string"]
}
}
Key fields:
externalReference: An identifier for the policy used outside the 5GMS System.qoSSpecification: The requested QoS, including the QoS reference and the maximum uplink and downlink bit rates.applicationSessionContext: The network slice (sliceInfo) and Data Network Name (dnn) the policy applies to.chargingSpecification: Sponsored-data and charging settings for the session.
Consumption Reporting
The consumption reporting feature allows consumption of downlink media streaming to be logged by the 5GMS System and exposed for analysis.
The following are the reference points and APIs.
-
At M1:
-
At M5:
Once a Provisioning Session is established using the API at interface M1d, Consumption Reporting can be configured.
This is a JSON scheme of a Consumption Reporting Configuration:
{
"reportingInterval": 1,
"samplePercentage": 100,
"locationReporting": true,
"accessReporting": true
}
Where:
reportingInterval: The interval between two consecutive consumption reports. The value shall be greater than zero.samplePercentage: The proportion of media streaming clients that shall report media consumption, expressed as a floating point value between 0.0 and 100.0.locationReporting: Stipulates whether the Media Session Handler is required to provide location data to the 5GMSd AF in consumption reporting messages.accessReporting: Stipulates whether the Media Session Handler is required to provide consumption reporting messages to the 5GMSd AF when the access network changes during a media streaming session.
Examples are available in the examples-files directory of rt-5gms-examples
QoE Metrics Reporting
The QoE metrics reporting feature enables the 5GMS System to log and expose streaming performance data for further analysis.
The framework defines two distinct reporting paths:
-
RAN-based Reporting: Metrics are sent to the Operations, Administration, and Maintenance (OAM) system via the Radio Access Network.
-
AF-based Reporting: Metrics are sent directly to the network-side components (AF) of the 5GMS System.
The following are the reference points and APIs.
-
At M1:
-
At M5:
Once a Provisioning Session is established using the API at interface M1d, QoE Metrics Reporting can be configured.
This is a JSON scheme of a Metrics Reporting Configuration:
{
"metricsReportingConfigurationId": "string",
"sliceScope": [
{
"sst": 255,
"sd": "string"
}
],
"scheme": "string",
"dataNetworkName": "string",
"reportingInterval": 0,
"samplePercentage": 100,
"urlFilters": ["string"],
"samplingPeriod": 0,
"metrics": ["string"]
}
Where the field metrics for downlink media streaming and for the 3GPP scheme urn:3GPP:ns:PSS:DASH:QM10 corresponds, for example, to one or more of the following quality metrics for DASH. Metrics currently supported by the Reference Tools are shown in green and marked "(supported)" in the list below:
- HTTP request/response urn:3GPP:ns:PSS:DASH:QM10#HTTPList (supported)
- List of Representation Switch Events: urn:3GPP:ns:PSS:DASH:QM10#RepSwitchList (supported)
- Average Throughput: urn:3GPP:ns:PSS:DASH:QM10#AvgThroughput
- Initial Playout Delay: urn:3GPP:ns:PSS:DASH:QM10#InitialPlayoutDelay
- Buffer Level: urn:3GPP:ns:PSS:DASH:QM10#BufferLevel (supported)
- Play List: urn:3GPP:ns:PSS:DASH:QM10#PlayList
- MPD Information: urn:3GPP:ns:PSS:DASH:QM10#MPDInformation (supported)
- Playout Delay for Media Start-up: urn:3GPP:ns:PSS:DASH:QM10#PlayoutDelayforMediaStartup
- Device information: urn:3GPP:ns:PSS:DASH:QM10#DeviceInformationList
Examples are available in the examples-files directory of rt-5gms-examples
Data Collection, Reporting and Exposure
This feature is not yet implemented within the framework of 5GMS. A generic architecture for UE Data Collection and Reporting is available separately (see the note at the end of this section).
The data collection, reporting and exposure feature enables the 5GMS System to log data relating to media streaming sessions and to expose this to subscribers in the form of Events.
The following are the reference points and APIs.
At the moment, a generic architecture for UE Data Collection and Reporting is available in the Reference Tools under the following project: UE Data Collection, Reporting and Event Exposure. Note these entities are not yet implemented within the framework of 5GMS.
Implementation Status Detail
Summary of features supported by the 5GMS Application Function
The release versions of the 5GMSd Application Function support differing sets of interfaces, as described by the different versions of the 3GPP specifications, and differing levels of feature support for those interfaces. The following attempts to capture the feature sets and specification versions for each release, starting with the most recent release or upcoming releases.
Key
A feature is marked with ☑ where it is supported, with ✎ where it is being worked on and slated for the next release, and with ☐ where it is unimplemented in that version.
| Interface reference point | Specifications & Versions | Protocols | Features |
|---|---|---|---|
| M1 (server) |
|
|
|
| M3 (client) |
|
|
|
| M5 (server) |
|
|
|
| N5 (Npcf client/server) |
|
|
|
| N33 (client) |
|
|
|
| R4 (server) |
|
|
|
| R5/R6 (client/server) |
|
|
|
| Nbsf (client) |
|
|
Summary of APIs supported for 5G Media Streaming
Relevant specifications
The table contains the 3GPP 5G Media Streaming APIs for Release 17 (TS 26.512) and Release 18 (TS 26.510 & TS 26.512). Note that the current reference implementation of the 5GMSd AF and 5GMSd AS are based on Release 17 (TS 26.510 does not exist in Release 17). In Release 18, the media session handling APIs were moved from TS 26.512 into TS 26.510 to generalise them to support the Real-Time media Communication (RTC) System as well as the 5G Media Streaming (5GMS) System. More information about the relevant specifications can be found in the following pages:
- 5G Media Streaming Architecture: Standards pages
- UE Data Collection and Event Exposure: Standards pages
In the table below, entries shown in green (bold) are already implemented in the Reference Tools; entries shown in orange (bold) are on the implementation roadmap; all other entries are not yet implemented. See the Legend beneath the table for the full key.
| Release 17 | Release 18 |
|---|---|
| TS26512_CommonData.yaml | TS26510_CommonData.yaml, TS26512_CommonData.yaml |
| TS26512_M1_ConsumptionReportingProvisioning.yaml | TS26510_Maf_Provisioning_ConsumptionReporting.yaml |
| TS26512_M1_ContentHostingProvisioning.yaml | TS26510_Maf_Provisioning_ContentHosting.yaml |
| TS26512_M1_ContentPreparationTemplatesProvisioning.yaml | TS26510_Maf_Provisioning_ContentPreparationTemplates.yaml |
| TS26512_M1_ContentProtocolsDiscovery.yaml | TS26510_Maf_Provisioning_ContentProtocols.yaml |
| TS26512_M1_EdgeResourcesProvisioning.yaml | TS26510_Maf_Provisioning_EdgeResources.yaml |
| TS26512_M1_EventDataProcessingProvisioning.yaml | TS26510_Maf_Provisioning_EventDataProcessing.yaml |
| TS26512_M1_MetricsReportingProvisioning.yaml | TS26510_Maf_Provisioning_MetricsReporting.yaml |
| TS26512_M1_PolicyTemplatesProvisioning.yaml | TS26510_Maf_Provisioning_PolicyTemplates.yaml |
| TS26512_M1_ProvisioningSessions.yaml | TS26510_Maf_Provisioning_ProvisioningSessions.yaml |
| TS26512_M1_ServerCertificatesProvisioning.yaml | TS26510_Maf_Provisioning_ServerCertificates.yaml |
| N/A | TS26510_Maf_Provisioning_ContentPublishing.yaml |
| N/A | TS26510_Maf_Provisioning_RealTimeCommunication.yaml |
| TS26512_M5_ConsumptionReporting.yaml | TS26510_Maf_SessionHandling_ConsumptionReporting.yaml |
| TS26512_M5_DynamicPolicies.yaml | TS26510_Maf_SessionHandling_DynamicPolicy.yaml |
| TS26512_M5_MetricsReporting.yaml | TS26510_Maf_SessionHandling_MetricsReporting.yaml |
| TS26512_M5_NetworkAssistance.yaml | TS26510_Maf_SessionHandling_NetworkAssistance.yaml |
| TS26512_M5_ServiceAccessInformation.yaml | TS26510_Maf_SessionHandling_ServiceAccessInformation.yaml |
| PreStd* | TS26512_Mas_Configuration_ContentHosting.yaml |
| PreStd* | TS26512_Mas_Configuration_ContentPreparationTemplates.yaml |
| PreStd* | TS26512_Mas_Configuration_ContentPublishing.yaml |
| PreStd* | TS26512_Mas_Configuration_ServerCertificates.yaml |
| N/A | TS26512_R2_DataReporting.yaml |
| TS26512_R4_DataReporting.yaml | TS26512_R4_DataReporting.yaml |
| N/A | TS26512_EventExposure.yaml |
Legend
TEXT = Already implemented in Reference Tools
TEXT = In the implementation roadmap in Reference Tools
PreStd* = Implementation of a pre-standardisation variant of the 5GMS AS configuration API at reference point M3d that is similar to what eventually appeared in Release 18. The service name is different and so are some details.
Note that not all aspects of these APIs are implemented. For example Content Preparation, Edge resources, Geo-fencing and URL signing in TS26512_M1_ContentHostingProvisioning.yaml are not implemented.
Developer Exchange
The 5G-MAG YouTube channel hosts some practical videos provided by developers on the use of the Reference Tools.
Videos from the developer community: general end-to-end setup, components and features
5G Media Streaming: Latest Additions - Developer Exchange
Advanced Media Delivery: CMCD Metrics in Action - Developer Exchange
Initial steps exposing APIs to AI systems through the MCP - Developer Exchange
Overview of the latest updates to the 5G Media Streaming Project - Developer Exchange
Introducing the new 5GMS Application Provider Portal - Developer Exchange
5G Media Streaming at IBC 2025
5G Media Streaming at FOKUS Media Web Symposium 2024
5G Media Streaming QoE Metrics Reporting - Developer Exchange
Introducing the 5GMS Application Provider Management Portal - Developer Exchange
5GMS Consumpion Reporting, Network Assistance and Dynamic Policies - Developer Exchange
5G Media Streaming supported by 5G-MAG Reference Tools - Developer Exchange
5G Media Streaming End-to-end setup with Android clients - Developer Exchange
5G Media Streaming in the BBC R&D standalone testbed - Developer Exchange