Amarisoft

ePDG : VoWiFi (Voice over WiFi)

 

This tutorial is to show how to setup, configure and operate VoWiFi (Voice over WiFi) with Amarisoft Callbox. What is VoWiFi ?  Simply put, it is IMS Voice Call through WiFi without using cellular network like LTE or NR.  Putting it other way, in terms of high level functionality is similar to VoLTE (Voice over LTE) or VoNR (Voice or NR), the only difference is the type of communication channel being used for the IMS voice call. As name implies, WiFi channel (instead of LTE or NR) is used for VoWiFi.

Why it requires any special equipment to test ? Everybody would have at least one WiFi AP(Access Point) at home. Can I just use it for the test ?  NO, the situation is not so simple. IMS based Voice Call service provided by Carriers (Network Operators) require very sophiticated security mechanism which is almost same level as the security mechanism in cellular network. To provide this security mechanism over WiFi network, the call should go through a special gateway called ePDG (evolved Packet Gateway). This is why you need special solution for VoWiFi testing. In orther words, you need a special test setup that support ePDG. Amarisoft Callbox has built in ePDG as part of MME(Core Network Package).

The overall procedure for VoWIFI can be illustrated as follows. IMS/SIP procedure happening at the last step is same as regular IMS/SIP voice call. The main difference between VoWiFi and regular IMS/SIP voice call (e.g, VoLTE or VoNR) is the procedure happening before the IMS/SIP procedure.

In case of VoWiFi, following unique procedure happens before IMS/SIP voice call establishment

NOTE : This IKE procedure is pretty complicated and only high level procedure is defined by 3GPP. The full details of each steps are based on RFC. You may refer to this note if you are not familiar with this process and want to get some big picture before jumping into the test procedure.

NOTE : Even before ePDG disvery process is necessary IKE, but this process is not part of this tutorial. Regarding this procedure, refer to this note.

 

Table of Contents

 

 

 

Test Setup

Test setup for this tutorial is as shown below.  

For this test, a WiFi Access Point (AP) is required. You may use your own AP connected to Callbox PC if you can configure it as described here.  In this test setup, we modified the configuration of the built-in WiFi module of the PC to work as a WiFi AP.

Another essential component for this test in addition to WiFi AP is ePDG. Amarisoft ePDG is implemented (supported) as a part of MME.

TestSetup Callbox UE 1sdr 01

The basic configuration to be noted for the WiFi AP is SSID (shown below) since this is the one you need to get your Phone to be connected for the test.

The IP address assigned for the WiFi AP is 10.42.0.1. You may assign any IP but the IP should be consistantly used as epdg bining address in the configuration file.

 

Key Configuration Parameters

Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.

 

Configuration

NOTE : Amarisoft callbox support VoLTE by default setting. So unless you have any specific configurations of your own on device side, VoLTE should work with default settings.

I used the gnb-sa-vowifi.cfg which is modified from gnb-sa.cfg

LTE SG SMS Config 01

I also used ims.default-voWifi.cfg modified from ims.default.cfg and mme-ims-voWifi.cfg modified from mme-ims.cfg. The default ue_db-ims.cfg was replaced by ue_db-ims-vowifi.cfg in this test.

LTE SG SMS Config 03

Change the configuration in gnb-sa-vowifi.cfg as follows.

I changed plmn because usually most of the phone enables VoWiFi dedicated for specific carriers.  Specify PLMN for the specific carrier that your DUT support VoWiFi (NOTE : Make it sure that you use proper USIM with matching this imsi)

In mme-ims-voWifi.cfg , enable all the parameters that are related to VoWiFi. ims_vops_eps and ims_vops_5gs_n3gpp are the essential parameters for this test, but ims_vops_5gs_3gpp is also enabled as well for possible other test (e.g, VoNR). Also note that plmn is changed from the default since the plmn on cell configuration is changed.

Then add epdg configuration. In this test, we configured a single parameter bind_addr in epdg object. This is the most basic configuration and you can fine controll the behavior of ePDG in various different way using the configuration parameters listed here

Lastly change (or add) UE sim information in ue_db-ims-vowifi.cfg to match with your SIM card.  

 

