To get started with CoLTE, you’ll need the following items:
- A computer to run CoLTE. This can be a server, desktop, laptop, or even a smaller platform like the Zotac. Most Linux machines will work fine. Please note that we have not tested CoLTE on 32-bit architectures, and explicitly do not currently support ARM-based architectures such as RaspberryPis.
- An eNodeB – this can be either a commercial product, or a computer with an SDR.
- A cell phone that supports LTE on the exact band that your eNodeB uses.
- A SIM card that you know the KI and OPC for. For more information about SIM cards, see our post here.
- Knowledge of your local laws regarding spectrum usage.
Installing and Running CoLTE
For the EPC, we currently only support Debian-Stretch (Ubuntu 18.04 coming soon!). The installation process *should* work fine with an existing copy of the OS, but for best results, start with a fresh installation. Next, go to our GitHub repository here and follow the instructions to download, configure, install, and run the codebase. Please read the instructions carefully! There is nothing unimportant or redundant in the readme file. Note that this may take a while (~30 minutes or so) depending on your download speeds.
Connecting your eNodeB
Once the EPC’s running, you’ll have to connect the eNodeB to it. To do so, you’ll need to figure out how to configure your eNodeB – depending on the platform, this could be as simple as changing srsLTE or oaisim’s conf file, or as convoluted as SSH’ing into the machine or accessing it via a WebGUI. The key points you’ll want to cover include the following:
- Setting the MME address to the downstream address of your EPC.
- Setting the PLMN (MCC and MNC) to your network’s PLMN.
- Setting the MME hostname to “mme.OpenAir5G.Alliance”
Depending on the specific eNodeB, you might have to do more work or change some additional settings, but once things are configured properly, you should see the eNodeB reach out and establish a connection with the EPC (specifically the MME). This will be a S1AP connection over SCTP, and you should be able to see the initial handshake (as well as keepalive messages sent every 30 seconds or so) using Wireshark.
Connecting your Phone
Once the EPC’s running and the eNodeB connects to it, you’re almost there! All that remains is to add the SIM’s information to the database, and then insert the SIM into the phone. If you already put the SIM into the phone and it’s just hanging out in Emergency mode and not connecting, try cycling Airplane mode on and off and/or restarting the phone.
To add a SIM to the HSS database, you’ll first need to figure out its values for the following fields: IMSI, MSISDN, KI, and OPC. Once you have these for a SIM, you can add it to the database using the following python script:
$COLTE/epc/spencer_scripts/add_sim.py $IMSI $MSISDN $KI $OPC