Skip to content

VoicenterTeam/openimss

Repository files navigation

OpenIMSs

A community effort to bring up a comprehensive open source environment for real life development of IMS based 4G/5G/NR voice/video/data/RCS/IM services.

We started from https://github.com/herlesupreeth/docker_open5gs , and begin to generalize and expand from it

Status:

  • Open5GS EPC
  • SRSRan 4G/LTE Radio Access
  • implementation of IMS CSCFs in OpenSIPS
  • qryn monitoring metrics telemethry
  • portainer
  • graphana
  • coroot

Tested Setup

Docker host machine

  • Ubuntu 22.04

SDRs tested with srsLTE eNB

  • Ettus USRP B210 or Chinese compatible 😉

Build and Execution Instructions

git clone https://github.com/VoicenterTeam/openimss.git
cd openimss/base
docker build --no-cache --force-rm -t docker_openimss_open5gs .

cd ../ims_base
docker build --no-cache --force-rm -t docker_openimss_opensips .

cd ../srslte
docker build --no-cache --force-rm -t docker_openimss_srslte .

cd ../ueransim
docker build --no-cache --force-rm -t docker_openimss_ueransim .

Build and Run using docker-compose

cd ..
set -a
source .env
docker-compose build --no-cache
docker-compose up

# srsRAN eNB
docker-compose -f srsenb.yaml up -d && docker attach srsenb
# srsRAN gNB
docker-compose -f srsgnb.yaml up -d && docker attach srsgnb
# srsRAN ZMQ based setup
    # eNB
    docker-compose -f srsenb_zmq.yaml up -d && docker attach srsenb_zmq
    # gNB
    docker-compose -f srsgnb_zmq.yaml up -d && docker attach srsgnb_zmq
    # 4G UE
    docker-compose -f srsue_zmq.yaml up -d && docker attach srsue_zmq
    # 5G UE
    docker-compose -f srsue_5g_zmq.yaml up -d && docker attach srsue_5g_zmq

# UERANSIM gNB
docker-compose -f nr-gnb.yaml up -d && docker attach nr_gnb

# UERANSIM NR-UE
docker-compose -f nr-ue.yaml up -d && docker attach nr_ue

Configuration

For the quick run (eNB/gNB, CN in same docker network), edit only the following parameters in .env as per your setup

MCC
MNC
TEST_NETWORK --> Change this only if it clashes with the internal network at your home/office
DOCKER_HOST_IP --> This is the IP address of the host running your docker setup
SGWU_ADVERTISE_IP --> Change this to value of DOCKER_HOST_IP set above only if eNB/gNB is not running the same docker network/host
UPF_ADVERTISE_IP --> Change this to value of DOCKER_HOST_IP set above only if eNB/gNB is not running the same docker network/host

If eNB/gNB is NOT running in the same docker network/host as the host running the dockerized Core/IMS then follow the below additional steps

Under mme section in docker compose file (docker-compose.yaml, nsa-deploy.yaml), uncomment the following part

...
    # ports:
    #   - "36412:36412/sctp"
...

Under amf section in docker compose file (docker-compose.yaml, nsa-deploy.yaml, sa-deploy.yaml), uncomment the following part

...
    # ports:
    #   - "38412:38412/sctp"
...

If deploying in SA mode only (sa-deploy.yaml), then uncomment the following part under upf section

...
    # ports:
    #   - "2152:2152/udp"
...

If deploying in NSA mode only (nsa-deploy.yaml, docker-compose.yaml), then uncomment the following part under sgwu section

...
    # ports:
    #   - "2152:2152/udp"
...

Register a UE information

