Program SIM Cards
Before deploying a LTE network, you need a SIM Cards. There are several ways to programm the SIM card. Either you program it yourself using the available softwares or through a thrid party service. Three elements are needed:
- Programmable USIM card with Milenage support
- Buy blank USim cards
- Gemalto
- Sysmocom (http://shop.sysmocom.de/products/sysmousim-gr1 , http://shop.sysmocom.de/products/sysmousim-sjs1)
- Aliexpress serach for blank USIM cards
- Open Cells: open-cells.com
- Thrid party provider: Smartjac (http://smartjac.com/ and http://www.smartjac.biz/webstore/telecom/test-sim-cards/4g-usim-card-incl-nfc-2ff-3ff).
- Test sim cards:
- Buy blank USim cards
- Card Reader/programmer hardware
- Gemalto IDBridge K3000, K50, or K30 (http://www.gemalto.com/readers/tokens) USB token
- Other hardware platforms: http://pcsclite.alioth.debian.org/ccid/supported.html
- open-cells.com reader
- SIM programmer software
- Trial version of Gemalto http://www.gemalto.com/Products/card_admin/index.html
- PySIM, PCSCd, Pyscard (see http://sourceforge.net/p/openlte/wiki/Programming%20you%20own%20USIM%20card/ and https://wush.net/trac/rangepublic/wiki/ProgrammingSIMcards)
sudo apt-get install pcscd pcsc-tools libccid( you should be able to scan the card usingsudo pcsc_scan)- download https://sourceforge.net/projects/pyscard/files/pyscard, and install
using
sudo python setup.py build_ext install - PySIM:
git clone git://git.osmocom.org/pysim pysimand then read the card in thepysimdirectory using./pySim-read.py
- SIM Card Programming issues with pysim
- See https://lists.eurecom.fr/sympa/arc/openair5g-user/2016-01/msg00010.html for more details
- open-cells.com open source SW: open-cells.com
Other Links:
- http://secinfo.msi.unilim.fr/opal/
- https://wiki.thc.org/gsm/simtoolkit
- http://www.ru.nl/ds/research/smartcards/
- http://sourceforge.net/projects/gpj/
- http://www.openscdp.org/
There ar a lot of software to read the SIM cards:
You may also need multiformat SIM card with the SIM card adaptors to switch from nano, micro, and standard format.
Information Needed to program the SIM card
Here is the information you need to programm your SIM cards for OAI (subject to future changes in keys).
Below is the example for Eurecom:
- Algorithm: Milenage
- Ki: 8BAF473F2F8FD09487CCCBD7097C6862 (could be changed on per UE basis with the corresponding changes in HSS)
- OP: 11111111111111111111111111111111
- C1:00, C2: 01, C3: 02, C4: 04, C5: 08, R1: 40, R2: 00, R3: 20, R4: 40, R5: 60 all in hexa.
- SPN (service provider Name): OpenAirInterface
- MCC: 208 (FR)
- MNC: 93 (new MNO MNC)
- IMSI: 208930000000001 (MCC|MNC|id), where id is incremented. Note that here the PLMN (20893) is 5 digit, which is why the id 10 digits. Otherwise, for 6 digit PLMN, you only have 9 digit for id.
- SQN (Sequence number): 000000000001 (this is different from the IMSI)
Notes:
- Set the SIM card in normal operation mode
- HSS needs to be prorammed for each UE SIM
- The above information only pertains for the data communication. If you
want to set the SIM card for voice connection, you need also to
- MSISDN
- IMPI
- IMPU
- Domain
- P-CSCF
Tested LTE UE Devices and SIM Cards
Dongle
- Huawei E398u-1 LTE FDD 900/1800/2100/2600 Mhz (http://www.4gltemall.com/huawei-e398-4g-lte-tdd-fdd-100mbps-usb-surfstick.html)
- Huawei E3276s-861 LTE TDD/FDD Dual Mode (http://www.store4g.com/huawei-e3276/)
- HUAWEI E392u-22 LTE TDD/FDD Dual Mode (http://www.4gltemall.com/huawei-e392-4g-lte-multi-mode-data-card.html)
- Dongle Bandrich C50 (http://www.4gltemall.com/bandluxe-c500-compact-lte-usb-modem.html)
SIM Cards
- Upteq
- LinqUs
- Gemalto legacy
Others that should works
- Qipso
- Non-Gemalto
Smartphone
You need to enter to the hidden menu, and select LTE-only mode.
- NEXUS 4: hiddle code:
*#*#4636#*#*. Then phone information, and select LTE_ONLY. - LG NEXUS 5, Hidden code:
#*#4636#*#. Then phone information, and select LTE_ONLY. - Galaxy S V, hidden code:
*#0011#. Then select back, input Q and press ok, then input 0000 and then ok. Then wait for 5 seconds.- LTE Only Mode:
- UE Setting --> Setting --> Protocol --> NAS --> Network Control --> Band Selection --> LTE Band Preference --> LTE-ALL (or your preferred band).
- UE Setting --> Setting --> Protocol --> NAS --> Network Control --> Pref Mod Set --> LTE_ONLY.
- UE Setting --> Setting --> Protocol --> NAS --> Network Control --> Service Domain --> PS ONLY.
- LTE Rel 10:
- UE Setting --> Setting --> Protocol --> AS --> Release Version --> LTE 3GPP REL/CA Control. Then enable LTE 3GPP Rel10 and CA enabled.
- Both cases require phone reboot for changes to take effect.
- LTE Only Mode:
- Other tested Smartphones: Samsung Galaxy 4, 5, 6, Note 4, Nexus 4, 5, and 6, iPhone 5, Sony Experia M4.
- IPAD Air
- Samsung Galaxy S6 Edge, You can set the band 5 or band 7 by doing *#2263#. Then go to 'Band Selection' and select LTE_ALL or LTE_ where is the correct band. Here is the link, https://www.youtube.com/watch?v=N0xWhf-kVMc
NOTE: Samsung begun SIM locking in recent smartphones, see this link. To avoid problems, you need to program your SIM cards with the MCC and MNC to the home region of the smarphone.
Known Issue (UE cannot browse Internet even though it is connected)
Sometimes, the UE can not browse the internet if the MTU of its LTE interface is higher than 1428. OAI EPC is transmitting a message at some point indicating the mtu size the UE should use for this interface, but some UEs ignore it and use 1500 mtu (that does not work). From my tests:
- Moto G 4G Android 4.4.4 : ok
- Samsung GS5 Android 5.0.1 : mtu 1500, does not work out of the box, need root to set mtu.
- Samsung GS6 Android 5.0.1 : same as GS5, needs root.
- Sony Xperia Z2 tablet Android 4.4.4 : mtu 1500, needs root. Android 5.0.1: mtu 1500, needs root. Android 6.0 : mtu 1428, ok.
- Huawei e392 : mtu 1500 on windows or linux, can be fixed with sudo ifconfig wwan0 mtu 1428 and another specific command on windows.
On Android, the interface is usually called rmnet0 or rmnet_data0. On some phone it shows up with "netcfg", on some with "ifconfig", on some you need to be root to list the interface and see the parameters. It is accessible (cat to see, or echo (a priori needs root to work) to set the value) in /sys/class/net/interfacename/mtu
Known Issue: Sometimes the phone will not want to connect to OAI.
Try to avoid phones bought from a certain carrier. They have a wrapper that will block other networks, for example OAI. Here is another solution, but try at your own risk, https://lists.eurecom.fr/sympa/arc/openair5g-user/2016-06/msg00076.html
Known Issue: Sometimes phone would not want to scan a supported band
Follow this article but at your own risk, http://forum.xda-developers.com/galaxy-s5/general/how-to-add-rf-lte-frequency-bands-to-t2886059