Perform the test

Since this test is voice over WiFi only which does not require any involvement of eNB or gNB, running procedure on gNB/eNB side is very simple (almost nothing).  Just run 'lte service' and make it sure that PLMN is configured as required.

Wait until UE WiFi get connected to the WiFi AP configured for ePDG.  If the UE shows the configured SSID properly, it indicates UE went through the initial ePDG process (IKEv2) properly.

Now try to make a voice call to IMS Voice Loopback number and see if the call gets connected.

 

Log Analysis

Sample Log

Unlike the log analysis for other tutorial, the log analysis in this tutorial is NOT about 3GPP since the traffic is going through the non-3GPP network which is WiFi and ePDG.

NOTE : many of the screen capture shown here shows only the first part of a ePDG packet which does not show the full contents. But the description/comments are the summary for the full contents of the packets. So I would recommend you to look into the entire contents of the log by opening up the log file and compare it with the description/comments shown here.

NOTE : If you are not familiar with ePDG protocol (especially IKE protocol), you may refer to this note and get some big picture first.

First of all, for this test you need to collect log from almost all components - MME,N3WF,IMS for this test. ENB is not directly involved in this test, but no harm to collect the log.

N3IWF stands for Non 3GPP Inter Working Function which is related to ePDG only for now.

The first two IKEv2 message shown here may not be seen in every test since they are failed attempt for SA_INIT.

This is the first message in an IKE Phase 1 negotiation (Main Mode) where the initiator proposes multiple combinations of cryptographic algorithms and parameters for securing the IKE Security Association (SA), along with NAT traversal capabilities.

Short summary of the contents of the message are :

This is an IKE Phase 1 response message where the responder acknowledges the initiator's proposals and selects specific security parameters (AES-CBC encryption, HMAC-SHA1 integrity, and DH Group 14) for establishing the IKE Security Association (SA). It also includes NAT traversal capabilities.

Short summary of the contents of the message are :

This is the list of the derived keys (SK_d, SK_ai, SK_ar, SK_ei, SK_er, SK_pi, SK_pr) generated during IKE Phase 1 (previous two steps).

 This is an IKE Phase 2 response message where the responder authenticates itself using EAP-AKA and confirms its identity as "ims."

Short summary of the contents of the message are :

This is an IKE Phase 2 response message where the initiator completes the EAP-AKA authentication exchange by providing its response to the challenge issued by the responder.

Short summary of the contents of the message are :

This is an IKE Phase 2 response message where the responder signals successful completion of the EAP authentication exchange.

Short summary of the contents of the message are :

This is an IKE Phase 2 request message where the initiator is for adding the Child SA negotiation and potentially including additional configuration requests. (NOTE : Since the payload data is not decoded in the log, we don't know exactly what this message is for. I am just guessing it is for child SA addition by looking subsequent messages)

This is the list of key material for an ESP Security Association (SA) used in IPsec. This process is likely part of establishing a secure IPsec tunnel within an existing IKE session.

Adding a IPSec Tunnel with following IP and Security Parameters

Adding a IPSec Tunnel with following IP and Security Parameters. this time for the opposite direction of the IPsec tunnel compared to the previous message.

This is for adding an IPsec Security Association (SA) specifically for IPv6 traffic. (NOTE : In this case, the end point is still the same IPv4 address as previous case, but the traffic going through the tunnel is IPv6 packet)

This is for adding an IPsec Security Association (SA) specifically for IPv6 traffic.  this time for the opposite direction of the IPsec tunnel compared to the previous message.

This is an IKE Phase 2 response message where the responder is finalizing the Child SA negotiation by authenticating itself, confirming the IPsec SA parameters, and providing configuration information like IP addresses and DNS server details.

Followings are the summary of the contents

Once all the steps of IKE and SA addition are properly done, UE is supposed to send SIP Register and complete all the registration process. (NOTE : If you don't see SIP registration from UE in VoWiFi settings, you'd better go through all the IKE and SA addition procedure described above and make it sure that the entire procedure is done properly)

Once SIP Registration went through properly and you make a call from the UE, UE should send SIP INVITE message and go through the call setup process.