OsmoMSC> enable
OsmoMSC# configure terminal
OsmoMSC(config)# list
...
  network
  msc
  sgs
  smsc
  mncc-int
  hlr
...

OsmoMSC(config)# network
OsmoMSC(config-net)# list
...
  network country code <1-999>
  mobile network code <0-999>
  short name NAME
  long name NAME
  encryption a5 <0-4> [<0-4>] [<0-4>] [<0-4>] [<0-4>]
  encryption uea <0-2> [<0-2>] [<0-2>]
  authentication (optional|required)
  rrlp mode (none|ms-based|ms-preferred|ass-preferred)
  mm info (0|1)
  timezone <-19-19> (0|15|30|45)
  timezone <-19-19> (0|15|30|45) <0-2>
  no timezone
  call-waiting
  no call-waiting

OsmoMSC(config-net)# encryption?
  encryption  Encryption options
OsmoMSC(config-net)# encryption ?
  a5   GSM A5 Air Interface Encryption.
  uea  UTRAN (3G) encryption algorithms to allow: 0 = UEA0 (no encryption), 1 = UEA1, 2 = UEA2.

OsmoMSC(config-net)# encryption uea ?
  <0-2>  UEAn Algorithm Number
OsmoMSC(config-net)# encryption uea 0 ?
  [<0-2>]  UEAn Algorithm Number
OsmoMSC(config-net)# encryption uea 0 1 ?
  [<0-2>]  UEAn Algorithm Number
OsmoMSC(config-net)# encryption uea 0 1 2 ?
  <cr>  

OsmoMSC(config-net)# exit
OsmoMSC(config)# msc
OsmoMSC(config-msc)# list
...
  assign-tmsi
  lcls-permitted
  no lcls-permitted
  mncc internal
  mncc external MNCC_SOCKET_PATH
  mncc guard-timeout <0-255>
  ncss guard-timeout <0-255>
  no assign-tmsi
  auth-tuple-max-reuse-count <-1-2147483647>
  auth-tuple-reuse-on-error (0|1)
  check-imei-rqd (0|1|early)
  cs7-instance-a <0-15>
  cs7-instance-iu <0-15>
  emergency-call route-to-msisdn MSISDN
  sms-over-gsup
  no sms-over-gsup
  osmux (on|off|only)
  handover-number range MSISDN_FIRST MSISDN_LAST
  nri bitlen <0-15>
  nri add <0-32767> [<0-32767>]
  nri del <0-32767> [<0-32767>]
  neighbor (a|iu) lac <0-65535> (ran-pc|msc-ipa-name) RAN_PC_OR_MSC_IPA_NAME
  neighbor (a|iu) lac-ci <0-65535> <0-65535> (ran-pc|msc-ipa-name) RAN_PC_OR_MSC_IPA_NAME
  neighbor (a|iu) cgi <0-999> <0-999> <0-65535> <0-65535> (ran-pc|msc-ipa-name) RAN_PC_OR_MSC_IPA_NAME
  no neighbor (a|iu) (ran-pc|msc-ipa-name) RAN_PC_OR_MSC_IPA_NAME
  timer [(vlr|mgw|mncc|sccp|geran|utran|sgs)] [TNNNN] [(<0-2147483647>|default)]
  mgw local-ip (A.B.C.D|X:X::X:X)
  mgw local-port <0-65535>
  mgw remote-ip (A.B.C.D|X:X::X:X)
  mgw remote-port <0-65535>
...

OsmoMSC(config-msc)# ncss?
  ncss  Configure call independent Supplementary Services

OsmoMSC(config-msc)# ncss ?
  guard-timeout  Set guard timer for session activity

OsmoMSC(config-msc)# mncc?
  mncc  Configure Mobile Network Call Control

OsmoMSC(config-msc)# mncc ?
  internal       Use internal MNCC handler (default; changes need a program restart)
  external       Use external MNCC handler (changes need a program restart)
  guard-timeout  Set global guard timer for mncc interface activity

OsmoMSC(config-msc)# mncc external ?
  MNCC_SOCKET_PATH  File system path to create the MNCC unix domain socket at

OsmoMSC(config-msc)# mncc external /path/not/used
OsmoMSC(config-msc)# show running-config
...
msc
...
 mncc external /path/not/used
...

OsmoMSC(config-msc)# mncc internal
OsmoMSC(config-msc)# show running-config
... ! mncc external

OsmoMSC(config-msc)# exit
OsmoMSC(config)# mncc-int
OsmoMSC(config-mncc-int)# list
...
  default-codec tch-f (fr|efr|amr)
  default-codec tch-h (hr|amr)

OsmoMSC(config-mncc-int)# exit
OsmoMSC(config)# hlr
OsmoMSC(config-hlr)# list
...
  remote-ip A.B.C.D
  remote-port <1-65535>
  ipa-name NAME

OsmoMSC(config-hlr)# exit
OsmoMSC(config)# exit
OsmoMSC# configure terminal
OsmoMSC(config)# network
OsmoMSC(config-net)# end

OsmoMSC# configure terminal
OsmoMSC(config)# sgs
OsmoMSC(config-sgs)# list
...
  local-ip A.B.C.D
  local-port <0-65535>
  timer (ts5|ts6-2|ts7|ts11|ts14|ts15) <1-120>
  counter (ns7|ns11) <0-255>
  vlr-name FQDN
OsmoMSC(config-sgs)# end

OsmoMSC# disable
OsmoMSC> enable

OsmoMSC# ! Punching some '...' holes because of optional SMPP, Iu
OsmoMSC# show running-config
...
network
 network country code 001
 mobile network code 01
 short name OsmoMSC
 long name OsmoMSC
 encryption a5 0
 encryption uea 1 2
 authentication optional
 rrlp mode none
 mm info 1
msc
 mncc guard-timeout 180
 ncss guard-timeout 30
 assign-tmsi
 cs7-instance-a 0
...
 auth-tuple-max-reuse-count 3
 auth-tuple-reuse-on-error 1
 mgw local-port 2728
 mgw remote-ip 127.0.0.1
 mgw remote-port 2427
mncc-int
 default-codec tch-f fr
 default-codec tch-h hr
...
hlr
 remote-ip 127.0.0.1
 remote-port 4222
sgs
 local-port 29118
 local-ip 0.0.0.0
 vlr-name vlr.example.net
smsc
 queue max-pending 20
 queue max-failure 1
 database delete-delivered 1
 database delete-expired 1
 validity-period minimum 1
 validity-period default 10080
end

OsmoMSC# configure terminal
OsmoMSC(config)# network
OsmoMSC(config-net)# encryption uea 0
OsmoMSC(config-net)# show running-config
...
 encryption uea 0
...

OsmoMSC(config-net)# encryption uea 1
OsmoMSC(config-net)# show running-config
...
 encryption uea 1
...

OsmoMSC(config-net)# encryption uea 2
OsmoMSC(config-net)# show running-config
...
 encryption uea 2
...

OsmoMSC(config-net)# encryption uea 0 1
OsmoMSC(config-net)# show running-config
...
 encryption uea 0 1
...

OsmoMSC(config-net)# encryption uea 0 2
OsmoMSC(config-net)# show running-config
...
 encryption uea 0 2
...

OsmoMSC(config-net)# encryption uea 1 2
OsmoMSC(config-net)# show running-config
...
 encryption uea 1 2
...
