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>]
  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

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
  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
 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
