OsmoHLR> list
  show version
  show online-help
  list
  exit
  help
  enable
  terminal length <0-512>
  terminal no length
  who
  show history
  logging enable
...
  show logging vty
  show alarms
  show talloc-context (application|all) (full|brief|DEPTH)
  show talloc-context (application|all) (full|brief|DEPTH) tree ADDRESS
  show talloc-context (application|all) (full|brief|DEPTH) filter REGEXP
  show gsup-connections
  subscriber (imsi|msisdn|id) IDENT show
  show subscriber (imsi|msisdn|id) IDENT

OsmoHLR> enable
OsmoHLR# list
  help
  list
  write terminal
  write file
  write memory
  write
  show running-config
  exit
  disable
  configure terminal
  copy running-config startup-config
  show startup-config
  show version
  show online-help
  terminal length <0-512>
  terminal no length
  who
  show history
  terminal monitor
  terminal no monitor
  logging enable
...

OsmoHLR# configure terminal
OsmoHLR(config)# list
  help
  list
  write terminal
  write file
  write memory
  write
  show running-config
  exit
  end
...
  hlr

OsmoHLR(config)# hlr
OsmoHLR(config-hlr)# list
  help
  list
  write terminal
  write file
  write memory
  write
  show running-config
  exit
  end
  gsup
  euse NAME
  no euse NAME
  ussd route prefix PREFIX internal (own-msisdn|own-imsi)
  ussd route prefix PREFIX external EUSE
  no ussd route prefix PREFIX
  ussd default-route external EUSE
  no ussd default-route
  ncss-guard-timeout <0-255>

OsmoHLR(config-hlr)# gsup
OsmoHLR(config-hlr-gsup)# list
  help
  list
  write terminal
  write file
  write memory
  write
  show running-config
  exit
  end
  bind ip A.B.C.D

OsmoHLR(config-hlr-gsup)# exit
OsmoHLR(config-hlr)# exit
OsmoHLR(config)# exit
OsmoHLR# configure terminal
OsmoHLR(config)# hlr
OsmoHLR(config-hlr)# gsup
OsmoHLR(config-hlr-gsup)# end
OsmoHLR# disable
OsmoHLR> enable

OsmoHLR# show running-config

Current configuration:
!
!
log stderr
...
 logging level main notice
 logging level db notice
 logging level auc notice
 logging level ss info
...
hlr
 gsup
  bind ip 127.0.0.1
 ussd route prefix *#100# internal own-msisdn
 ussd route prefix *#101# internal own-imsi
end
