{"id":33215666,"url":"https://github.com/herlesupreeth/docker_open5gs","last_synced_at":"2026-01-19T18:07:43.323Z","repository":{"id":40895525,"uuid":"196191454","full_name":"herlesupreeth/docker_open5gs","owner":"herlesupreeth","description":"Docker files to run open5gs + IMS + eNB + gNB + NR-UE in a docker","archived":false,"fork":false,"pushed_at":"2025-10-31T21:47:02.000Z","size":772,"stargazers_count":458,"open_issues_count":109,"forks_count":257,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-10-31T23:26:11.195Z","etag":null,"topics":["5gc","docker","docker-open5gs","enb","epc","gnb","ims","kamailio","nr-sa-deploy","nr-ue","open5gs","sgwu-container","srslte-enb","srsran","ueransim","volte"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/herlesupreeth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-07-10T11:19:29.000Z","updated_at":"2025-10-31T21:47:06.000Z","dependencies_parsed_at":"2023-10-24T07:30:38.666Z","dependency_job_id":"3e10fb35-ee48-4147-bfc6-f20060325ae2","html_url":"https://github.com/herlesupreeth/docker_open5gs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/herlesupreeth/docker_open5gs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/herlesupreeth%2Fdocker_open5gs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/herlesupreeth%2Fdocker_open5gs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/herlesupreeth%2Fdocker_open5gs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/herlesupreeth%2Fdocker_open5gs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/herlesupreeth","download_url":"https://codeload.github.com/herlesupreeth/docker_open5gs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/herlesupreeth%2Fdocker_open5gs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285573085,"owners_count":27194648,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-21T02:00:06.175Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["5gc","docker","docker-open5gs","enb","epc","gnb","ims","kamailio","nr-sa-deploy","nr-ue","open5gs","sgwu-container","srslte-enb","srsran","ueransim","volte"],"created_at":"2025-11-16T13:00:29.583Z","updated_at":"2025-11-21T07:01:53.042Z","avatar_url":"https://github.com/herlesupreeth.png","language":"Shell","funding_links":[],"categories":["Lab","Shell"],"sub_categories":["ready to use testbed (Docker, Vagrant etc.)"],"readme":"# docker_open5gs\nQuite contrary to the name of the repository, this repository contains docker files to deploy an Over-The-Air (OTA) or RF simulated 4G/5G network using following projects:\n- Core Network (4G/5G) - open5gs - https://github.com/open5gs/open5gs\n- IMS (VoLTE + VoNR) - kamailio - https://github.com/kamailio/kamailio\n- IMS HSS - https://github.com/nickvsnetworking/pyhss\n- Osmocom HLR - https://github.com/osmocom/osmo-hlr\n- Osmocom MSC - https://github.com/osmocom/osmo-msc\n- srsRAN_4G (4G eNB + 4G UE + 5G UE) - https://github.com/srsran/srsRAN_4G\n- srsRAN_Project (5G gNB) - https://github.com/srsran/srsRAN_Project\n- UERANSIM (5G gNB + 5G UE) - https://github.com/aligungr/UERANSIM\n- eUPF (5G UPF) - https://github.com/edgecomllc/eupf\n- OpenSIPS IMS - https://github.com/OpenSIPS/opensips\n- Sigscale OCS - https://github.com/sigscale/ocs\n- Osmo-epdg + Strongswan-epdg\n  - https://gitea.osmocom.org/erlang/osmo-epdg\n  - https://gitea.osmocom.org/ims-volte-vowifi/strongswan-epdg\n- SWu-IKEv2 - https://github.com/fasferraz/SWu-IKEv2\n\n## Table of Contents\n\n- [Tested Setup](#tested-setup)\n- [Prepare Docker images](#prepare-docker-images)\n  - [Get Pre-built Docker images](#get-pre-built-docker-images)\n  - [Build Docker images from source](#build-docker-images-from-source)\n- [Network and deployment configuration](#network-and-deployment-configuration)\n  - [Single Host setup configuration](#single-host-setup-configuration)\n  - [Multihost setup configuration](#multihost-setup-configuration)\n    - [4G deployment](#4g-deployment)\n    - [5G SA deployment](#5g-sa-deployment)\n- [Network Deployment](#network-deployment)\n- [Docker Compose files overview](#docker-compose-files-overview)\n- [Provisioning of SIM information](#provisioning-of-sim-information)\n  - [Provisioning of SIM information in open5gs HSS](#provisioning-of-sim-information-in-open5gs-hss-as-follows)\n  - [Provisioning of IMSI and MSISDN with OsmoHLR](#provisioning-of-imsi-and-msisdn-with-osmohlr-as-follows)\n  - [Provisioning of SIM information in pyHSS](#provisioning-of-sim-information-in-pyhss-is-as-follows)\n  - [Provisioning of Diameter Peer + Subscriber information in Sigscale OCS](#provisioning-of-diameter-peer--subscriber-information-in-sigscale-ocs-as-follows-skip-if-ocs-is-not-deployed)\n- [Testing VoWiFi with COTS UE](#testing-vowifi-with-cots-ue)\n  - [Pre-requisites](#pre-requisites)\n  - [Deploy the required components](#deploy-the-required-components)\n  - [Provision SIM and IMS subscriber information](#provision-sim-and-ims-subscriber-information)\n  - [Manually configure DNS settings on your phone (WiFi connection)](#manually-configure-dns-settings-on-your-phone-wifi-connection)\n  - [UE configuration](#ue-configuration)\n- [Not supported](#not-supported)\n\n## Tested Setup\n\nDocker host machine\n\n- Ubuntu 22.04 or above\n\nOver-The-Air setups: \n\n- srsRAN_Project gNB using Ettus USRP B210\n- srsRAN_Project (5G gNB) using LibreSDR (USRP B210 clone)\n- srsRAN_4G eNB using LimeSDR Mini v1.3\n- srsRAN_4G eNB using LimeSDR-USB\n- srsRAN_4G eNB using LibreSDR (USRP B210 clone)\n\nRF simulated setups:\n\n- srsRAN_4G (eNB + UE) simulation over ZMQ\n- srsRAN_Project (5G gNB) + srsRAN_4G (5G UE) simulation over ZMQ\n- UERANSIM (gNB + UE) simulator\n\n## Prepare Docker images\n\n* Mandatory requirements:\n\t* [docker-ce](https://docs.docker.com/install/linux/docker-ce/ubuntu) - Version 22.0.5 or above\n\t* [docker compose](https://docs.docker.com/compose) - Version 2.14 or above\n\nYou can either pull the pre-built docker images or build them from the source.\n\n### Get Pre-built Docker images\n\nPull base images:\n```\ndocker pull ghcr.io/herlesupreeth/docker_open5gs:master\ndocker tag ghcr.io/herlesupreeth/docker_open5gs:master docker_open5gs\n\ndocker pull ghcr.io/herlesupreeth/docker_grafana:master\ndocker tag ghcr.io/herlesupreeth/docker_grafana:master docker_grafana\n\ndocker pull ghcr.io/herlesupreeth/docker_metrics:master\ndocker tag ghcr.io/herlesupreeth/docker_metrics:master docker_metrics\n```\n\nYou can also pull the pre-built images for additional components\n\nFor IMS components:\n```\ndocker pull ghcr.io/herlesupreeth/docker_osmohlr:master\ndocker tag ghcr.io/herlesupreeth/docker_osmohlr:master docker_osmohlr\n\ndocker pull ghcr.io/herlesupreeth/docker_osmomsc:master\ndocker tag ghcr.io/herlesupreeth/docker_osmomsc:master docker_osmomsc\n\ndocker pull ghcr.io/herlesupreeth/docker_pyhss:master\ndocker tag ghcr.io/herlesupreeth/docker_pyhss:master docker_pyhss\n\ndocker pull ghcr.io/herlesupreeth/docker_kamailio:master\ndocker tag ghcr.io/herlesupreeth/docker_kamailio:master docker_kamailio\n\ndocker pull ghcr.io/herlesupreeth/docker_mysql:master\ndocker tag ghcr.io/herlesupreeth/docker_mysql:master docker_mysql\n\ndocker pull ghcr.io/herlesupreeth/docker_opensips:master\ndocker tag ghcr.io/herlesupreeth/docker_opensips:master docker_opensips\n```\n\nFor srsRAN components:\n```\ndocker pull ghcr.io/herlesupreeth/docker_srslte:master\ndocker tag ghcr.io/herlesupreeth/docker_srslte:master docker_srslte\n\ndocker pull ghcr.io/herlesupreeth/docker_srsran:master\ndocker tag ghcr.io/herlesupreeth/docker_srsran:master docker_srsran\n```\n\nFor UERANSIM components:\n```\ndocker pull ghcr.io/herlesupreeth/docker_ueransim:master\ndocker tag ghcr.io/herlesupreeth/docker_ueransim:master docker_ueransim\n```\n\nFor EUPF component:\n```\ndocker pull ghcr.io/herlesupreeth/docker_eupf:master\ndocker tag ghcr.io/herlesupreeth/docker_eupf:master docker_eupf\n```\n\nFor Sigscale OCS component:\n```\ndocker pull ghcr.io/herlesupreeth/docker_ocs:master\ndocker tag ghcr.io/herlesupreeth/docker_ocs:master docker_ocs\n```\n\nFor Osmo-epdg + Strongswan-epdg component:\n```\ndocker pull ghcr.io/herlesupreeth/docker_osmoepdg:master\ndocker tag ghcr.io/herlesupreeth/docker_osmoepdg:master docker_osmoepdg\n```\n\nFor SWu-IKEv2 component:\n```\ndocker pull ghcr.io/herlesupreeth/docker_swu_client:master\ndocker tag ghcr.io/herlesupreeth/docker_swu_client:master docker_swu_client\n```\n\n### Build Docker images from source\n#### Clone repository and build base docker image of open5gs, kamailio, srsRAN_4G, srsRAN_Project, ueransim\n\n```\n# Build docker image for open5gs EPC/5GC components\ngit clone https://github.com/herlesupreeth/docker_open5gs\ncd docker_open5gs/base\ndocker build --no-cache --force-rm -t docker_open5gs .\n\n# Build docker image for kamailio IMS components\ncd ../ims_base\ndocker build --no-cache --force-rm -t docker_kamailio .\n\n# Build docker image for srsRAN_4G eNB + srsUE (4G+5G)\ncd ../srslte\ndocker build --no-cache --force-rm -t docker_srslte .\n\n# Build docker image for srsRAN_Project gNB\ncd ../srsran\ndocker build --no-cache --force-rm -t docker_srsran .\n\n# Build docker image for UERANSIM (gNB + UE)\ncd ../ueransim\ndocker build --no-cache --force-rm -t docker_ueransim .\n\n# Build docker image for EUPF\ncd ../eupf\ndocker build --no-cache --force-rm -t docker_eupf .\n\n# Build docker image for OpenSIPS IMS\ncd ../opensips_ims_base\ndocker build --no-cache --force-rm -t docker_opensips .\n\n# Build docker image for Osmo-epdg + Strongswan-epdg\ncd ../osmoepdg\ndocker build --no-cache --force-rm -t docker_osmoepdg .\n\n# Build docker image for SWu-IKEv2\ncd ../swu_client\ndocker build --no-cache --force-rm -t docker_swu_client .\n```\n\n#### Build docker images for additional components\n\n```\ncd ..\nset -a\nsource .env\nset +a\nsudo ufw disable\nsudo sysctl -w net.ipv4.ip_forward=1\nsudo cpupower frequency-set -g performance\n\n# For 4G deployment only\ndocker compose -f 4g-volte-deploy.yaml build\n\n# For 5G deployment only\ndocker compose -f sa-deploy.yaml build\n```\n\n## Network and deployment configuration\n\nThe setup can be mainly deployed in two ways:\n\n1. Single host setup where eNB/gNB and (EPC+IMS)/5GC are deployed on a single host machine\n2. Multi host setup where eNB/gNB is deployed on a separate host machine than (EPC+IMS)/5GC\n\n### Single Host setup configuration\nEdit only the following parameters in **.env** as per your setup\n\n```\nMCC\nMNC\nDOCKER_HOST_IP --\u003e This is the IP address of the host running your docker setup\nUE_IPV4_INTERNET --\u003e Change this to your desired (Not conflicted) UE network ip range for internet APN\nUE_IPV4_IMS --\u003e Change this to your desired (Not conflicted) UE network ip range for ims APN\n```\n\n### Multihost setup configuration\n\n#### 4G deployment\n\n###### On the host running the (EPC+IMS)\n\nEdit only the following parameters in **.env** as per your setup\n```\nMCC\nMNC\nDOCKER_HOST_IP --\u003e This is the IP address of the host running (EPC+IMS)\nSGWU_ADVERTISE_IP --\u003e Change this to value of DOCKER_HOST_IP\nUE_IPV4_INTERNET --\u003e Change this to your desired (Not conflicted) UE network ip range for internet APN\nUE_IPV4_IMS --\u003e Change this to your desired (Not conflicted) UE network ip range for ims APN\n```\n\nUnder **mme** section in docker compose file (**4g-volte-deploy.yaml**), uncomment the following part\n```\n...\n    # ports:\n    #   - \"36412:36412/sctp\"\n...\n```\n\nThen, uncomment the following part under **sgwu** section\n```\n...\n    # ports:\n    #   - \"2152:2152/udp\"\n...\n```\n\n###### On the host running the eNB\n\nEdit only the following parameters in **.env** as per your setup\n```\nMCC\nMNC\nDOCKER_HOST_IP --\u003e This is the IP address of the host running eNB\nMME_IP --\u003e Change this to IP address of host running (EPC+IMS)\nSRS_ENB_IP --\u003e Change this to the IP address of the host running eNB\n```\n\nReplace the following part in the docker compose file (**srsenb.yaml**)\n```\n    networks:\n      default:\n        ipv4_address: ${SRS_ENB_IP}\nnetworks:\n  default:\n    external:\n      name: docker_open5gs_default\n```\nwith \n```\n\tnetwork_mode: host\n```\n\n#### 5G SA deployment\n\n###### On the host running the 5GC\n\nEdit only the following parameters in **.env** as per your setup\n```\nMCC\nMNC\nDOCKER_HOST_IP --\u003e This is the IP address of the host running 5GC\nUPF_ADVERTISE_IP --\u003e Change this to value of DOCKER_HOST_IP\nUE_IPV4_INTERNET --\u003e Change this to your desired (Not conflicted) UE network ip range for internet APN\nUE_IPV4_IMS --\u003e Change this to your desired (Not conflicted) UE network ip range for ims APN\n```\n\nUnder **amf** section in docker compose file (**sa-deploy.yaml**), uncomment the following part\n```\n...\n    # ports:\n    #   - \"38412:38412/sctp\"\n...\n```\n\nThen, uncomment the following part under **upf** section\n```\n...\n    # ports:\n    #   - \"2152:2152/udp\"\n...\n```\n\n###### On the host running the gNB\n\nEdit only the following parameters in **.env** as per your setup\n```\nMCC\nMNC\nDOCKER_HOST_IP --\u003e This is the IP address of the host running gNB\nAMF_IP --\u003e Change this to IP address of host running 5GC\nSRS_GNB_IP --\u003e Change this to the IP address of the host running gNB\n```\n\nReplace the following part in the docker compose file (**srsgnb.yaml**)\n```\n    networks:\n      default:\n        ipv4_address: ${SRS_GNB_IP}\nnetworks:\n  default:\n    external: true\n    name: docker_open5gs_default\n```\nwith \n```\n\tnetwork_mode: host\n```\n\n## Network Deployment\n\n###### 4G deployment\n\n```\n# 4G Core Network + IMS + SMS over SGs (uses Kamailio IMS)\ndocker compose -f 4g-volte-deploy.yaml up\n\n# 4G Core Network + IMS + SMS over SGs (uses openSIPS IMS)\ndocker compose -f 4g-volte-opensips-ims-deploy.yaml up\n\n# srsRAN eNB using SDR (OTA)\ndocker compose -f srsenb.yaml up -d \u0026\u0026 docker container attach srsenb\n\n# srsRAN ZMQ eNB (RF simulated)\ndocker compose -f srsenb_zmq.yaml up -d \u0026\u0026 docker container attach srsenb_zmq\n\n# srsRAN ZMQ 4G UE (RF simulated)\ndocker compose -f srsue_zmq.yaml up -d \u0026\u0026 docker container attach srsue_zmq\n\n# 4G Core Network + IMS + SMS over SGs (uses Kamailio IMS) + Osmo-epdg + Strongswan-epdg\ndocker compose -f 4g-volte--vowifi-deploy.yaml up\n\n# SWu-IKEv2 (ePDG testing)\ndocker compose -f swu_client.yaml up -d \u0026\u0026 docker container attach swu_client\n```\n\n###### 5G SA deployment\n\n```\n# 5G Core Network\ndocker compose -f sa-deploy.yaml up\n\n# srsRAN gNB using SDR (OTA)\ndocker compose -f srsgnb.yaml up -d \u0026\u0026 docker container attach srsgnb\n\n# srsRAN ZMQ gNB (RF simulated)\ndocker compose -f srsgnb_zmq.yaml up -d \u0026\u0026 docker container attach srsgnb_zmq\n\n# srsRAN ZMQ 5G UE (RF simulated)\ndocker compose -f srsue_5g_zmq.yaml up -d \u0026\u0026 docker container attach srsue_5g_zmq\n\n# UERANSIM gNB (RF simulated)\ndocker compose -f nr-gnb.yaml up -d \u0026\u0026 docker container attach nr_gnb\n\n# UERANSIM NR-UE (RF simulated)\ndocker compose -f nr-ue.yaml up -d \u0026\u0026 docker container attach nr_ue\n```\n\n## Docker Compose files overview\n\nThis repository provides several Docker Compose files to support different deployment scenarios and components. Below is a summary of the compose files and their purposes:\n\n| Compose File                       | Description                                                                                        |\n|------------------------------------|----------------------------------------------------------------------------------------------------|\n| `4g-volte-deploy.yaml`             | Deploys 4G Core Network (EPC) with IMS (VoLTE) using Kamailio.                                     |\n| `4g-volte-opensips-ims-deploy.yaml`| Deploys 4G Core Network with IMS using OpenSIPS.                                                   |\n| `sa-deploy.yaml`                   | Deploys 5G Standalone (SA) Core Network (5GC).                                                     |\n| `sa-vonr-deploy.yaml`              | Deploys 5G Standalone (SA) Core Network (5GC) with IMS (VoNR) using Kamailio.                      |\n| `srsenb.yaml`                      | Deploys srsRAN 4G eNB for OTA setups using SDR hardware.                                           |\n| `srsenb_zmq.yaml`                  | Deploys srsRAN 4G eNB for RF simulated setups over ZMQ.                                            |\n| `srsue_zmq.yaml`                   | Deploys srsRAN 4G UE for RF simulated setups over ZMQ.                                             |\n| `srsran.yaml`                      | Deploys srsRAN_4G components (eNB/UE).                                                             |\n| `srsgnb.yaml`                      | Deploys srsRAN 5G gNB for OTA setups using SDR hardware.                                           |\n| `srsgnb_zmq.yaml`                  | Deploys srsRAN 5G gNB for RF simulated setups over ZMQ.                                            |\n| `srsue_5g_zmq.yaml`                | Deploys srsRAN 5G UE for RF simulated setups over ZMQ.                                             |\n| `nr-gnb.yaml`                      | Deploys UERANSIM 5G gNB simulator.                                                                 |\n| `nr-ue.yaml`                       | Deploys UERANSIM 5G UE simulator.                                                                  |\n| `4g-volte-ocs-deploy.yaml`         | Deploys 4G Core Network (EPC) + Sigscale OCS with IMS (VoLTE) using Kamailio.                      |\n| `4g-external-ims-deploy.yaml`      | Deploys 4G Core Network (EPC) + Sigscale OCS + PyHSS (IMS) with no IMS components.                 |\n| `4g-volte-vowifi-deploy.yaml`      | Deploys 4G Core Network (EPC) + Osmocom EPDG with IMS (VoLTE/VoWiFi) using Kamailio.               |\n| `swu_client.yaml`                  | Deploys SWu-IKEv2 client for ePDG testing.                                                         |\n| `sa-vonr-ibcf-deploy.yaml`         | Deploys 5G Standalone (SA) Core Network (5GC) + IMS (VoNR) using Kamailio + IBCF.                  |\n| `sa-vonr-opensips-ims-deploy.yaml` | Deploys 5G Standalone (SA) Core Network (5GC) with IMS (VoNR) using OpenSIPS (Experimental).       |\n| `oaienb.yaml`                      | Deploys OAI eNB for OTA setups using SDR hardware (Untested and Unmaintained).                     |\n| `oaignb.yaml`                      | Deploys OAI 5G gNB for OTA setups using SDR hardware (Untested and Unmaintained).                  |\n\n## Provisioning of SIM information\n\n### Provisioning of SIM information in open5gs HSS as follows:\n\nOpen (http://\u003cDOCKER_HOST_IP\u003e:9999) in a web browser, where \u003cDOCKER_HOST_IP\u003e is the IP of the machine/VM running the open5gs containers. Login with following credentials\n```\nUsername : admin\nPassword : 1423\n```\n\nUsing Web UI, add a subscriber with following details:\n\n```\nIMSI : \u003cSIM_IMSI\u003e (e.g. 001010123456790)\nMSISDN : \u003cDESIRED_MSISDN\u003e (e.g. 9076543210)\nAMF : 8000\nK : \u003cSIM_K\u003e (e.g. 8baf473f2f8fd09487cccbd7097c6862)\nOPC : \u003cSIM_OPC\u003e (e.g. 8E27B6AF0E692E750F32667A3B14605D)\n\nAPN Configuration:\n---------------------------------------------------------------------------------------------------------------------\n| APN      | Type | QCI | ARP | Capability | Vulnerablility | MBR DL/UL(Kbps)     | GBR DL/UL(Kbps) | PGW IP        |\n---------------------------------------------------------------------------------------------------------------------\n| internet | IPv4 | 9   | 8   | Disabled   | Disabled       | unlimited/unlimited |                 |               |\n|          |      | 1   | 2   | Enabled    | Enabled        | 128/128             | 128/128         |               |\n|          |      | 2   | 4   | Enabled    | Enabled        | 128/128             | 128/128         |               |\n---------------------------------------------------------------------------------------------------------------------\n| ims      | IPv4 | 5   | 1   | Disabled   | Disabled       | 3850/1530           |                 |               |\n|          |      | 1   | 2   | Enabled    | Enabled        | 128/128             | 128/128         |               |\n|          |      | 2   | 4   | Enabled    | Enabled        | 128/128             | 128/128         |               |\n---------------------------------------------------------------------------------------------------------------------\n```\n\n#### or using cli \n\n```\nsudo docker exec -it hss misc/db/open5gs-dbctl add 001010123456790 8baf473f2f8fd09487cccbd7097c6862 8E27B6AF0E692E750F32667A3B14605D\n```\n**NOTE:** Adding via CLI does not add the desired APN configuration. You need to add the APN configuration via Web UI as mentioned above.\n\n### Provisioning of IMSI and MSISDN with OsmoHLR as follows:\n\n1. First, telnet to OsmoHLR from host machine using the following command:\n\n```\n$ telnet 172.22.0.32 4258\n\nOsmoHLR\u003e enable\nOsmoHLR#\n```\n\n2. Then, register the subscriber information as in following example:\n\n```\nOsmoHLR# subscriber imsi 001010123456790 create\nOsmoHLR# subscriber imsi 001010123456790 update msisdn 9076543210\n```\n\n**Replace IMSI and MSISDN as per your programmed SIM**\n\n\n### Provisioning of SIM information in pyHSS is as follows:\n\n1. Goto http://\u003cDOCKER_HOST_IP\u003e:8080/docs/\n2. Select **apn** -\u003e **Create new APN** -\u003e Press on **Try it out**. Then, in payload section use the below JSON and then press **Execute**\n\n```\n{\n  \"apn\": \"internet\",\n  \"apn_ambr_dl\": 0,\n  \"apn_ambr_ul\": 0\n}\n```\n\nTake note of **apn_id** specified in **Response body** under **Server response** for **internet** APN\n\nRepeat creation step for following payload\n\n```\n{\n  \"apn\": \"ims\",\n  \"apn_ambr_dl\": 0,\n  \"apn_ambr_ul\": 0\n}\n```\n\nTake note of **apn_id** specified in **Response body** under **Server response** for **ims** APN\n\n**Execute this step of APN creation only once**\n\n3. Next, select **auc** -\u003e **Create new AUC** -\u003e Press on **Try it out**. Then, in payload section use the below example JSON to fill in ki, opc and amf for your SIM and then press **Execute**\n\n```\n{\n  \"ki\": \"8baf473f2f8fd09487cccbd7097c6862\",\n  \"opc\": \"8E27B6AF0E692E750F32667A3B14605D\",\n  \"amf\": \"8000\",\n  \"sqn\": 0,\n  \"imsi\": \"001010123456790\"\n}\n```\n\nTake note of **auc_id** specified in **Response body** under **Server response**\n\n**Replace imsi, ki, opc and amf as per your programmed SIM**\n\n4. Next, select **subscriber** -\u003e **Create new SUBSCRIBER** -\u003e Press on **Try it out**. Then, in payload section use the below example JSON to fill in imsi, auc_id and apn_list for your SIM and then press **Execute**\n\n```\n{\n  \"imsi\": \"001010123456790\",\n  \"enabled\": true,\n  \"auc_id\": 1,\n  \"default_apn\": 1,\n  \"apn_list\": \"1,2\",\n  \"msisdn\": \"9076543210\",\n  \"ue_ambr_dl\": 0,\n  \"ue_ambr_ul\": 0\n}\n```\n\n- **auc_id** is the ID of the **AUC** created in the previous steps\n- **default_apn** is the ID of the **internet** APN created in the previous steps\n- **apn_list** is the comma separated list of APN IDs allowed for the UE i.e. APN ID for **internet** and **ims** APN created in the previous steps\n\n**Replace imsi and msisdn as per your programmed SIM**\n\n5. Finally, select **ims_subscriber** -\u003e **Create new IMS SUBSCRIBER** -\u003e Press on **Try it out**. Then, in payload section use the below example JSON to fill in imsi, msisdn, msisdn_list, scscf_peer, scscf_realm and scscf for your SIM/deployment and then press **Execute**\n\n```\n{\n    \"imsi\": \"001010123456790\",\n    \"msisdn\": \"9076543210\",\n    \"sh_profile\": \"string\",\n    \"scscf_peer\": \"scscf.ims.mnc001.mcc001.3gppnetwork.org\",\n    \"msisdn_list\": \"[9076543210]\",\n    \"ifc_path\": \"default_ifc.xml\",\n    \"scscf\": \"sip:scscf.ims.mnc001.mcc001.3gppnetwork.org:6060\",\n    \"scscf_realm\": \"ims.mnc001.mcc001.3gppnetwork.org\"\n}\n```\n\n**Replace imsi, msisdn and msisdn_list as per your programmed SIM**\n\n**Replace scscf_peer, scscf and scscf_realm as per your deployment**\n\n### Provisioning of Diameter Peer + Subscriber information in Sigscale OCS as follows (Skip if OCS is not deployed):\n\n1. Goto http://\u003cDOCKER_HOST_IP\u003e:8083\n2. Login with following credentials\n```\nUsername : admin\nPassword : admin\n```\n3. Configure SMF as Diameter Peer as mentioned here - https://sigscale.atlassian.net/wiki/spaces/SO/pages/3833890/How-To+with+OCS#Add-an-DIAMETER-client-(DRA%2FSGSN%2FPGW)\n\n    **NOTE:** IP address must be equal to **SMF_IP** in **.env** file and the Protocol must be set to Diameter.\n\n4. Subscriber information can be provisioned as mentioned here - https://sigscale.atlassian.net/wiki/spaces/SO/pages/3833890/How-To+with+OCS#Add-a-subscriber\n\n    **NOTE:** The IMSI and the MSISDN must be equal to the one provisioned in open5gs HSS and/or pyHSS.\n\n## Testing VoWiFi with COTS UE\n\n#### Pre-requisites\n  - Set DOCKER_HOST_IP to the IP of the host machine where docker_open5gs is deployed.\n\n#### Deploy the required components\n  Ensure you have the following services running:\n  - 4G Core Network (EPC)\n  - IMS (Kamailio or OpenSIPS)\n  - Osmo-ePDG and Strongswan-ePDG\n\n  Start the VoWiFi-enabled deployment using:\n  ```\n  docker compose -f 4g-volte-vowifi-deploy.yaml up\n  ```\n\n#### Provision SIM and IMS subscriber information\n  - Add subscriber details in open5gs HSS or pyHSS as described in the provisioning sections above.\n  - Ensure the IMSI, MSISDN, and authentication keys match those programmed on your SIM.\n\n#### Manually configure DNS settings on your phone (WiFi connection)\n  - On your phone, go to the WiFi settings and select the network you are connected to.\n  - Edit the network settings and look for the DNS configuration option (may be under \"Advanced\" or \"IP settings\").\n    - On Android devices, switch from DHCP to Static IP configuration to manually set DNS.\n    - On iOS devices, you can directly set the DNS server.\n  - Set the DNS server to point to DOCKER_HOST_IP.\n  - Save the settings and reconnect to the WiFi network.\n\n  **Tip:** Proper DNS resolution is required for the UE to locate and register with IMS and ePDG services.\n\n#### UE configuration\n  - On your UE (User Equipment), ensure VoWiFi (WiFi calling) is enabled.\n\n## Not supported\n- IPv6 usage in Docker\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fherlesupreeth%2Fdocker_open5gs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fherlesupreeth%2Fdocker_open5gs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fherlesupreeth%2Fdocker_open5gs/lists"}