Collaboration is one of ng-voice’s core values and part of our DNA. Our company strongly believes in the power of open-source to foment innovation – and therefore we keep actively contributing to the open-source community. And one way in which we do it is by sponsoring key projects, such as the Open5GS project.


The Open5GS is an open-source project that focuses on the implementation of a 5G mobile core network, implementing 5GC and EPC using C-language. Its main goal is to implement the 5G Core network which was defined by 3GPP (Release 16) and support it by enabling 5G Core network functions (SMF, UPF, PCF, NRF, BSF, UDM, UDR, AMF) and Evolved Packet Core network functions (HSS, PCRF, etc.). 


As we are beneficiaries of various open-source projects, supporting such projects is a no-brainer for us. Open-Source enables us to quickly implement new technologies and new features into our product, so after following the Open5GS project and the people behind it for a long period, it was clear, that we should support it” said our CTO & Founder, Carsten Bock, who is a member of the Kamailio (OpenSER) management team and has also contributed to various other projects in open-source communications, such as OpenSIPS and FreeSwitch.


In this blog post, we are discussing the Open5GS project, its implementation of 5GC and EPC (that is the core network of VoNR & VoLTE network). We are also going to take a look at how it supports mix and match, and how we actively use Open5GS in our testing Lab environment for IMS system tests.

Open5GS For Voice over New Radio (VoNR)

Voice over New Radio (VoNR) is entirely an IP Multimedia System (IMS) based voice calling services over 5G access and 5G Core Network. To deliver the Voice/Video services over 5G NR, a fully 3GPP compliant 5G Standalone Core Network is essential. In this regard, Open5Gs 5GC provides the crucial components that enable VoNR, which are the following:



Session Management Function (SMF):


The Open5Gs SMF keeps trace of PDU sessions and QoS Flows in the 5GC for UEs and makes sure their states and status are in sync with Network Functions in Control and User Planes. It also receives PCC (Policy and Charging Control) Rules from PCF (Policy Charging Function) and converts PCC Rules into SDF Templates, QoS Profiles, and QoS Rules for UPF, gNB, and UE respectively for QoS Flows establishment, modification, and release.


User Plane Function(UPF):


The Open5GS UPF plays the most critical role in the process of data transfer. It provides the interconnect point between the mobile infrastructure and the Application Function (AF) such as IMS, i.e. encapsulation and decapsulation of GTP-U.


Policy Control Function(PCF):


The Open5GS PCF performs the same function as the PCRF in 4G networks by providing policy rules for control plane functions. This includes network slicing, roaming, and mobility management. Accesses subscription information for policy decisions taken by the UDR. It also supports the new 5G QoS policy, charging control functions and extends SBI interfaces towards the P-CSCF.


Network Repository Function(NRF):


The Open5GS NRF supports the service discovery feature, which receives NF discovery requests from NF instances and provides information about the discovered NF instance (discovered) to another NF instance. The registration information also includes NF type, address, service list, and many others.


Binding Support Function (BSF):


The Open5GS BSF also offers services to PCFs to register and deregister information about data sessions, and services to other applications to query the BSF which PCF that serves a specific data session


Unified data management (UDM) and User data repository (UDR):


The Open5GS UDM is a key node in authenticating and authorizing user access to the network and roaming access using subscription data fetched from open5gs UDR, and in providing smooth and seamless session continuity


Access and Mobility Management Function(AMF):


The Open5GS AMF terminates the control plane of different access networks onto the 5G Core Network (5GC) and control which UEs can access the 5GC to exchange traffic with DNS. It also manages the mobility of UEs when they roam from one gNB to another for session continuity, whenever possible.


Using Open5GS to support for Mix and Match

Open5GS can support both testing and live environments depending on the scale of your deployment. It comes with a ready-to-use Docker setup which takes a 4G/5G core into the cloud with very little effort. This way it allows mix and match of 4G/5G components with Open5GS components and brings new players to the market who would usually have to mock or buy other vendors’ core components in order to harden their own implementations. 


On the other hand, Open5GS provides an overview of Diameter and N-interface call flows in core networks, which usually require a deep understanding of the 3GPP specifications. In fact in conjunction with projects like srsRAN today it is already possible to deploy a complete own and OpenSource-based private core network, giving you the freedom to install it on your hardware stack of choice. Open5GS is not just another proof of concept, it is used in private deployments worldwide already as a mobile packet core application. Especially in Cloud environments, an Amazon research project shows that it can be used as an Amazon Elastic Kubernetes Service


Ng-voice - Adapted overview of Open5GS (Source: Open5GS)

Using Open5GS in our testing Lab at ng-voice

In addition to integrating with commercial EPC solutions, we also further test with open-source solutions such as Open5GS. At ng-voice, our developers use Open5GS in their test environments for system testing with any UE. Using Open5GS under these circumstances provides us with several advantages. The rich suite of Open5GS components, on the one hand, gives developers the full power of an automatically deployed test setup, on the other, they can choose between 4G and 5G components, depending on the scope of the implementation. Ultimately, Open5GS is not only bound to one machine by license, so multiple differently configured test environments can be deployed in parallel, which cuts both development and testing time dramatically.


We at ng-voice offer a VoLTE/VoNR solution that is truly cloud-native and fully containerized. ng-voice’s cloud-native IMS core is the first 100% containerized and Kubernetes-based fully-fledged IMS solution on the market, allowing deployment on bare metal (private), public, and hybrid cloud environments. Following the best practices in CI/CD and bringing a DevOps approach to telecommunications software, ng-voice’s IMS core has a high level of automation across the whole development, deployment, and operation processes. With a minimal resource footprint, it reduces voice production costs and optimizes the entire life-cycle management of the application.


Made-in-Germany, ng-voice’s solutions adhere to the highest security and data protection standards. To learn more about our solutions, please contact our team at


Share this article via:

Share on facebook
Share on linkedin
Share on twitter
Supreeth Herle

Software Engineer

Publisher Bio

With over a decade of experience as a Wireless System Engineer at Nokia Networks, Safran and others, Supreeth’s expertise includes integrating EPC and eNodeB with IMS, building 5G infrastructure for the Aerospace use case. Now at ng-voice, he uses his knowledge to ensure our cloud-native IMS core is tailored to the needs of the enterprise market.

Lukas Stermann

Software Engineer

Publisher Bio

A software engineer with expertise in object-oriented programming and application development. In 2017, Lukas brought his knowledge in software architecture to ng-voice and has the challenge to enrich and develop new features for ng-voice’s fully containerized and cloud-native IMS core as well as implementing RCS, the next-generation mobile messaging.

Related Posts

Join our mailing list

The data sent will only be processed for the purpose of dealing with your request. You can find further information in our privacy policy.