VoLTE test setup

To improve testing and developing with VoLTE and LTE, I've created a full VoLTE setup in a single VM including the EPC. The scripts to create the VM can be found on the gitlab of postmarketOS. A full debian image containing the network with PLMN 901/70 can be downloaded from the blog. Additional documentation is also available in the project repository.

Everything on the graph except the eNodeB is in the VM:

A graph of a classic 4G EPC including a IMS for VoLTE

The setup is build with the following software components:

  • MME: open5gs-mmed
  • SGW: open5gs-sgwcd/sgwud
  • PGW: open5gs-amfd/upfd
  • HSS: pyhss
  • IMS: kamailio as p-cscf, i-cscf, s-cscf
  • PBX: asterisk
  • dns: dnsmasq to offer dns overrides
  • redis: pyhss internal communication
  • mariadb: pyhss & kamailio persistent db
  • pyhss-cli: a simple cli to manage pyhss subscribers

The VM network setup is:

  • first interface: dhcp client. This interface will be used to nat UE traffic and for the VM iteself.
  • second interface: RAN interface, to connect a eNodeB (static addresses, no dhcp)

If you've a good SDR and GPSDO available, you can also use srsRAN to create a eNodeB.

This project was funded through the NGI0 Core Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101092990.

links

social