Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/development'
Browse files Browse the repository at this point in the history
  • Loading branch information
davidjwbbc committed Jan 25, 2024
2 parents 7cbc6fb + 9d415e7 commit 0f4e81b
Show file tree
Hide file tree
Showing 106 changed files with 13,668 additions and 1,593 deletions.
33 changes: 33 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Build Application Function

on:
push:
branches: [ development ]
schedule:
- cron: '0 0 * * 0' # Executes every Sunday at midnight UT
jobs:
ubuntu-build:
runs-on: ubuntu-latest
steps:
- name: Checkout project
uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v5
with:
check-latest: true
- name: Install dependencies
run: |
sudo apt update
sudo apt install ninja-build build-essential flex bison git libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev libtalloc-dev meson curl wget default-jdk
python -m pip install build
- name: Build
run: |
meson build
ninja -C build
- name: Install
working-directory: build
run : sudo meson install --no-rebuild
- name: Run
run: /usr/local/bin/open5gs-msafd -h
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ A list of currently supported features is available [here](https://github.com/5G
## Install dependencies

```bash
sudo apt install git python3-pip python3-venv python3-setuptools python3-wheel ninja-build build-essential flex bison git libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev libtalloc-dev meson curl wget default-jdk
python3 -m pip install build
sudo apt install git python3-pip python3-venv python3-setuptools python3-wheel ninja-build build-essential flex bison git libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev libtalloc-dev meson curl wget default-jdk cmake
python3 -m pip install build pyOpenSSL
```

## Downloading
Expand Down Expand Up @@ -96,3 +96,7 @@ This project follows
the [Gitflow workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow). The
`development` branch of this project serves as an integration branch for new features. Consequently, please make sure to
switch to the `development` branch before starting the implementation of a new feature.

## Support

The reference implementation of the Network Assistance and Dynamic Policies features was funded by the UK Government through the [REASON](https://reason-open-networks.ac.uk/) project.
6 changes: 6 additions & 0 deletions examples/ConsumptionReportingConfiguration.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"reportingInterval": 10,
"locationReporting": false,
"accessReporting": false,
"samplePercentage": 90
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "AMP Demo Stream: Big Buck Bunny",
"name": "AMP Demo Stream: Elephant's Dream",
"ingestConfiguration": {
"pull": true,
"protocol": "urn:3gpp:5gms:content-protocol:http-pull-ingest",
"baseURL": "http://amssamples.streaming.mediaservices.windows.net/622b189f-ec39-43f2-93a2-201ac4e31ce1/BigBuckBunny.ism/"
"baseURL": "http://amssamples.streaming.mediaservices.windows.net/b6822ec8-5c2b-4ae0-a851-fd46a78294e9/ElephantsDream.ism/"
},
"distributionConfigurations": [
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "AMP Demo Stream: Big Buck Bunny",
"name": "AMP Demo Stream: Elephant's Dream",
"ingestConfiguration": {
"pull": true,
"protocol": "urn:3gpp:5gms:content-protocol:http-pull-ingest",
"baseURL": "http://amssamples.streaming.mediaservices.windows.net/622b189f-ec39-43f2-93a2-201ac4e31ce1/BigBuckBunny.ism/"
"baseURL": "http://amssamples.streaming.mediaservices.windows.net/b6822ec8-5c2b-4ae0-a851-fd46a78294e9/ElephantsDream.ism/"
},
"distributionConfigurations": [
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "AMP Demo Stream: Big Buck Bunny",
"name": "AMP Demo Stream: Elephant's Dream",
"ingestConfiguration": {
"pull": true,
"protocol": "urn:3gpp:5gms:content-protocol:http-pull-ingest",
"baseURL": "http://amssamples.streaming.mediaservices.windows.net/622b189f-ec39-43f2-93a2-201ac4e31ce1/BigBuckBunny.ism/"
"baseURL": "http://amssamples.streaming.mediaservices.windows.net/b6822ec8-5c2b-4ae0-a851-fd46a78294e9/ElephantsDream.ism/"
},
"distributionConfigurations": [
{
Expand Down
22 changes: 22 additions & 0 deletions examples/PolicyTemplate-1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"externalReference": "policy-external-ref-1",
"applicationSessionContext": {
"sliceInfo": {
"sst": 1,
"sd": "000001"
},
"dnn": "internet"
},
"qoSSpecification": {
"qosReference": "qos-1",
"maxAuthBtrUl": "200 Kbps",
"maxAuthBtrDl": "20 Mbps",
"defPacketLossRateDl": 0,
"defPacketLossRateUl": 0
},
"chargingSpecification": {
"sponId": "sponsor-id-1",
"sponStatus": "SPONSOR_ENABLED",
"gpsi": ["msisdn-441234567890"]
}
}
22 changes: 22 additions & 0 deletions examples/PolicyTemplate-1b.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"externalReference": "policy-external-ref-1",
"applicationSessionContext": {
"sliceInfo": {
"sst": 1,
"sd": "000001"
},
"dnn": "internet"
},
"qoSSpecification": {
"qosReference": "qos-1",
"maxAuthBtrUl": "400 Kbps",
"maxAuthBtrDl": "40 Mbps",
"defPacketLossRateDl": 10,
"defPacketLossRateUl": 20
},
"chargingSpecification": {
"sponId": "sponsor-id-2",
"sponStatus": "SPONSOR_ENABLED",
"gpsi": ["msisdn-447000123456"]
}
}
22 changes: 22 additions & 0 deletions examples/PolicyTemplate-2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"externalReference": "policy-external-ref-2",
"applicationSessionContext": {
"sliceInfo": {
"sst": 1,
"sd": "000001"
},
"dnn": "internet"
},
"qoSSpecification": {
"qosReference": "qos-2",
"maxAuthBtrUl": "300 Kbps",
"maxAuthBtrDl": "30 Mbps",
"defPacketLossRateDl": 5,
"defPacketLossRateUl": 10
},
"chargingSpecification": {
"sponId": "sponsor-id-3",
"sponStatus": "SPONSOR_ENABLED",
"gpsi": ["msisdn-447000654321"]
}
}
26 changes: 17 additions & 9 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,46 @@

This directory contains examples of configurations for the 5GMS Application Function.

## `ContentHostingConfiguration_Big-Buck-Bunny_pull-ingest.json`
## `ContentHostingConfiguration_Elephants-Dream_pull-ingest.json`

This file is used as a content hosting configuration for the rt-5gms-application-function.

It contains a ContentHostingConfiguration, based on 3GPP TS 26.512 Release 17.4.0, which points to a media origin host, suitable for use with pull-ingest, which holds the Big Buck Bunny short animated film in both HLS and DASH media streaming formats.
It contains a ContentHostingConfiguration, based on 3GPP TS 26.512 Release 17.4.0, which points to a media origin host, suitable for use with pull-ingest, which holds the Elephant's Dream short animated film in both HLS and DASH media streaming formats.

The distribution side of the configurations tells the rt-5gms-application-function to configure a 5GMS Application Server to reverse proxy the media on its localhost (127.0.0.1) loopback interface. The distribution configuration object is left empty as this is a simple distribution where all fields are generated by the 5GMS Application Function. Note that there needs to be at least one entry in `distributionConfigurations`, even if it is an empty object.

## `ContentHostingConfiguration_Big-Buck-Bunny_pull-ingest_http_and_https.json.tmpl`
## `ContentHostingConfiguration_Elephants-Dream_pull-ingest_http_and_https.json.tmpl`

This template file is an alternative to `ContentHostingConfiguration_Big-Buck-Bunny_pull-ingest.json` (see above) and can be used to configure a rt-5gms-application-function to provision a 5GMS Application Server which will provide both HTTP and HTTPS distribution points. Before the contents of this file can be used as a configuration `@certificate-id@` must be substituted for a valid certificate id for the provisioning session you wish to add the configuration to.
This template file is an alternative to `ContentHostingConfiguration_Elephants-Dream_pull-ingest.json` (see above) and can be used to configure a rt-5gms-application-function to provision a 5GMS Application Server which will provide both HTTP and HTTPS distribution points. Before the contents of this file can be used as a configuration `@certificate-id@` must be substituted for a valid certificate id for the provisioning session you wish to add the configuration to.

## `ContentHostingConfiguration_Big-Buck-Bunny_pull-ingest_https.json.tmpl`
## `ContentHostingConfiguration_Elephants-Dream_pull-ingest_https.json.tmpl`

This template file is an alternative to `ContentHostingConfiguration_Big-Buck-Bunny_pull-ingest.json` (see above) and can be used to configure a rt-5gms-application-function to provision a 5GMS Application Server which will provide an HTTPS distribution point only. Before the contents of this file can be used as a configuration `@certificate-id@` must be substituted for a valid certificate id for the provisioning session you wish to add the configuration to.
This template file is an alternative to `ContentHostingConfiguration_Elephants-Dream_pull-ingest.json` (see above) and can be used to configure a rt-5gms-application-function to provision a 5GMS Application Server which will provide an HTTPS distribution point only. Before the contents of this file can be used as a configuration `@certificate-id@` must be substituted for a valid certificate id for the provisioning session you wish to add the configuration to.

## `ContentHostingConfiguration_Llama-Drama_pull-ingest.json`

This is the same as `ContentHostingConfiguration_Big-Buck-Bunny_pull-ingest.json` except that the media is Llama Drama instead of Big Buck Bunny.
This is the same as `ContentHostingConfiguration_Elephants-Dream_pull-ingest.json` except that the media is Llama Drama instead of Elephant's Dream.

## `ContentHostingConfiguration_Llama-Drama_pull-ingest_http_and_https.json.tmpl`

This is the same as `ContentHostingConfiguration_Big-Buck-Bunny_pull-ingest_http_and_https.json.tmpl` except that the media is Llama Drama instead of Big Buck Bunny.
This is the same as `ContentHostingConfiguration_Elephants-Dream_pull-ingest_http_and_https.json.tmpl` except that the media is Llama Drama instead of Elephant's Dream.

## `ContentHostingConfiguration_Llama-Drama_pull-ingest_https.json.tmpl`

This is the same as `ContentHostingConfiguration_Big-Buck-Bunny_pull-ingest_https.json.tmpl` except that the media is Llama Drama instead of Big Buck Bunny.
This is the same as `ContentHostingConfiguration_Elephants-Dream_pull-ingest_https.json.tmpl` except that the media is Llama Drama instead of Elephant's Dream.

## `ContentHostingConfiguration_AMP-Samples_pull-ingest.json`

This file is a ContentHostingConfiguration for a whole VoD streaming service. The ingest URL points to a top level prefix for all streamed assets and there are no `entryPoint`s defined in the `distributionConfigurations`. This configuration can be used where the media entry points are transferred to the 5GMS Aware Application on the User Equipment via the proprietary interface at reference point M8. It is then up to the 5GMS Aware Application to select a piece of media and, via the interface at reference point M7d, tell the Media Stream Handler to play back the media.

Some example relative media paths that can be used with this configuration are:
- Elephant's Dream [DASH]: `b6822ec8-5c2b-4ae0-a851-fd46a78294e9/ElephantsDream.ism/manifest(format=mpd-time-csf)`
- Elephant's Dream [HLS]: `b6822ec8-5c2b-4ae0-a851-fd46a78294e9/ElephantsDream.ism/manifest(format=m3u8-aapl-v3)`
- Llama Drama[DASH]: `634cd01c-6822-4630-8444-8dd6279f94c6/CaminandesLlamaDrama4K.ism/manifest(format=mpd-time-csf)`
- Llama Drama[HLS]: `634cd01c-6822-4630-8444-8dd6279f94c6/CaminandesLlamaDrama4K.ism/manifest(format=m3u8-aapl-v3)`
- Tears of Steel [DASH]: `bc57e088-27ec-44e0-ac20-a85ccbcd50da/TearsOfSteel.ism/manifest(format=mpd-time-csf)`
- Tears of Steel [HLS]: `bc57e088-27ec-44e0-ac20-a85ccbcd50da/TearsOfSteel.ism/manifest(format=m3u8-aapl-v3)`

This configuration will configure a single HTTP distribution point for the media.

## `ContentHostingConfiguration_AMP-Samples_pull-ingest_http_and_https.json.tmpl`
Expand Down
Loading

0 comments on commit 0f4e81b

Please sign in to comment.