Open (http://<DOCKER_HOST_IP>:3000) in a web browser, where <DOCKER_HOST_IP> is the IP of the machine/VM running the open5gs containers. Login with following credentials

Username : admin
Password : 1423

Using Web UI, add a subscriber

srsLTE eNB settings

If SGWU_ADVERTISE_IP is properly set to the host running the SGWU container in NSA deployment, then the following static route is not required. On the eNB, make sure to have the static route to SGWU container (since internal IP of the SGWU container is advertised in S1AP messages and UE wont find the core in Uplink)

# NSA - 4G5G Hybrid deployment
ip r add <SGWU_CONTAINER_IP> via <SGWU_ADVERTISE_IP>

Not supported

  • IPv6 usage in Docker

Ta-daaa

~/openimss (master) # docker ps
CONTAINER ID   IMAGE                                      COMMAND                  CREATED         STATUS                   PORTS                                                                                                                          NAMES
215bb6200149   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             2123/udp, 3868/sctp, 3868/tcp, 3868/udp, 5868/tcp, 5868/sctp, 5868/udp, 36412/sctp, 9091/tcp                                   mme
a0cab0060ee9   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             2123/udp, 8805/udp                                                                                                             sgwc
8f057a5febe0   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             2152/udp, 8805/udp                                                                                                             sgwu
be53d5adaf23   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             2152/udp, 8805/udp, 9091/tcp                                                                                                   upf
6e4d93f13983   docker_openimss_opensips                   "/bin/bash -c ./star…"   5 minutes ago   Up 5 minutes             3871/tcp, 3871/udp, 5060/tcp, 5060/udp, 5100-5120/tcp, 5100-5120/udp, 6100-6120/tcp, 8080/tcp, 6100-6120/udp                   pcscf
9a644e5f2de0   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             2123/udp, 3868/sctp, 3868/tcp, 3868/udp, 5868/tcp, 5868/udp, 7777/tcp, 8805/udp, 5868/sctp, 9091/tcp                           smf
0ba9d91f46f1   docker_openimss_opensips                   "/bin/bash -c ./star…"   5 minutes ago   Up 5 minutes             3869/tcp, 3869/udp, 4060/tcp, 8080/tcp, 4060/udp                                                                               icscf
81763a3141e6   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             7777/tcp, 9091/tcp, 38412/sctp                                                                                                 amf
593a93826ee0   timberio/vector:latest-alpine              "/usr/local/bin/vect…"   5 minutes ago   Up 5 minutes                                                                                                                                            vector_logs
db47f463c3f3   sipcapture/heplify-server                  "./heplify-server"       5 minutes ago   Up 5 minutes             9090/tcp, 0.0.0.0:9060-9061->9060-9061/tcp, 0.0.0.0:9060->9060/udp, :::9060-9061->9060-9061/tcp, :::9060->9060/udp, 9096/tcp   heplify-server
effabab912d1   timberio/vector:latest-alpine              "/usr/local/bin/vect…"   5 minutes ago   Up 5 minutes                                                                                                                                            vector
3ea4c8cd33a4   docker_openimss_fhoss                      "/bin/sh -c /mnt/fho…"   5 minutes ago   Up 5 minutes             3868/tcp, 3868/udp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                                                  fhoss
b63d0d547968   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             7777/tcp                                                                                                                       bsf
ec3749c08add   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             7777/tcp, 9091/tcp                                                                                                             pcf
645c01d56b32   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             7777/tcp                                                                                                                       ausf
e588b76710f2   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             7777/tcp                                                                                                                       udm
65923334962a   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             7777/tcp                                                                                                                       nssf
aef322972ad7   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             7777/tcp                                                                                                                       udr
4cb9027cbab7   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             3868/sctp, 3868/tcp, 3868/udp, 5868/sctp, 5868/tcp, 5868/udp                                                                   hss
39004a28aa34   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             3868/sctp, 3868/tcp, 3868/udp, 5868/sctp, 5868/tcp, 5868/udp                                                                   pcrf
8d84f59f20a0   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                                                                      webui
17e909a22b89   timberio/vector:latest-alpine              "/usr/local/bin/vect…"   5 minutes ago   Up 5 minutes                                                                                                                                            vector-coroot
d4ec0c185e29   docker_openimss_osmomsc                    "/bin/sh -c '/mnt/os…"   5 minutes ago   Up 5 minutes             2775/tcp, 29118/sctp                                                                                                           osmomsc
458a787106cf   grafana/grafana-oss:latest                 "/run.sh"                5 minutes ago   Up 5 minutes             0.0.0.0:9080->3000/tcp, :::9080->3000/tcp                                                                                      grafana
eab34b76e65b   qxip/qryn:latest                           "docker-entrypoint.s…"   5 minutes ago   Up 5 minutes             0.0.0.0:3100->3100/tcp, :::3100->3100/tcp                                                                                      qryn
1e0b3bddba04   docker_openimss_mongo                      "/bin/sh -c /mnt/mon…"   5 minutes ago   Up 5 minutes             27017/tcp, 27017/udp                                                                                                           mongo
77003e897f85   ghcr.io/coroot/coroot                      "/opt/coroot/coroot"     5 minutes ago   Up 5 minutes             0.0.0.0:8013->8080/tcp, :::8013->8080/tcp                                                                                      coroot
985d0b119222   docker_openimss_mysql                      "/bin/sh -c /mysql_i…"   5 minutes ago   Up 5 minutes             3306/tcp                                                                                                                       mysql
f7d4e0e4a968   clickhouse/clickhouse-server:22.8-alpine   "/entrypoint.sh"         5 minutes ago   Up 5 minutes (healthy)   9000/tcp, 0.0.0.0:8123->8123/tcp, :::8123->8123/tcp, 9009/tcp                                                                  clickhouse-serv
er
2133a1f57a52   ghcr.io/coroot/coroot-node-agent           "coroot-node-agent -…"   5 minutes ago   Up 5 minutes             80/tcp                                                                                                                         exporter
49ea9dd767fa   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             7777/tcp                                                                                                                       scp
c260a4a8a053   portainer/portainer-ce:latest              "/portainer"             5 minutes ago   Up 5 minutes             0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp, 9000/tcp                                 portainer
5868a53cc66e   docker_openimss_osmohlr                    "/bin/sh -c '/mnt/os…"   5 minutes ago   Up 5 minutes             4222/tcp                                                                                                                       osmohlr
48efb254ba8e   docker_openimss_dns                        "/bin/sh -c '/mnt/dn…"   5 minutes ago   Up 5 minutes             53/udp                                                                                                                         dns
c7665137d42c   docker_openimss_rtpengine                  "/bin/sh -c /mnt/rtp…"   5 minutes ago   Up 5 minutes             2223/udp, 49000-50000/udp                                                                                                      rtpengine
09bd99f2a02b   docker_openimss_open5gs                    "/bin/sh -c /open5gs…"   5 minutes ago   Up 5 minutes             7777/tcp                                                                                                                       nrf
5e0a05b79569   docker_openimss_metrics                    "/bin/sh -c /mnt/met…"   5 minutes ago   Up 5 minutes             0.0.0.0:9090->9090/tcp, :::9090->9090/tcp                                                                                      metrics



~/openimss (master) # docker-compose -f srsenb.yaml up -d && docker attach srsenb
WARNING: Found orphan containers (scscf, clickhouse-server, mysql, portainer, fhoss, hss, sgwc, rtpengine, dns, icscf, bsf, qryn, exporter, nssf, coroot, osmomsc, udm, osmohlr, smf, pcscf, mme, sgwu, heplify-server, ausf, pcrf, webui, vector-coroot, mongo, vector, v
ector_logs, scp, upf, nrf, amf, grafana, metrics, pcf, udr) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Starting srsenb ... done

Built in Release mode using commit 10f81ca03 on branch lc/main.

Opening 1 channels in RF device=default with args=default
Supported RF device list: UHD soapy zmq lime file
Trying to open RF device 'UHD'
[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; UHD_4.4.0.0-0ubuntu1~focal1
[INFO] [LOGGING] Fastpath logging disabled at runtime.
[INFO] [B200] Loading firmware image: /usr/share/uhd/images/usrp_b200_fw.hex...
Opening USRP channels=1, args: type=b200,master_clock_rate=23.04e6
[INFO] [UHD RF] RF UHD Generic instance constructed
[INFO] [B200] Detected Device: B210
[INFO] [B200] Loading FPGA image: /usr/share/uhd/images/usrp_b210_fpga.bin...
[INFO] [B200] Operating over USB 3.
[INFO] [B200] Detecting internal GPSDO.... 
[INFO] [GPS] No GPSDO found
[INFO] [B200] Initialize CODEC control...
[INFO] [B200] Initialize Radio control...
[INFO] [B200] Performing register loopback test... 
[INFO] [B200] Register loopback test passed
[INFO] [B200] Performing register loopback test... 
[INFO] [B200] Register loopback test passed
[INFO] [B200] Asking for clock rate 23.040000 MHz... 
[INFO] [B200] Actually got clock rate 23.040000 MHz.
RF device 'UHD' successfully opened

==== eNodeB started ===
Type  to view trace
Setting frequency: DL=2660.0 Mhz, UL=2540.0 MHz for cc_idx=0 nof_prb=50
[INFO] [UHD RF] Tx while waiting for EOB, timed out... 14.8769 >= 0. Starting new burst...