Commit 18acadb0 authored by Thomas Gambier's avatar Thomas Gambier 🚴🏼

Amarisoft 2021-03-17 config for MME

parent 6590676c
ims.default.cfg
\ No newline at end of file
/* lteims configuration file
* version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
{
//log_options: "all.level=debug,all.max_size=32",
log_options: "all.level=error,sip.level=debug,sip.max_size=1,ims.level=debug,rx.level=debug,rx.max_size=1,cx.level=debug,cx.max_size=1",
log_filename: "/tmp/ims.log",
/* SIP bind address */
sip_addr: [
{addr: "192.168.4.1", bind_addr: "192.168.4.1", port_min: 10000, port_max: 20000},
"2001:468:3000:1::",
{addr: "192.168.5.1", bind_addr: "192.168.5.1", port_min: 10000, port_max: 20000},
"2001:468:4000:1::"
],
mms_server_bind_addr: "192.168.3.1:1111",
/* MME connection for SMS over SG */
sctp_addr: "127.0.0.1",
/* Cx connection */
cx_server_addr: "127.0.1.100",
cx_bind_addr: "127.0.0.1",
/* Rx connection */
rx_server_addr: "127.0.1.100",
/* Remote API */
com_addr: "0.0.0.0:9003",
/* Global domain name (May be overriden for each user) */
domain: "amarisoft.com",
/* user data base */
include "ue_db-ims.cfg",
/* Echo phone number */
echo: [
"tel:666",
"tel:+666",
{impu: "tel:404", code: 404}, /* 404 test */
{impu: "urn:service:sos", anonymous: true, authentication: false}, /* Emergency call */
],
/* Delay */
//sms_expires: 86400,
//binding_expires: 3600,
precondition: true, /* true: 3GPP mode, false: IETF mode */
"100rel": true,
/* IPSec */
ipsec_aalg_list: ["hmac-md5-96", "hmac-sha-1-96"],
ipsec_ealg_list: ["null", "aes-cbc", "des-cbc", "des-ede3-cbc"],
mt_call_sdp_file: "mt_call_qos.sdp",
ue_db_filename: "lte_ue_ims.db",
}
#!/bin/sh
ifname="$1" # Interface name
index="$2" # Network index (PDN index)
apn="$3" # Access point name
type="$4" # ipv4 or ipv6
if [ "$type" = "ipv4" ] ; then
ifaddr="$5" # Interface address
addr1="$6" # First IP address
addr2="$7" # Last IP address
mask="$8" # Mask
#echo "*** Configuring IPv4 pdn '$apn' on ${ifname}, $ifaddr/$mask"
# Configure interface
ifconfig ${ifname} ${ifaddr}/${mask} up
ipt=$(iptables -S | grep "\-A INPUT \-i ${ifname} \-j ACCEPT")
if [ "$ipt" = "" ] ; then
iptables -I INPUT -i ${ifname} -j ACCEPT
fi
else
ll="$5" # ipv6 link local address
addr0="$6" # Interface ipv6 address
addr1="$7" # first ipv6 prefix
addr2="$8" # last ipv6 prefix
mask="$9" # Mask
#echo "*** Configuring IPv6 pdn '$apn' on ${ifname}, $addr0/$mask"
# Add link local address
ifconfig ${ifname} inet6 add ${addr0}/${mask} up
# Add route for all prefixes
ip -6 route add ${addr1}/${mask} dev ${ifname}
ipt=$(ip6tables -S | grep "\-A INPUT \-i ${ifname} \-j ACCEPT")
if [ "$ipt" = "" ] ; then
ip6tables -I INPUT -i ${ifname} -j ACCEPT
fi
fi
/* ltemme configuration file for ims
* version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
{
/* Log filter: syntax: layer.field=value[,...]
Possible layers are nas, ip, s1ap, gtpu and all. The 'all' layer
is used to address all the layers at the same time.
field values:
- 'level': the log level of each layer can be set to 'none',
'error', 'info' or 'debug'. Use 'debug' to log all the messages.
- 'max_size': set the maximum size of the hex dump. 0 means no
hex dump. -1 means no limit.
*/
//log_options: "all.level=debug,all.max_size=32",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,ngap.level=debug,ngap.max_size=1,rx.level=debug,rx.max_size=1,cx.level=debug,cx.max_size=1",
log_filename: "/tmp/mme.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9000",
/* bind address for GTP-U. Normally = address of the PC, here bound
on local interface to be able to run ltemme on the same PC as
lteenb. By default, the S1AP SCTP connection is bound on the same
address. */
gtp_addr: "127.0.1.100",
plmn: "00101",
mme_group_id: 32769,
mme_code: 1,
ims_vops: true, /* IMS supported */
//emc_bs: true, /* emergency calls supported */
//emc: 1, /* NR connected to 5GCN emergency calls supported */
emergency_number_list: [
/* Category bits: (Table 10.5.135d/3GPP TS 24.008)
Bit 1 Police
Bit 2 Ambulance
Bit 3 Fire Brigade
Bit 4 Marine Guard
Bit 5 Mountain Rescue
*/
{ category: 0x1f, digits: "911" },
{ category: 0x1f, digits: "112" },
],
rx: {
qci: {audio: 1, video: 2},
},
/* network name and network short name sent in the EMM information
message to the UE */
network_name: "Amarisoft Network",
network_short_name: "Amarisoft",
/* Control Plane Cellular IoT EPS optimization support */
cp_ciot_opt: true,
/* DCNR support */
nr_support: true,
eps_5gs_interworking: "with_n26",
/* 15 bearers support */
fifteen_bearers: false,
ims_list: [{ims_addr: "127.0.0.1", bind_addr: "127.0.0.2"}],
/* AMF slices configuration */
/*nssai: [
{
sst: 1,
},
{
sst: 2,
},
{
sst: 3,
sd: 50,
}
],*/
/* Public Data Networks. The first one is the default. */
pdn_list: [
{
pdn_type: "ipv4",
access_point_name: "default",
first_ip_addr: "192.168.2.2",
last_ip_addr: "192.168.2.254",
ip_addr_shift: 2, /* difference between allocated IP addresses is 4 */
dns_addr: "8.8.8.8", /* Google DNS address */
erabs: [
{
qci: 9,
priority_level: 15,
pre_emption_capability: "shall_not_trigger_pre_emption",
pre_emption_vulnerability: "not_pre_emptable",
},
],
},
{
pdn_type: "ipv4",
access_point_name: "internet",
first_ip_addr: "192.168.3.2",
last_ip_addr: "192.168.3.254",
ip_addr_shift: 2, /* difference between allocated IP addresses is 4 */
dns_addr: "8.8.8.8", /* Google DNS address */
/* IPv6 sample config
pdn_type: "ipv4v6",
first_ipv6_prefix: "2001:468:2000:1::",
last_ipv6_prefix: "2001:468:2000:ffff::",
dns_addr: ["8.8.8.8", "2001:4860:4860::8888"], // Google IPv6 DNS address
*/
erabs: [
{
qci: 9,
priority_level: 15,
pre_emption_capability: "shall_not_trigger_pre_emption",
pre_emption_vulnerability: "not_pre_emptable",
},
],
/*slices: [
{
snssai: {
sst: 1,
},
qos_flows: [
{
"5qi": 6,
priority_level: 9,
pre_emption_capability: "shall_not_trigger_pre_emption",
pre_emption_vulnerability: "not_pre_emptable",
},
],
},
{
snssai: {
sst: 3,
sd: 50,
},
qos_flows: [
{
"5qi": 7,
priority_level: 8,
pre_emption_capability: "shall_not_trigger_pre_emption",
pre_emption_vulnerability: "not_pre_emptable",
},
],
}
],*/
},
{
access_point_name: "ims",
pdn_type: "ipv4v6",
first_ip_addr: "192.168.4.2",
last_ip_addr: "192.168.4.254",
ip_addr_shift: 2, /* difference between allocated IP addresses is 4 */
first_ipv6_prefix: "2001:468:3000:1::",
last_ipv6_prefix: "2001:468:3000:ffff::",
p_cscf_addr: ["192.168.4.1", "2001:468:3000:1::"],
dns_addr: ["8.8.8.8", "2001:4860:4860::8888"], // Google IPv6 DNS address
erabs: [
{
qci: 5,
priority_level: 15,
pre_emption_capability: "shall_not_trigger_pre_emption",
pre_emption_vulnerability: "not_pre_emptable",
},
], /* erabs */
},
{
access_point_name: "sos",
emergency: true,
pdn_type: "ipv4v6",
first_ip_addr: "192.168.5.2",
last_ip_addr: "192.168.5.254",
ip_addr_shift: 2, /* difference between allocated IP addresses is 4 */
first_ipv6_prefix: "2001:468:4000:1::",
last_ipv6_prefix: "2001:468:4000:ffff::",
p_cscf_addr: ["192.168.5.1", "2001:468:4000:1::"],
dns_addr: ["8.8.8.8", "2001:4860:4860::8888"], // Google IPv6 DNS address
erabs: [
{
qci: 5,
priority_level: 15,
pre_emption_capability: "shall_not_trigger_pre_emption",
pre_emption_vulnerability: "not_pre_emptable",
},
], /* erabs */
}
],
/* Setup script for the network interface.
If no script is given, no network interface is created.
Script is called for each PDN with following parameters:
1) Interface name
2) PDN index
3) Access Point Name
4) IP version: 'ipv4' or 'ipv6'
5) IP address: first IP address for ipv4 and link local address for IPv6
6) First IP address
7) Last IP address
*/
tun_setup_script: "mme-ifup",
/* NAS ciphering algorithm preference. EEA0 is always the last. */
nas_cipher_algo_pref: [ ],
/* NAS integrity algorithm preference. EIA0 is always the last. */
nas_integ_algo_pref: [ 2, 1 ],
/* user data base */
include "ue_db-ims.cfg",
/* persistent user database */
//ue_db_filename: "lte_ue.db",
}
mme.default.cfg
\ No newline at end of file
/* ltemme configuration file
* version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
{
/* Log filter: syntax: layer.field=value[,...]
Possible layers are nas, ip, s1ap, gtpu and all. The 'all' layer
is used to address all the layers at the same time.
field values:
- 'level': the log level of each layer can be set to 'none',
'error', 'info' or 'debug'. Use 'debug' to log all the messages.
- 'max_size': set the maximum size of the hex dump. 0 means no
hex dump. -1 means no limit.
*/
//log_options: "all.level=debug,all.max_size=32",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,ngap.level=debug,ngap.max_size=1",
log_filename: "/tmp/mme.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9000",
/* bind address for GTP-U. Normally = address of the PC, here bound
on local interface to be able to run ltemme on the same PC as
lteenb. By default, the S1AP SCTP connection is bound on the same
address. */
gtp_addr: "127.0.1.100",
plmn: "00101",
mme_group_id: 32769,
mme_code: 1,
/* network name and network short name sent in the EMM information
message to the UE */
network_name: "Amarisoft Network",
network_short_name: "Amarisoft",
/* Control Plane Cellular IoT EPS optimization support */
cp_ciot_opt: true,
/* DCNR support */
nr_support: true,
eps_5gs_interworking: "with_n26",
/* 15 bearers support */
fifteen_bearers: false,
/* AMF slices configuration */
/*nssai: [
{
sst: 1,
},
/*{
sst: 2,
},
{
sst: 3,
sd: 50,
}
],*/
/* Public Data Networks. The first one is the default. */
pdn_list: [
{
pdn_type: "ipv4",
access_point_name: "test123",
first_ip_addr: "192.168.3.2",
last_ip_addr: "192.168.3.254",
ip_addr_shift: 2, /* difference between allocated IP addresses is 4 */
dns_addr: "8.8.8.8", /* Google DNS address */
/* IPv6 sample config
pdn_type: "ipv4v6",
first_ipv6_prefix: "2001:468:3000:1::",
last_ipv6_prefix: "2001:468:3000:ffff::",
dns_addr: ["8.8.8.8", "2001:4860:4860::8888"], // Google IPv6 DNS address
*/
erabs: [
{
qci: 9,
priority_level: 15,
pre_emption_capability: "shall_not_trigger_pre_emption",
pre_emption_vulnerability: "not_pre_emptable",
},
],
},
{
/* Some UE requires a specific PDN for data access */
pdn_type: "ipv4",
access_point_name: "internet",
first_ip_addr: "192.168.4.2",
last_ip_addr: "192.168.4.254",
ip_addr_shift: 2,
dns_addr: "8.8.8.8", /* Google DNS address */
erabs: [
{
qci: 9,
priority_level: 15,
pre_emption_capability: "shall_not_trigger_pre_emption",
pre_emption_vulnerability: "not_pre_emptable",
},
],
/*slices: [
{
snssai: {
sst: 1,
},
qos_flows: [
{
"5qi": 6,
priority_level: 9,
pre_emption_capability: "shall_not_trigger_pre_emption",
pre_emption_vulnerability: "not_pre_emptable",
},
],
},
{
snssai: {
sst: 3,
sd: 50,
},
qos_flows: [
{
"5qi": 7,
priority_level: 8,
pre_emption_capability: "shall_not_trigger_pre_emption",
pre_emption_vulnerability: "not_pre_emptable",
},
],
}
],*/
},
],
/* Setup script for the network interface.
If no script is given, no network interface is created.
Script is called for each PDN with following parameters:
1) Interface name
2) PDN index
3) Access Point Name
4) IP version: 'ipv4' or 'ipv6'
5) IP address: first IP address for ipv4 and link local address for IPv6
6) First IP address
7) Last IP address
*/
tun_setup_script: "mme-ifup",
/* NAS ciphering algorithm preference. EEA0 is always the last. */
nas_cipher_algo_pref: [ ],
/* NAS integrity algorithm preference. EIA0 is always the last. */
nas_integ_algo_pref: [ 2, 1 ],
/* user data base */
ue_db: [
{
sim_algo: "xor", /* USIM authentication algorithm: xor, milenage or tuak */
imsi: "001010123456789", /* Anritsu Test USIM */
// imsi: "001012345678901", /* Agilent or R&S Test USIM */
amf: 0x9001, /* Authentication Management Field */
sqn: "000000000000", /* Sequence Number */
K: "00112233445566778899aabbccddeeff", /* Anritsu Test USIM */
// K: "4147494C454E5420544543484E4F0000", /* Agilent Test USIM */
// K: "000102030405060708090A0B0C0D0E0F", /* R&S Test USIM */
/* if true, allow several UEs to have the same IMSI (useful
with test SIM cards). They are distinguished with their
IMEI. default = false. */
multi_sim: true,
},
/* Add new entries for each IMSI/K */
],
/* persistent user database */
//ue_db_filename: "lte_ue.db",
}
v=0
o=Amarisoft-IMS 0 0 IN IP4 0.0.0.0
s=Amarisoft-IMS
c=IN IP4 0.0.0.0
t=0 0
m=audio 10000 RTP/AVP 116
c=IN IP4 0.0.0.0
b=AS:41
b=RR:0
b=RS:0
a=rtpmap:116 AMR-WB/16000/1
a=fmtp:116 mode-change-capability=2; max-red=0
a=ptime:20
a=maxptime:220
a=sendrecv
v=0
o=Amarisoft-IMS 0 0 IN IP4 0.0.0.0
s=Amarisoft-IMS
c=IN IP4 0.0.0.0
t=0 0
m=audio 10000 RTP/AVP 116
c=IN IP4 0.0.0.0
b=AS:41
b=RR:0
b=RS:0
a=rtpmap:116 AMR-WB/16000/1
a=fmtp:116 mode-change-capability=2; max-red=0
a=curr:qos local none
a=curr:qos remote none
a=des:qos mandatory local sendrecv
a=des:qos mandatory remote sendrecv
a=ptime:20
a=maxptime:220
a=sendrecv
v=0
o=Amarisoft-IMS 0 0 IN IP4 0.0.0.0
s=Amarisoft-IMS
c=IN IP4 0.0.0.0
t=0 0
a=group:LS 2 1
a=3gpp_sync_info:Sync
m=audio 10000 RTP/AVP 100
c=IN IP4 0.0.0.0
b=AS:41
b=RR:0
b=RS:0
a=rtpmap:100 AMR/8000/1
a=fmtp:100 mode-change-capability=2; octet-align=1; max-red=220
a=curr:qos local none
a=curr:qos remote none
a=des:qos mandatory local sendrecv
a=des:qos mandatory remote sendrecv
a=ptime:20
a=maxptime:240
a=mid:1
a=sendrecv
m=video 10002 RTP/AVP 103 104 105 106
c=IN IP4 0.0.0.0
b=AS:5210
b=RR:0
b=RS:0
a=rtpmap:103 H264/90000
a=fmtp:103 profile-level-id=42400c; packetization-mode=1
a=framesize:103 352-288
a=rtpmap:104 H264/90000
a=fmtp:104 profile-level-id=42401f; packetization-mode=1
a=framesize:104 1280-720
a=rtpmap:105 H264/90000
a=fmtp:105 profile-level-id=42400c; packetization-mode=0
a=framesize:105 352-288
a=rtpmap:106 H264/90000
a=fmtp:106 profile-level-id=42401f; packetization-mode=0
a=framesize:106 1280-720
a=tcap:1 RTP/AVPF
a=curr:qos local none
a=curr:qos remote none
a=des:qos mandatory local sendrecv
a=des:qos mandatory remote sendrecv
a=ptime:33
a=maxptime:250
a=acap:1 rtcp-fb:* trr-int 0
a=acap:2 rtcp-fb:* nack
a=acap:3 rtcp-fb:* nack pli
a=acap:4 rtcp-fb:* ccm fir
a=acap:5 rtcp-fb:* ccm tmmbr
a=mid:2
a=pcfg:1 t=1 a=1,2,3,4,5
a=extmap:5 urn:3gpp:video-orientation
a=sendrecv
ue_db: [{
sim_algo: "xor", /* USIM authentication algorithm: xor, milenage or tuak */
imsi: "001010123456789", /* Anritsu Test USIM */
// imsi: "001012345678901", /* Agilent or R&S Test USIM */
amf: 0x9001, /* Authentication Management Field */
sqn: "000000000000", /* Sequence Number */
K: "00112233445566778899aabbccddeeff", /* Anritsu Test USIM */
// K: "4147494C454E5420544543484E4F0000", /* Agilent Test USIM */
// K: "000102030405060708090A0B0C0D0E0F", /* R&S Test USIM */
impi: "001010123456789@ims.mnc001.mcc001.3gppnetwork.org",
impu: ["001010123456789", "tel:0600000000", "tel:600"],
domain: "ims.mnc001.mcc001.3gppnetwork.org",
multi_sim: true, /* Experimental */
/* For standard SIP client */
/*pwd: "amarisoft",
authent_type: "MD5",*/
}, {
sim_algo: "milenage",
imsi: "001010000000001",
opc: "000102030405060708090A0B0C0D0E0F",
amf: 0x9001,
sqn: "000000000000",
K: "00112233445566778899AABBCCDDEEFF",
impu: ["sip:impu01", "tel:0600000001"],
impi: "impi01@amarisoft.com",
}, {
sim_algo: "milenage",
imsi: "001010000000002",
opc: "000102030405060708090A0B0C0D0E0F",
amf: 0x9001,
sqn: "000000000000",
K: "00112233445566778899AABBCCDDEEFF",
impu: ["sip:impu02", "tel:0600000002"],
impi: "impi02@amarisoft.com",
}, {
sim_algo: "milenage",
imsi: "001010000000003",
opc: "000102030405060708090A0B0C0D0E0F",
amf: 0x9001,
sqn: "000000000000",
K: "00112233445566778899AABBCCDDEEFF",
impu: ["sip:impu03", "tel:0600000003"],
impi: "impi03@amarisoft.com",
}, {
sim_algo: "milenage",
imsi: "001010000000004",
opc: "000102030405060708090A0B0C0D0E0F",
amf: 0x9001,
sqn: "000000000000",
K: "00112233445566778899AABBCCDDEEFF",
impu: "impu04",
impi: "impi04@amarisoft.com",
}, {
sim_algo: "milenage",
imsi: "001010000000005",
opc: "000102030405060708090A0B0C0D0E0F",
amf: 0x9001,
sqn: "000000000000",
K: "00112233445566778899AABBCCDDEEFF",
impu: "impu05",
impi: "impi05@amarisoft.com",
}, {
sim_algo: "milenage",
imsi: "001010000000006",
opc: "000102030405060708090A0B0C0D0E0F",
amf: 0x9001,
sqn: "000000000000",
K: "00112233445566778899AABBCCDDEEFF",
impu: "impu06",
impi: "impi06@amarisoft.com",
}, {
sim_algo: "milenage",
imsi: "001010000000007",
opc: "000102030405060708090A0B0C0D0E0F",
amf: 0x9001,
sqn: "000000000000",
K: "00112233445566778899AABBCCDDEEFF",
impu: "impu07",
impi: "impi07@amarisoft.com",
}, {
sim_algo: "milenage",
imsi: "001010000000008",
opc: "000102030405060708090A0B0C0D0E0F",
amf: 0x9001,
sqn: "000000000000",
K: "00112233445566778899AABBCCDDEEFF",
impu: "impu08",
impi: "impi08@amarisoft.com",
}, {
sim_algo: "milenage",
imsi: "001010000000009",
opc: "000102030405060708090A0B0C0D0E0F",
amf: 0x9001,
sqn: "000000000000",
K: "00112233445566778899AABBCCDDEEFF",
impu: "impu09",
impi: "impi09@amarisoft.com",
}, {
sim_algo: "milenage",
imsi: "001010000000010",
opc: "000102030405060708090A0B0C0D0E0F",
amf: 0x9001,
sqn: "000000000000",
K: "00112233445566778899AABBCCDDEEFF",
impu: "impu10",
impi: "impi10@amarisoft.com",
}]
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment