5G-MAG / rt-5gms-application-function

5G Media Streaming - Application Function
https://www.5g-mag.com/streaming
Other
11 stars 6 forks source link

Configuration of Streams - Adding a concrete example #109

Open dsilhavy opened 6 months ago

dsilhavy commented 6 months ago

Feature description

In Configuration of media streams to synchronise with the Application Function we provide an explanation of the structure for a JSON file which contains the information required to configure the Provisioning Sessions and Content Hosting Configurations on the 5GMSd Application Function.

I suggest we add an example with concrete values in addition to the one with "dummy" values for users to simply copy/paste. Filling out the required parameters is not straightforward for inexperienced users.

We can use a sample based on the one we have on our Linode instance:

{
    "aspId": "5GMAG",
    "appId": "5G-MAG_Reference_Tools",
    "streams": {
    "vod": {
        "name": "BBC R&D Demo Streams",
        "ingestURL": "https://rdmedia.bbc.co.uk/",
        "distributionConfigurations": [
                {"domainNameAlias": <<ENTER YOUR FQDN HERE>>}
        ],
        "consumptionReporting": {
                "reportingInterval": 10,
                "samplePercentage": 100.00,
                "locationReporting": true,
                "accessReporting": true
            },
            "policies": {
                "policy-external-id-1": {
                    "applicationSessionContext": {
                        "sliceInfo": {"sst": 1, "sd": "000001"},
                        "dnn": "internet"
                    },
                    "qoSSpecification": {
                        "qosReference": "qos-ref-1",
                        "maxAuthBtrUl": "2 Mbps",
                        "maxAuthBtrDl": "1 Gbps",
                        "defPacketLossRateDl": 10,
                        "defPacketLossRateUl": 5
                    },
                    "chargingSpecification": {
                        "sponId": "sponsor-id-1",
                        "sponsorEnabled": true,
                        "gpsi": ["msisdn-447000123456"]
                    }
                }
            }
    }
    },
    "vodMedia": [
    {
        "name": "VoD: Elephant's Dream",
        "stream": "vod",
        "entryPoints": [
        {
                    "relativePath": "elephants_dream/1/client_manifest-all.mpd",
                    "contentType": "application/dash+xml",
                    "profiles": ["urn:mpeg:dash:profile:isoff-live:2011"]
                }
        ]
    },
    {
        "name": "VoD: Big Buck Bunny",
        "stream": "vod",
            "entryPoints": [
                {
                    "relativePath": "bbb/2/client_manifest-common_init.mpd",
                    "contentType": "application/dash+xml",
                    "profiles": ["urn:mpeg:dash:profile:isoff-live:2011"]
                }
            ]
    },
    {
        "name": "VoD: Testcard",
        "stream": "vod",
            "entryPoints": [
                {
                    "relativePath": "testcard/vod/manifests/avc-full.mpd",
                    "contentType": "application/dash+xml",
                    "profiles": ["urn:mpeg:dash:profile:isoff-live:2011"]
                },
        {
                    "relativePath": "testcard/vod/manifests/avc-full.m3u8",
                    "contentType": "application/x-mpegURL"
                }
        ]
    }
    ]
}
davidjwbbc commented 6 months ago

Added the "policies" block as an example with all the values filled in. Note, however, that most of the values are optional except for the external policy id key name and the "applicationSessionContext" object. Although the latter can be an empty object without "sliceInfo" or "dnn" entries. (applicationSessionContext is now optional in TS 26.512 v17.7.0)