Voice service in 5G
Article by Abhijeet Kumar
Voice Services in 5G:
1. Overview
5G introduces a complex but highly efficient framework for handling voice services, leveraging advancements in network technology to support seamless voice communications. The diagram represents the integration of various network elements including 5G New Radio (NR), VoNR, Enhanced Voice Services (EVS), and fallback mechanisms such as EPS (Evolved Packet System) fallback to ensure comprehensive coverage and service continuity.
5G Devices and Network Configurations
VoNR (Voice over New Radio)
EN-DC Network (E-UTRAN New Radio - Dual Connectivity)
EPS Fallback
In the transition to 5G, ensuring service continuity for all users is paramount, particularly when it comes to voice services. EPS Fallback (EPS-FB) is a critical mechanism in this process, providing a reliable bridge between existing 4G networks and new 5G infrastructures. Here’s an in-depth look at EPS Fallback, its importance, and how it functions within the broader network ecosystem.
What is EPS Fallback?
EPS (Evolved Packet System) Fallback is a technology that allows devices to switch to the 4G LTE network when voice services are not available through the 5G network. This ensures that users can still make and receive calls seamlessly, even if the 5G network does not support voice services or if the coverage is insufficient.
How EPS Fallback Works
The diagram shared illustrates the flow of voice and data services across different network technologies—4G LTE and 5G NR (New Radio), utilizing various network elements such as eNB (LTE base station), gNB (5G base station), 5G EPC (Evolved Packet Core), and 5GC (5G Core).
The Role of Network Interfaces and Elements
Benefits of EPS Fallback
领英推荐
As 5G technology reshapes the telecommunications landscape, understanding its core components and their functions becomes essential. The integration of gNB (5G NodeB), 5GC (5G Core), and IMS (IP Multimedia Subsystem) demonstrates how modern networks handle voice and data seamlessly. Here’s an in-depth look at this configuration and its significance in the 5G network.
1. Introduction to 5G Components
The 5G network architecture is designed to offer not just faster data speeds but also higher efficiency and reliability for both voice and data transmission. This is achieved through a sophisticated network structure comprising the gNB, 5GC, and IMS, each playing a pivotal role in ensuring optimal service delivery.
2. gNB (5G NodeB)
3. 5GC (5G Core)
4. IMS (IP Multimedia Subsystem)
5. Operational Flow: From Voice/Data to Service Delivery
The interaction between these components can be visualized as follows:
Call Flow VONR.
User->>5G Device: Initiate Call
5G Device->>gNB: Send INVITE
gNB->>5GC: Forward INVITE
5GC->>IMS: INVITE
IMS-->>5GC: 183 Session Progress
5GC-->>gNB: 183 Session Progress
gNB-->>5G Device: 183 Session Progress
5G Device-->>User: Ringing
User->>5G Device: Answer Call
5G Device->>gNB: 200 OK
gNB->>5GC: 200 OK
5GC->>IMS: 200 OK
IMS-->>5GC: ACK
5GC-->>gNB: ACK
gNB-->>5G Device: ACK
5G Device-->>User: Call Connected
5G Device->>gNB: QoS Flow Setup
gNB->>5GC: QoS Flow Setup
5GC->>IMS: QoS Flow Setup
IMS-->>5GC: QoS Flow Modification
5GC-->>gNB: QoS Flow Modification
gNB-->>5G Device: QoS Flow Modification
5G Device-->>User: Voice Media Exchange
User->>5G Device: Terminate Call
5G Device->>gNB: Send BYE
gNB->>5GC: Forward BYE
5GC->>IMS: BYE
IMS-->>5GC: 200 OK
5GC-->>gNB: 200 OK
gNB-->>5G Device: 200 OK
5G Device-->>User: Call Terminated
#include <iostream>
#include <string>
// Enum to represent the current state of the VoNR call
enum class VoNRState {
IDLE,
INITIATED,
RINGING,
CONNECTED,
DISCONNECTED
};
// Function to simulate sending an INVITE message
void sendInvite() {
std::cout << "Sending INVITE message to the network.\n";
}
// Function to simulate receiving a response
void receiveResponse(const std::string& response) {
std::cout << "Received " << response << " response from the network.\n";
}
// Function to simulate setting up QoS flow
void setupQoSFlow() {
std::cout << "Setting up 5GS QoS flow.\n";
}
// Function to modify QoS flow
void modifyQoSFlow() {
std::cout << "Modifying 5GS QoS flow.\n";
}
// Main function to handle the VoNR call flow logic
int main() {
VoNRState callState = VoNRState::IDLE;
// Simulate user initiating a call
std::cout << "User initiates the call.\n";
sendInvite();
setupQoSFlow();
callState = VoNRState::INITIATED;
// Simulate network responses
receiveResponse("180 Ringing");
callState = VoNRState::RINGING;
receiveResponse("183 Session Progress");
modifyQoSFlow();
receiveResponse("200 OK");
std::cout << "User answers the call.\n";
modifyQoSFlow();
callState = VoNRState::CONNECTED;
// Simulate voice media exchange
std::cout << "Voice media exchange starts.\n";
// Simulate call termination
std::cout << "Call terminated by user.\n";
callState = VoNRState::DISCONNECTED;
return 0;
}
C++ Code to perform a VONR Testing, output of the Code
Thank you and Follow me at Abhijeet Kumar
Telecom certification of wireless communications
8 个月Very informative ??
Czech Institute of Informatics, Robotics and Cybernetics of the Czech Technical University.
8 个月Unfortunately, the support on the terminal side for VoNR is still very limited