Contents
Data Network +IMS (without GMSC)
In this guide I present how to set up Data Network for IMS support in YateMMI step by step. Also I’m comparing IMS without GMSC to the one with GMSC.
The IPs / GTs / MSISDNs and any other resources are internal conventions and don’t map to real settings in any way for this MCC/MNC operator.
Before setting up everything in YateMMI, I write an IP plan and a Network Plan. Then, I install the YateMMI and Yate Products, I setup Baicell, followed finally by the YateMMI set-up. Following every step in this order:
1. IP Plan
2. Network Plan (ports, GTs, PCs)
IP Plan
I can configure various interfaces on Virtual Machines using VLAN or IP Aliases. I usually prefer the method with IP Aliases, as I will present below.
I need to create multiple interfaces due to the fact that GTP does not accept to change ports, this is done when having both PGW and SGSN on same server.
| Network | Broadcast | Gateway | Interface | Address | Role | Protocols | Equipment | Services |
|---|---|---|---|---|---|---|---|---|
| 10.101.99.165/16 | 10.101.255.255 | 10.101.0.1 | enp0s3 | 10.101.66.72 | SSH,MGMT | HTTP,SSH,Zabbix, HSS clustering | YateDRA/YateUCN/ YateHSS | |
| 10.1.0.0/16 | 10.1.255.255 | enp0s3:1 | 10.1.66.72 | Internal communication | SCTP | YateSTP/YateDRA/ YateSMSC/YateUCN/ YateHSS | ||
| 10.30.0.0/16* | 10.30.255.255* | enp0s3:30* | 10.30.66.72* | SGi* | YateUCN* | data* | ||
| 10.25.0.0/16 | 10.25.255.255 | enp0s3:25 | 10.25.66.72 | PGW S5 | YateUCN | data | ||
| 10.35.0.0/16 | 10.35.255.255 | enp0s3:35 | 10.35.66.72 | PGW S8 | GTP-c/GTP-u | YateUCN | data | |
| 10.37.0.0/16** | 10.37.255.255** | enp0s3:37** | 10.37.66.72** | RAN**/SMPP Other services | YateUCN**/YateSMSC | SMS | ||
| 100.80.0.0/16 | tun-pdn | 100.80.0.1 | tunnel | YateUCN | ||||
| 100.70.0.0/16 | tun-ims | 100.70.0.1 | tunnel | YateUCN | ||||
| subscribers IP range: 100.80.0.2 - 100.80.255.254 | ||||||||
| ims: 100.70.0.3 - 100.70.255.254 | ||||||||
* I use it when building a network but I didn’t need it for my tests.
** This is the recommended option but in my tests I use the MGMT IP (10.101.66.72) for RAN.
Notes:
I wrote a full guide of how to generate multiple interfaces using aliases, access it from this link: Multiple interfaces using aliases.
Network Plan (ports, GTs, PCs)
| Operator Name | Test operator |
| MCC | 232 |
| MNC | 03 |
| CC | 43 |
| NDC (National Destination Code) | 3323 |
| E.214 MGT (CC+NDC) | 433323 |
| MSISDN | 4333230000 – 4333230999 |
| SS7 international PC | 5162-5166 |
| Declared GT (global title) | 4333231000 – 4333231009 |
| IMSIs | 232030001000 – 232030009999 |
| Declared APN | internet.t-mobile.at (just an example for test) because this is the apn defined in the carrier bundle for this MCC/MCN |
PC
| Equipment | PC |
| YateSTP | 5001 – 5010 |
| YateHSS | 5011 |
| YateUCN | 5012 |
| YateSMSC | 5013 |
GT
| Equipment | GT |
| YateSTP | – |
| YateHSS | 4333231001 |
| YateUCN | 4333231002 |
| YateSMSC | 4333231000 |
| Equipment | SIGTRAN connections |
| YateSTP | 5001-5010 |
| YateHSS | 10.101.99.165:5011 |
| YateUCN | 10.101.99.165:5012 |
| YateSMSC | 10.101.99.165:5013 |
| Equipment | Ports |
| YateDRA | 8890 |
| YateHSS | 8891 |
| YateUCN | 8892 |
| Listener | Ports |
| VLR SIP ran | 5061 |
| P-CCF secured | 5062 |
*In comparison to Data Network IMS (with GMSC), for this set up I don’t need a SIP GMSC port in the SIP UCN table above.
Install YateMMI and products
After creating the IP plan and the Network plan, I start installing YateMMI and the Yate products I need.
Setup Baicell
For the next step I set-up the Baicell according to my configurations.
YateMMI Setup
After all the preparations are done, I start adding all the info in YateMMI.
When I set up YateMMI, I carefully check that I pass through all the necessary steps:
- 1. Network Settings
- 2. Editing Network Settings
- 3. Equipment / Core
- 4. Profile Management
- 5. Subscriber Management
Network Settings
General:
MCC, MNC,CC,NDC based on known network info
MSISDN prefixes: 433323 (based on declared values)
SS7, Diameter and IMS support are enabled
SS7 step:
Dialect: ANSI
Netindicator: international
Connection type: M2PA
GT prefixes: 4333231 (based on declared values)
SMSC GT: 4333231000 (based on declared values)
DIAMETER step:
For the Diameter step, I check if the suggested values for Diameter Realms and IMS Domain are based on MCC and MNC.
APNs step:
- add internet.t-mobile.at APN
- IP version – iPv4v6
- QoS true
- Primary DNS IPv4 – 192.168.168.1 (this is used by our team for tests, in production usually the APNs Primary DNS IPv4 is 8.8.8.8)
- Aliases – internet.apn.epc.mnc003.mcc232.3gppnetwork.org
- QCI – 9
- GGSN/PGW Address (for S8 interface) – 10.35.66.72 (the IP used to build S8 interface in UCN1)
- add IMS APN
- IP version – iPv4v6
- QoS true
- P-CSCF IPv4 100.70.0.2 (IP of the P-CSCF listener)
- IMS Subsystem: checked
- GGSN/PGW Address (for S8 interface) 10.35.66.72 (the IP used to build S8 interface in UCN1)
Notes:
If I want to use IMS I have to configure a set of parameters for YateUCN/YateUCN5G. Check my guide guide for setting up IMS here.
Edit Network Settings
Node Params > YateUCN
- I make sure to configure the parameters as follows:
- MME features ->default suggested value (Advertise IMS support is mandatory to be included for IMS setup)
- Combined: true (default suggested value)
- Fake CSFB: true (default suggested value)
- Fake CSFB no reg: true (this needs to be manually activated and it’s essential for IMS setup)
- PLMN: 23203 (default suggested value)
- LAC: 100 (default suggested value)
Equipment / Core
YateSTP
- Management interface IP* 10.101.66.72
- SS7 step
- Pointcode 5162
- IP 10.1.66.72
YateDRA
- IP 10.101.66.72
- Diameter step
- Identity epc.mnc003.mcc232.3gppnetwork.org/dra1.epc.mnc003.mcc232.3gppnetwork.org – relay
- Listener 10.1.66.72
- Local port 8890
- Transport sctp
- Accept rule – custom regexp – ^epc\.mnc003\.mcc232\.3gppnetwork\.org/
YateHSS
- IP 10.101.66.72
- SS7 step
- Pointcode 5163
- GT 4333231001
- Local IP 10.1.66.72
- Local port 5011
- Remote port 5001
- Diameter step
- YateHSS/HLR Identity epc.mnc003.mcc232.3gppnetwork.org/hss1.epc.mnc003.mcc232.3gppnetwork.org
- Local IP(s)* 10.1.66.72
- Local Port 8891
YateSMSC
- General settings
- IP 10.101.66.72
- Diameter support disable
- SMPP Server & Client support – not configured
- SS7 step
- Pointcode* 5164
- Global title* 4333231000 (this GT should also be set on SIMs)
- Local IP* 10.1.66.72
- Local Port 5013
- Remote Port 5003
YateUCN
- General settings
- Management interface IP* 10.101.66.72
- GMSC support disabled
- GGSN/PGW support enabled
- SS7 step
- Pointcode* 5165
- Global title* 4333231002
- Local IP* 10.1.66.72
- Local Port 5012
- Remote Port 5002
- Diameter step
- YateUCN Identity epc.mnc003.mcc232.3gppnetwork.org/ucn1.epc.mnc003.mcc232.3gppnetwork.org
- Default priority 1
- Default realm 1
(if I don’t set the default priority and realm, diameter connection won’t work) - Local IP(s)* 10.1.66.72
- Local Port 8892
- MME/SGSN step
- NNSF node: 1 (same value as Code from MME identity – in the below section)
- MME configuration – Inherited (default settings set in UCN Node Params from Network Settings)
- Combine attach – Inherited (default settings set in UCN Node Params from Network Settings & Fake CSFB no reg is checked)
- PLMNS: 23203
- TAC: 1
- Group: 1
- Code: 1
- Name (Optional Identity MME Name to be sent to each eNodeB on S1Setup)
- S1AP SCTP -> Local IP: 10.101.66.72
- Local PDN (advanced setting): disabled
(If I want PGW set on same server, I disable ‘Local PDN’ from advanced settings MME step in YateUCN, otherwise PGW will be ignored.)
- VLR/CSCF step
- GW call: none
- Always GMSC: false (as long as I have GMSC support disabled this should be false)
- VLR sip listener
- Role ran
- IPv4 address 10.101.66.72
- Type UDP
- Role RAN
- Port 5070
- P-CSCF listener
- IPv4 address 100.70.0.2 (same as IPv4 Interface in GGSN/PGW step -> Tunnels -> tun-ims)
- Type UDP, TCP
- Secure true
- Secure port 5062
- Generate routing for S-CSCF URIs – inherited (false) – (I set it as true only if I have more than 1 YateUCN in my configuration)
- S-CSCF SIP URI – sip:ucn1.ims.mnc003.mcc232.3gppnetwork.org ( I also set the SIP URI in the IMS Profile as S-CSCF)
- Accounts step ( I’m skipping this part since I don’t have GMSC for this set up)
- GMSC step ( I’m skipping this part since I don’t have GMSC for this set up)
- GGSN/PGW step
- Tunnels
- tun-pdn
- IPv4 Pool 100.80.0.2 – 100.80.255.254
- IPv4 Interface 100.80.0.1/16 (local NAT was used)
- Interface MTU 1400
- tun-ims
- IPv4 Pool 100.70.0.3 – 100.70.255.254
- IPv4 Interface 100.70.0.2/16 (same as IPv4 Interface in VLR/CSCF step -> P-CSCF listener)
- Interface MTU 1400
- tun-pdn
- Tunnels
- GTP step
- S1 GTP interface(s)
- IPv4 GTP-U address 10.101.66.72
- S5 GTP interface(s)
- IPv4 GTP-U address 10.25.66.72
- S8/Gp/Gn GTP
- Name: internal
- IPv4 GTP-U address 10.35.66.72
- S1 GTP interface(s)
- APNs step
- PGW selection (internet.t-mobile.at) – 10.35.66.72 (from My Network/Local S8) – this is the default selection due to APN settings in Network Settings
- PGW selection (IMS) – 10.35.66.72 ( from My Network/Local S8) – this is the default selection due to APN settings in Network Settings
- P-CSCF IPv4 (IMS) 100.70.0.2 (Local P-CSCF)
Profile Management
SIM Profile
- I choose to add default profiles (using ‘Add default profile’ button)
PS Profile
- APN name is the one requested by the Baicell
EPS Profile
- Default EPS Profile: APN name is the one requested by the Baicell
IMS Profile
- Checking Domain and S-CSCF field values
- Ex.:
- Domain: ims.mnc003.mcc232.3gppnetwork.org
- S-CSCF: sip:ucn1.ims.mnc003.mcc232.3gppnetwork.org (same as set in UCN – VLR/CSCF step)
Subscriber Management
SIM
- Import SIMs (I use decrypt key if needed) with SIM Profile – DefaultISIM
- Add MSISDN to each SIM (Ex. 43332300008) with IMSI; ICCI; IMS Profile = DefaultIMS; Active = true; IMPI and IMPU.
- Edit IMPI and IMPU to each SIM
- Ex.
- IMPI – Private Identity : 232030000020008@ims.mnc003.mcc232.3gppnetwork.org
- IMPU – Public Identity : sip:232030000020008@ims.mnc003.mcc232.3gppnetwork.org
- Ex.
The SIM cards I use should also contain information about: IMSI, Domain, IMPI, IMPU, SMSP with SMSC GT.