Skip to main content
5G Media Streaming (5GMS)

Tutorials, Tests and Examples

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).

5GMS Content Hosting feature: the Application Server acting as a CDN, ingesting and delivering media objects

The following are the reference points and APIs.

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 ingest protocol and the source baseURL.
  • distributionConfigurations: How the content is exposed to clients, including the entryPoint (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
View on GitHub

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).

Implementation status

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.

5GMS Network Assistance: the 5GMS Client requesting bit rate recommendations and delivery boosts from the network

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.

5GMS Dynamic Policies feature: the 5GMS Client selecting network traffic handling policies for a session

The following are the reference points and APIs.

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.

View on GitHub

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.

5GMS Consumption Reporting feature: downlink consumption logged by the 5GMS System and exposed for analysis

The following are the reference points and APIs.

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.
View on GitHub

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.

5GMS QoE Metrics Reporting feature: streaming performance data logged and exposed via RAN-based and AF-based paths

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.

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
View on GitHub

Examples are available in the examples-files directory of rt-5gms-examples

Data Collection, Reporting and Exposure

Not yet implemented in 5GMS

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.

note

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 pointSpecifications & VersionsProtocolsFeatures
M1 (server)
  • TS 26.501 v17.6.0
  • TS 26.512 v17.6.0
  • ☑ HTTP/1.1
  • ☐ HTTP/2.0
  • ☑ HTTP/1.1 over SSL/TLS
  • ☐ HTTP/2.0 over SSL/TLS
  • ☑ Content Hosting Provisioning
  • ☑ Content Protocols Discovery
  • ☑ Provisioning Sessions
  • ☑ Server Certificates Provisioning
  • ☑ Consumption Reporting Provisioning
  • ☐ Content Preparation Templates Provisioning
  • ☐ Edge Resources Provisioning
  • ☐ Event Data Processing Provisioning
  • ☑ Metrics Reporting Provisioning
  • ☑ Policy Templates Provisioning
M3 (client)
  • 5G-MAG prototype
  • ☑ HTTP/1.1
  • ☑ HTTP/2.0
  • ☑ HTTP/1.1 over SSL/TLS
  • ☑ HTTP/2.0 over SSL/TLS
  • ☑ Content Hosting Provisioning
  • ☑ Server Certificates Provisioning
M5 (server)
  • TS 26.501 v17.6.0
  • TS 26.512 v17.6.0
  • ☑ HTTP/1.1
  • ☐ HTTP/2.0
  • ☑ HTTP/1.1 over SSL/TLS
  • ☐ HTTP/2.0 over SSL/TLS
  • ☑ Service Access Information
  • ☑ Consumption Reporting
  • ☑ Dynamic Policies
      Service Data Flow Description Methods:
    • ☐ 2 Tuple
    • ☑ 5 Tuple
    • ☐ ToS
    • ☐ Flow Label
    • ☐ Domain Name
  • ☑ Metrics Reporting
  • ☑ Network Assistance
    • ☐ Throughput Estimation
    • ☑ Delivery Boost
N5 (Npcf client/server)
  • ☑ HTTP/2.0
  • ☑ HTTP/2.0 over SSL/TLS
  • ☑ Policy Authorization
  • ☑ Policy Authorization Notifications
N33 (client)
  • ☐ HTTP/2.0
  • ☐ HTTP/2.0 over SSL/TLS
  • ☐ Event Exposure
R4 (server)
  • TS 26.512 v17.6.0
  • ☐ HTTP/1.1
  • ☐ HTTP/2.0
  • ☐ HTTP/1.1 over SSL/TLS
  • ☐ HTTP/2.0 over SSL/TLS
  • ☐ Media Streaming Access
R5/R6 (client/server)
  • ☐ HTTP/1.1
  • ☐ HTTP/2.0
  • ☐ HTTP/1.1 over SSL/TLS
  • ☐ HTTP/2.0 over SSL/TLS
  • ☐ Media Streaming QoE Event
  • ☐ Media Streaming Consumption Event
  • ☐ Media Streaming Network Assistance Invocation Event
  • ☐ Media Streaming Dynamic Policy Invocation Event
  • ☐ Media Streaming Access Event
  • ☐ Event Subscription
