herlesupreeth / docker_open5gs

Docker files to run open5gs + IMS + eNB + gNB + NR-UE in a docker
BSD 2-Clause "Simplified" License
279 stars 156 forks source link

IMS registration and network deploy #303

Open helloTkk opened 2 months ago

helloTkk commented 2 months ago

Hi @herlesupreeth , thanks for making this docker and tutorial for programming the SIM card!

I'm trying to make a VoLTE call with the dockerized setting, but I'm facing some troubles now.

Below is my Environment: OS: Ubuntu 20.04 Device: USRP B210 eNodeB: srslte in docker SIM: SysmoISIM-SJA2 (programmed successfully by following the nice CoIMS tutorial) UE: Google Pixel 6 (Android 13)

I used the following command to start the open5gs and enodeB, they are on the same machine. Terminal 1: docker compose -f 4g-volte-deploy.yaml up Terminal 2: docker compose -f srsenb.yaml up -d && docker container attach srsenb

The UE was attached successfully (attach complete) but IMS was not registered. Also, I found UE doesn't have the internet access.

I have attached PCAP here, also all the configurations I used and UE screenshots, .env ,etc.. PCAP_and_configs.zip

Note: To make the pcap file more clear, you may use the filter: s1ap || gtpv2 || pfcp || diameter || diameter.3gpp || sip || dns

Could you please provide some help here? Thanks!

herlesupreeth commented 2 months ago

Thanks for the detailed logs and pcap.

image

I see that phone has attempted to connect to IMS APN and is successful in doing so. But, it didnt send SIP REGISTER towards IMS. You could try/check the following on the phone

  1. Restart the phone and see whether it issues SIP REGISTER or not ( ti can happen that phone gives up on sending SIP REGISTER after repeatedly failing to attach to IMS)
  2. Check whether VoLTE is enabled in the phone settings under mobile network menu

Also, I found UE doesn't have the internet access.

Thats the default behavior of the phone when it fails to register with IMS

helloTkk commented 2 months ago

Hi @herlesupreeth ,

I further tried several more UEs (with the same SIM Card) listed below: iphone 13 (ios 17.4.1) XiaoMi Mix 2 (Android 11), it should have the same baseband chipset as the Oneplus phone you are using.

Both of the phones are attached successfully, but no SIP register was sent when I used dockerized open5gs and dockerized srslte. However, I also tried them with Amarisoft setup, and both of them sent SIP Register after attaching. So, I think the SIM card I programmed is correct, and the problem comes from my dockerized VoLTE setup deployment.

I have the following questions:

  1. I'm running dockerized open5gs and dockerized srslte on the same machine, in the .env file, I set the DOCKER_HOST_IP=104.39.168.68, which is ip address of my wifi adapter (see my config in ifconfig_terminal.txt attached before), is it a correct setting? I also didn't change the UE_IPV4_INTERNET and UE_IPV4_IMS in .env.
  2. I started dockerizing srslte using the command docker compose -f srsenb.yaml up -d && docker container attach srsenb directly. Is there anything I need to change in the config file to support VoLTE?
  3. I noticed some ICMP packets in the pcap file (docker_open5gs_enb_iphone.pcapng). Based on the .env, 172.22.0.22 is the IP of dockerized enodeB, but it shows the destination unreachable. Is there anything wrong with my configuration file?

New pcaps are attached and my configuration files are attached before. Thanks for your time and assistance!

PCAPS2.zip

herlesupreeth commented 2 months ago

I'm running dockerized open5gs and dockerized srslte on the same machine, in the .env file, I set the DOCKER_HOST_IP=104.39.168.68, which is ip address of my wifi adapter (see my config in ifconfig_terminal.txt attached before), is it a correct setting? I also didn't change the UE_IPV4_INTERNET and UE_IPV4_IMS in .env.

This shouldnt matter if all are running in the same machine

I started dockerizing srslte using the command docker compose -f srsenb.yaml up -d && docker container attach srsenb directly. Is there anything I need to change in the config file to support VoLTE?

Nope

image

I see iPhone attempting to initiate a SIP REGISTER by first sending TCP SYN to port 5060 but strangely its been replied with ICMP unreachable.

Can you execute the following on the host machine and then give it a try once more please?

sudo ufw disable

if the above method also doesnt work then I would check whether P-CSCF is properly up and running when deployed.

helloTkk commented 2 months ago

I'm running dockerized open5gs and dockerized srslte on the same machine, in the .env file, I set the DOCKER_HOST_IP=104.39.168.68, which is ip address of my wifi adapter (see my config in ifconfig_terminal.txt attached before), is it a correct setting? I also didn't change the UE_IPV4_INTERNET and UE_IPV4_IMS in .env.

This shouldnt matter if all are running in the same machine

I started dockerizing srslte using the command docker compose -f srsenb.yaml up -d && docker container attach srsenb directly. Is there anything I need to change in the config file to support VoLTE?

Nope

image

I see iPhone attempting to initiate a SIP REGISTER by first sending TCP SYN to port 5060 but strangely its been replied with ICMP unreachable.

Can you execute the following on the host machine and then give it a try once more please?

sudo ufw disable

if the above method also doesnt work then I would check whether P-CSCF is properly up and running when deployed.

Hi @herlesupreeth, thanks for your assistance!

I executed sudo ufw disable and used another command, sudo ufw status, to check the firewall status; I got "Status: inactive."

Then I tried with iPhone 13 again, pcap is attached, and I saw the problem you mentioned is still there. I also attached my terminal logs, I also saw some errors in the terminal logs.

Btw, I also tried to ping 172.22.0.21 from my host machine, and it looks okay.

Thanks again for your help! PCAP3.zip

herlesupreeth commented 2 months ago

Its still the same. I would suggest to reboot the machine. Then execute sudo ufw disable. Then, bring up all services and attempt an IMS registration