This full-stack web application represents Application Provider of 3GPP compliant 5G Media Streaming architecure, and is part of 5GMAG's Reference Tools. It interacts with the RT Application Function via interface with reference point M1, with the possibility to establish connection over unstandardized M8.
It utilizes a Python library to interact with the RT Application Function. Every provisioning procedure is implemented as a related web-server's endpoint, supported with a graphical control dashboard.
There are two ways to run this project, and the warm reccomendation is to use Docker Compose service, because lightweight container building and activation will solve entire scope of dependecies and the rest of requirements.
To install this service follow the official documentation. Next, clone this repository:
cd
git clone https://github.com/5G-MAG/rt-5gms-application-provider
cd ~/rt-5gms-application-provider
Building Docker image will effectivelly install all dependecies for RT Application Function and the rest of Python dependencies:
sudo docker-compose build
Upon successful completion, activate RT Application Provider with:
sudo docker-compose up
Open the module at: localhost:8000
If you prefere to run RT Application Function and Provisioning Web server separately, without setting up the Docker environment, you have to build and install RT Application Function as a local user. Please follow this documentation.
Once installed and built, activate RT Application Function:
~/rt-5gms-application-function/install/bin/open5gs-msafd
Subsequently, install Python dependencies in order to run web-based GUI server:
cd ~/rt-5gms-application-provider
python3 -m pip install ./python
pip3 install -r requirements.txt
Activate GUI with the following command:
cd management-ui/
uvicorn server:app --reload
Web application will be accessible at the port 8000
, and it requires active communication with the RT Application Function running as a separate process.
Python Web Server implements classes and methods from python
library. If you prefere to control RT Application Function operations using Command Line Interface, independently of the web-based GUI, run the following command on the python
subdirectory:
cd rt-5gms-application-provider
python3 -m pip install ./python
This will install the executables i.e. m1-session
, m1-client
and msaf-configuration
and associated rt_m1_client
python module.
For testing use a venv so that you don't change system python modules, e.g.:
cd rt-5gms-application-provider
python3 -m venv venv
venv/bin/python3 -m pip install ./python
This repository contains CI/CD workflows for building native Docker image, Docker Compose and integration test. Automated integration test is written to provide entire provisioning cycle starting with creation of provisioning session, activating realted procedures, and finalizing with deletion of resources.
Run automated test:
cd ~/rt-5gms-application-provider/management-ui/tests
pytest integration_test.py
Please be aware that this procedure is already provided with the repository's CI/CD pipeline.
This project is developed under 5GMAG's Public License and in accordance with BBC and Fraunhofer Fokus legal norms & regulations. For the full license terms, please see the LICENSE file distributed along with the repository or retrieve it from here.