OsmoMSC> enable
OsmoMSC# configure terminal
OsmoMSC(config)# list
...
  network
  msc
  sgs
  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-3> [<0-3>] [<0-3>] [<0-3>]
  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
  periodic location update <6-1530>
  no periodic location update
  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. NOTE: the current implementation does not allow free choice of combining encryption algorithms yet. The only valid settings are either 'encryption uea 0' or 'encryption uea 1 2'.

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
  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>
  paging response-timer (default|<1-65535>)
  emergency-call route-to-msisdn MSISDN
  sms-over-gsup
  no sms-over-gsup
  osmux (on|off|only)
  handover-number range MSISDN_FIRST MSISDN_LAST
  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 [(mgw|mncc|sccp|geran|utran|sgs)] [TNNNN] [(<0-2147483647>|default)]
  mgw local-ip A.B.C.D
  mgw local-port <0-65535>
  mgw remote-ip A.B.C.D
  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
 periodic location update 30
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 10.23.24.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
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
% Error: the current implementation does not allow free choice of combining
% encryption algorithms yet. The only valid settings are either
%   encryption uea 0
% or
%   encryption uea 1 2
OsmoMSC(config-net)# show running-config
...
 encryption uea 0
...

OsmoMSC(config-net)# encryption uea 2
% Error: the current implementation does not allow free choice of combining
...
OsmoMSC(config-net)# show running-config
...
 encryption uea 0
...

OsmoMSC(config-net)# encryption uea 0 1
% Error: the current implementation does not allow free choice of combining
...
OsmoMSC(config-net)# show running-config
...
 encryption uea 0
...

OsmoMSC(config-net)# encryption uea 0 2
% Error: the current implementation does not allow free choice of combining
...
OsmoMSC(config-net)# show running-config
...
 encryption uea 0
...

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