Code Monkey home page Code Monkey logo

othersrepo's Introduction

Development of Quality on Demand APIs

Get started

Prerequisites

Make sure Maven 3 or greater and JDK 17 are installed on your system.

How to run locally

Please ensure, that the prerequisites are fulfilled. To run a QoD API locally, you have to follow these steps:

  • Build
  • Create Database
  • Start QoD API

Build

Build the project by running mvn clean package

Create Redis-Database (optional)

The creation of a Redis-Database is only needed if you use another profile than 'local'. Otherwise, QoD API will use an in-memory H2-database.

If a profile is used different to 'local', the QoD API needs a Redis database to persist the session data. Therefore, you can use a local instance of Redis DB or start Redis from Docker container:

Start QoD API

For information about how to configure the QoD API, please refer to the next section "Configuration".

Start the qod-api service from terminal or from an IDE or with docker

  • from terminal:java --add-opens=java.base/java.net=ALL-UNNAMED -Dfile.encoding=UTF-8 -jar core\target\senf-core-<current version>.jar --spring.profiles.active=local
  • from an IDE: Application can also be started directly from an IDE like IntelliJ, Eclipse, etc. by passing VM options in the "Run Configuration":
    • --add-opens=java.base/java.net=ALL-UNNAMED
    • --spring.profiles.active=local
  • with docker:
    • docker build -t qod-api .
    • docker run -dp 9091:9091 -p 9092:9092 qod-api

With the 'local'-profile the application will automatically connect to an in-memory H2-database.

Configuration

The configuration can be adapted here: core/src/main/resources/application.yml

The below table lists the environment variables that are used to configure the application properly. This reference implementation for the QoD API makes use of the AsSessionWithQoS API (https://www.3gpp.org/ftp/Specs/latest/Rel-17) which is usually made available as a part of a NEF/SCEF system. All variables in the below table starting with "SCEF" can be understood as NEF/SCEF.

ENV Description
SERVER_PORT TCP/IP port listened on by application
MANAGEMENT_SERVER_PORT TCP/IP port listened on by application management facilities
SCEF_SERVER_APIROOT SCEF endpoint API root URL
SCEF_SERVER_SCSASID ID of SCS or AS providing SCEF endpoint
SCEF_SERVER_SUPPORTEDFEATURES A list of supported features used as described in subclause 5.8. (3GPP)
SCEF_AUTH_OAUTH_TOKEN OAuth authentication token for calling SCEF endpoint
SCEF_NOTIFICATIONS_URL URL for delivering (POST) notifications from SCEF, it should include the path /3gpp-as-session-with-qos/v1/notifications
QOD_QOS_REFERENCES QoS reference for predefined specific QoS parameter set
SPRING_REDIS_HOST Redis server host
SPRING_REDIS_PORT Port where the Redis server is listening
EXPIRATION_TIME-BEFORE-HANDLING How many seconds before expiration, should an ExpiredSessionTask be created
EXPIRATION_TRIGGER-INTERVAL How often should the ExpiredSessionMonitor check for (almost) expired sessions
EXPIRATION_LOCK-TIME How many seconds the session should be locked for the processing of the deletion task
MASK-SENSIBLE-DATA If set to true, sensible data is masked in response body
ALLOW-MULTIPLE-UEADDR If set to true, network segments are allowed for ueAddr

Validations

The QoD reference implementation has been qualified against the following network service vendors:

System Name Vendor Camara Testing Member Qualified
5G-NEF OpenLab Nokia DT Yes
5G-NEF Ericsson DT Yes

We actively ask other Camara members to validate this implementation against their available backend network services and share the results with the community.

Contribution

Contribution and feedback is always welcome. For information how to contribute, please refer to our Contribution Guideline

License

Copyright (c) 2022 Contributors | Deutsche Telekom AG to CAMARA a Series of LF Projects, LLC

All contributors / copyright owners license this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

othersrepo's People

Contributors

markuskuemmerle avatar shilpa-padgaonkar avatar paweltalar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.