Nbsf (client)
  • ☑ HTTP/2.0
  • ☑ HTTP/2.0 over SSL/TLS
  • ☑ Binding Information Retrieval

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:

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 17Release 18
TS26512_CommonData.yamlTS26510_CommonData.yaml, TS26512_CommonData.yaml
TS26512_M1_ConsumptionReportingProvisioning.yamlTS26510_Maf_Provisioning_ConsumptionReporting.yaml
TS26512_M1_ContentHostingProvisioning.yamlTS26510_Maf_Provisioning_ContentHosting.yaml
TS26512_M1_ContentPreparationTemplatesProvisioning.yamlTS26510_Maf_Provisioning_ContentPreparationTemplates.yaml
TS26512_M1_ContentProtocolsDiscovery.yamlTS26510_Maf_Provisioning_ContentProtocols.yaml
TS26512_M1_EdgeResourcesProvisioning.yamlTS26510_Maf_Provisioning_EdgeResources.yaml
TS26512_M1_EventDataProcessingProvisioning.yamlTS26510_Maf_Provisioning_EventDataProcessing.yaml
TS26512_M1_MetricsReportingProvisioning.yamlTS26510_Maf_Provisioning_MetricsReporting.yaml
TS26512_M1_PolicyTemplatesProvisioning.yamlTS26510_Maf_Provisioning_PolicyTemplates.yaml
TS26512_M1_ProvisioningSessions.yamlTS26510_Maf_Provisioning_ProvisioningSessions.yaml
TS26512_M1_ServerCertificatesProvisioning.yamlTS26510_Maf_Provisioning_ServerCertificates.yaml
N/ATS26510_Maf_Provisioning_ContentPublishing.yaml
N/ATS26510_Maf_Provisioning_RealTimeCommunication.yaml
TS26512_M5_ConsumptionReporting.yamlTS26510_Maf_SessionHandling_ConsumptionReporting.yaml
TS26512_M5_DynamicPolicies.yamlTS26510_Maf_SessionHandling_DynamicPolicy.yaml
TS26512_M5_MetricsReporting.yamlTS26510_Maf_SessionHandling_MetricsReporting.yaml
TS26512_M5_NetworkAssistance.yamlTS26510_Maf_SessionHandling_NetworkAssistance.yaml
TS26512_M5_ServiceAccessInformation.yamlTS26510_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/ATS26512_R2_DataReporting.yaml
TS26512_R4_DataReporting.yamlTS26512_R4_DataReporting.yaml
N/ATS26512_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

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.

In Action

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

In Action

5G Media Streaming: Latest Additions - Developer Exchange

Daniel Silhavy (Fraunhofer FOKUS)

In Action

Advanced Media Delivery: CMCD Metrics in Action - Developer Exchange

Shilin Ding (Qualcomm)

In Action

Initial steps exposing APIs to AI systems through the MCP - Developer Exchange

Aarón Montilla (iTEAM-UPV)

In Action

Overview of the latest updates to the 5G Media Streaming Project - Developer Exchange

Daniel Silhavy (Fraunhofer FOKUS)

In Action

Introducing the new 5GMS Application Provider Portal - Developer Exchange

Erik Gaida (Fraunhofer FOKUS)

In Action

5G Media Streaming at IBC 2025

In Action

5G Media Streaming at FOKUS Media Web Symposium 2024

In Action

5G Media Streaming QoE Metrics Reporting - Developer Exchange

Daniel Silhavy (Fraunhofer FOKUS)

In Action

Introducing the 5GMS Application Provider Management Portal - Developer Exchange

Vuk Stojkovic (Fraunhofer FOKUS)

In Action

5GMS Consumpion Reporting, Network Assistance and Dynamic Policies - Developer Exchange

David Waring (BBC R&D) and Daniel Silhavy (Fraunhofer FOKUS)

In Action

5G Media Streaming supported by 5G-MAG Reference Tools - Developer Exchange

In Action

5G Media Streaming End-to-end setup with Android clients - Developer Exchange

Daniel Silhavy (Fraunhofer FOKUS)

In Action

5G Media Streaming in the BBC R&D standalone testbed - Developer Exchange

Richard Bradbury, David Waring, Dev Audsin and John Elliott (BBC)

Browse all 5G-MAG videos →