OsmoHLR> ?
  show        Show running system information
  list        Print command list
  exit        Exit current mode and down to previous mode
  help        Description of the interactive help system
  enable      Turn on privileged mode command
  terminal    Set terminal line parameters
  who         Display who is on vty
  logging     Configure logging
  no          Negate a command or set its defaults
  logp        Print a message on all log outputs; useful for placing markers in test logs
  subscriber  Subscriber management commands
OsmoHLR> list
...
  show gsup-connections
  show subscribers all
  show subscribers (imei|imsi|msisdn) FILTER
  show subscribers (cs|ps) (on|off)
  show subscribers last-seen
  subscriber (imsi|msisdn|id|imei) IDENT show
  show subscriber (imsi|msisdn|id|imei) IDENT
  show mslookup services
...

OsmoHLR> enable
OsmoHLR# ?
...
  subscriber  Subscriber management commands

OsmoHLR# configure terminal
OsmoHLR(config)# ?
...
  hlr        Configure the HLR
  mslookup   Configure Distributed GSM mslookup
...

OsmoHLR(config)# list
...
  hlr
  mslookup
...

OsmoHLR(config)# hlr
OsmoHLR(config-hlr)# ?
...
  euse                         Configure a particular External USSD Entity
  no                           Negate a command or set its defaults
  ussd                         USSD Configuration
  ncss-guard-timeout           Set guard timer for NCSS (call independent SS) session activity
  smsc                         Configuration of GSUP routing to SMSCs
  reject-cause                 GSUP/GMM cause to be sent
  store-imei                   Save the IMEI in the database when receiving Check IMEI requests. Note that an MSC does not necessarily send Check IMEI requests (for OsmoMSC, you may want to set 'check-imei-rqd 1').
  subscriber-create-on-demand  Make a new record when a subscriber is first seen.
OsmoHLR(config-hlr)# list
...
  gsup
  ps
  database PATH
  euse NAME
  no euse NAME
  ussd route prefix PREFIX internal (own-msisdn|own-imsi|test-idle)
  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>
  smsc entity NAME
  no smsc entity NAME
  smsc route NUMBER NAME
  no smsc route NUMBER
  smsc default-route NAME
  no smsc default-route
  reject-cause (not-found|no-proxy) (imsi-unknown|illegal-ms|plmn-not-allowed|la-not-allowed|roaming-not-allowed|no-suitable-cell-in-la|net-fail|congestion|auth-unacceptable|proto-error-unspec)
  store-imei
  no store-imei
  subscriber-create-on-demand (no-msisdn|<3-15>) (none|cs|ps|cs+ps)
  no subscriber-create-on-demand

OsmoHLR(config-hlr)# gsup
OsmoHLR(config-hlr-gsup)# ?
...
  bind      Listen/Bind related socket option
  ipa-name  Set the IPA name of this HLR, for proxying to remote HLRs
OsmoHLR(config-hlr-gsup)# list
...
  bind ip A.B.C.D
  ipa-name NAME

OsmoHLR(config-hlr-gsup)# exit
OsmoHLR(config-hlr)# exit
OsmoHLR(config)# exit
OsmoHLR# configure terminal
OsmoHLR(config)# hlr
OsmoHLR(config-hlr)# store-imei
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 notice
 logging level mslookup notice
 logging level lu notice
 logging level dgsm notice
...
hlr
 store-imei
 database hlr_vty_test.db
 gsup
  bind ip 127.0.0.1
  ipa-name unnamed-HLR
 ussd route prefix *#100# internal own-msisdn
 ussd route prefix *#101# internal own-imsi
 ps
  pdp-profiles default
   profile 1
    apn internet
   profile 2
    apn *
end

OsmoHLR# configure terminal

OsmoHLR(config)# mslookup
OsmoHLR(config-mslookup)# ?
...
  mdns    Multicast DNS related configuration
  no      Negate a command or set its defaults
  server  Enable and configure Distributed GSM mslookup server
  client  Enable and configure Distributed GSM mslookup client
OsmoHLR(config-mslookup)# list
...
  mdns bind [IP] [<1-65535>]
  mdns domain-suffix DOMAIN_SUFFIX
  no mdns bind
  server
  no server
  client
  no client

OsmoHLR(config-mslookup)# ?
...
  mdns    Multicast DNS related configuration
  no      Negate a command or set its defaults
  server  Enable and configure Distributed GSM mslookup server
  client  Enable and configure Distributed GSM mslookup client
OsmoHLR(config-mslookup)# no?
  no  Negate a command or set its defaults
OsmoHLR(config-mslookup)# no ?
  mdns    Disable both server and client for mDNS mslookup
  server  Disable Distributed GSM mslookup server
  client  Disable Distributed GSM mslookup client
OsmoHLR(config-mslookup)# mdns ?
  bind           Convenience shortcut: enable and configure both server and client for mDNS mslookup
  domain-suffix  mDNS domain suffix (default: mdns.osmocom.org). This is appended and stripped from mDNS packets during encoding/decoding, so we don't collide with top-level domains administrated by IANA
OsmoHLR(config-mslookup)# mdns bind ?
  [IP]  multicast IPv4 address like 239.192.23.42 or IPv6 address like ff08::23:42
OsmoHLR(config-mslookup)# mdns bind 1.2.3.4 ?
  [<1-65535>]  mDNS UDP Port number
OsmoHLR(config-mslookup)# mdns domain-suffix ?
  DOMAIN_SUFFIX  mDNS domain suffix (default: mdns.osmocom.org). This is appended and stripped from mDNS packets during encoding/decoding, so we don't collide with top-level domains administrated by IANA

OsmoHLR(config-mslookup)# server
OsmoHLR(config-mslookup-server)# ?
...
  mdns     Multicast DNS related configuration
  no       Negate a command or set its defaults
  service  Configure addresses of local services, as sent in replies to remote mslookup requests.
  msc      Configure services for individual local MSCs
OsmoHLR(config-mslookup-server)# list
...
  mdns bind [IP] [<1-65535>]
  mdns domain-suffix DOMAIN_SUFFIX
  no mdns bind
  service NAME at IP <1-65535>
  no service NAME
  no service NAME at IP <1-65535>
  msc ipa-name .IPA_NAME

OsmoHLR(config-mslookup-server)# mdns ?
  bind           Configure where the mDNS server listens for mslookup requests
  domain-suffix  mDNS domain suffix (default: mdns.osmocom.org). This is appended and stripped from mDNS packets during encoding/decoding, so we don't collide with top-level domains administrated by IANA
OsmoHLR(config-mslookup-server)# mdns bind ?
  [IP]  multicast IPv4 address like 239.192.23.42 or IPv6 address like ff08::23:42
OsmoHLR(config-mslookup-server)# mdns bind 1.2.3.4 ?
  [<1-65535>]  mDNS UDP Port number

OsmoHLR(config-mslookup-server)# service?
  service  Configure addresses of local services, as sent in replies to remote mslookup requests.
OsmoHLR(config-mslookup-server)# service ?
  NAME  mslookup service name, e.g. sip.voice or smpp.sms
OsmoHLR(config-mslookup-server)# service foo ?
  at  at
OsmoHLR(config-mslookup-server)# service foo at ?
  IP  IPv4 address like 1.2.3.4 or IPv6 address like a:b:c:d::1
OsmoHLR(config-mslookup-server)# service foo at 1.2.3.4 ?
  <1-65535>  Service-specific port number

OsmoHLR(config-mslookup-server)# no ?
  mdns     Disable server for mDNS mslookup (do not answer remote requests)
  service  Remove one or more service address entries
OsmoHLR(config-mslookup-server)# no service ?
  NAME  mslookup service name, e.g. sip.voice or smpp.sms
OsmoHLR(config-mslookup-server)# no service foo ?
  at    at
  <cr>  
OsmoHLR(config-mslookup-server)# no service foo at ?
  IP  IPv4 address like 1.2.3.4 or IPv6 address like a:b:c:d::1
OsmoHLR(config-mslookup-server)# no service foo at 1.2.3.4 ?
  <1-65535>  Service-specific port number

OsmoHLR(config-mslookup-server)# msc?
  msc  Configure services for individual local MSCs
OsmoHLR(config-mslookup-server)# msc ?
  ipa-name  Identify locally connected MSC by IPA Unit Name
OsmoHLR(config-mslookup-server)# msc ipa-name ?
  IPA_NAME  IPA Unit Name of the local MSC to configure

OsmoHLR(config-mslookup-server)# msc ipa-name MSC-1
OsmoHLR(config-mslookup-server-msc)# ?
...
  service  Configure addresses of local services, as sent in replies to remote mslookup requests.
  no       Negate a command or set its defaults
OsmoHLR(config-mslookup-server-msc)# list
...
  service NAME at IP <1-65535>
  no service NAME
  no service NAME at IP <1-65535>

OsmoHLR(config-mslookup-server-msc)# service?
  service  Configure addresses of local services, as sent in replies to remote mslookup requests.
OsmoHLR(config-mslookup-server-msc)# service ?
  NAME  mslookup service name, e.g. sip.voice or smpp.sms
OsmoHLR(config-mslookup-server-msc)# service foo ?
  at  at
OsmoHLR(config-mslookup-server-msc)# service foo at ?
  IP  IPv4 address like 1.2.3.4 or IPv6 address like a:b:c:d::1
OsmoHLR(config-mslookup-server-msc)# service foo at 1.2.3.4 ?
  <1-65535>  Service-specific port number

OsmoHLR(config-mslookup-server-msc)# no ?
  service  Remove one or more service address entries
OsmoHLR(config-mslookup-server-msc)# no service ?
  NAME  mslookup service name, e.g. sip.voice or smpp.sms
OsmoHLR(config-mslookup-server-msc)# no service foo ?
  at    at
  <cr>  
OsmoHLR(config-mslookup-server-msc)# no service foo at ?
  IP  IPv4 address like 1.2.3.4 or IPv6 address like a:b:c:d::1
OsmoHLR(config-mslookup-server-msc)# no service foo at 1.2.3.4 ?
  <1-65535>  Service-specific port number

OsmoHLR(config-mslookup-server-msc)# exit
OsmoHLR(config-mslookup-server)# exit
OsmoHLR(config-mslookup)# client
OsmoHLR(config-mslookup-client)# ?
...
  timeout        How long should the mslookup client wait for remote responses before evaluating received results
  mdns           Multicast DNS related configuration
  no             Negate a command or set its defaults
  gateway-proxy  Configure a fixed IP address to send all GSUP requests for unknown IMSIs to, without invoking a lookup for IMSI
OsmoHLR(config-mslookup-client)# list
...
  timeout <1-100000>
  mdns bind [IP] [<1-65535>]
  mdns domain-suffix DOMAIN_SUFFIX
  no mdns bind
  gateway-proxy IP [<1-65535>]
  no gateway-proxy

OsmoHLR(config-mslookup-client)# timeout?
  timeout  How long should the mslookup client wait for remote responses before evaluating received results
OsmoHLR(config-mslookup-client)# timeout ?
  <1-100000>  timeout in milliseconds

OsmoHLR(config-mslookup-client)# mdns?
  mdns  Multicast DNS related configuration
OsmoHLR(config-mslookup-client)# mdns bind?
  bind  Enable mDNS client, and configure multicast address to send mDNS mslookup requests to
OsmoHLR(config-mslookup-client)# mdns bind ?
  [IP]  multicast IPv4 address like 239.192.23.42 or IPv6 address like ff08::23:42
OsmoHLR(config-mslookup-client)# mdns bind 1.2.3.4 ?
  [<1-65535>]  mDNS UDP Port number
OsmoHLR(config-mslookup-client)# mdns domain-suffix?
  domain-suffix  mDNS domain suffix (default: mdns.osmocom.org). This is appended and stripped from mDNS packets during encoding/decoding, so we don't collide with top-level domains administrated by IANA
OsmoHLR(config-mslookup-client)# mdns domain-suffix ?
  DOMAIN_SUFFIX  mDNS domain suffix (default: mdns.osmocom.org). This is appended and stripped from mDNS packets during encoding/decoding, so we don't collide with top-level domains administrated by IANA


OsmoHLR(config-mslookup-client)# gateway-proxy?
  gateway-proxy  Configure a fixed IP address to send all GSUP requests for unknown IMSIs to, without invoking a lookup for IMSI
OsmoHLR(config-mslookup-client)# gateway-proxy ?
  IP  IP address of the remote HLR
OsmoHLR(config-mslookup-client)# gateway-proxy 1.2.3.4 ?
  [<1-65535>]  GSUP port number (omit for default 4222)

OsmoHLR(config-mslookup-client)# no?
  no  Negate a command or set its defaults
OsmoHLR(config-mslookup-client)# no ?
  mdns           Disable mDNS client, do not query remote services by mDNS
  gateway-proxy  Disable gateway proxy for GSUP with unknown IMSIs

OsmoHLR(config-mslookup-client)# gateway-proxy ?
  IP  IP address of the remote HLR
OsmoHLR(config-mslookup-client)# gateway-proxy 1.2.3.4 ?
  [<1-65535>]  GSUP port number (omit for default 4222)

OsmoHLR(config-mslookup-client)# do show mslookup?
  mslookup  Distributed GSM / mslookup related information
OsmoHLR(config-mslookup-client)# do show mslookup ?
  services  List configured service addresses as sent to remote mslookup requests

OsmoHLR(config-mslookup-client)# gateway-proxy 1.2.3.4

OsmoHLR(config-mslookup-client)# exit

OsmoHLR(config-mslookup)# mdns bind
OsmoHLR(config-mslookup)# server
OsmoHLR(config-mslookup-server)# service qwert at 123.45.67.89 qwert
% Unknown command.
OsmoHLR(config-mslookup-server)# service qwert at qwert 1234
% mslookup server: Invalid address for service qwert: qwert 1234
OsmoHLR(config-mslookup-server)# service foo.bar at 123.45.67.89 1011
OsmoHLR(config-mslookup-server)# service baz.bar at 121.31.41.5 1617
OsmoHLR(config-mslookup-server)# service baz.bar at a:b:c::d 1819
OsmoHLR(config-mslookup-server)# msc ipa-name msc-901-70-23
OsmoHLR(config-mslookup-server-msc)# service foo.bar at 76.54.32.10 1234
OsmoHLR(config-mslookup-server-msc)# service baz.bar at 12.11.10.98 7654
OsmoHLR(config-mslookup-server-msc)# service baz.bar at 999:999:999::999 9999
OsmoHLR(config-mslookup-server-msc)# service baz.bar at dd:cc:bb::a 3210
OsmoHLR(config-mslookup-server-msc)# exit
OsmoHLR(config-mslookup-server)# msc ipa-name msc-901-70-42
OsmoHLR(config-mslookup-server-msc)# service foo.bar at 1.1.1.1 1111
OsmoHLR(config-mslookup-server-msc)# service baz.bar at 2.2.2.2 2222
OsmoHLR(config-mslookup-server-msc)# service baz.bar at 2222:2222:2222::2 2222
OsmoHLR(config-mslookup-server-msc)# do show mslookup services
Local GSUP HLR address returned in mslookup responses for local IMSIs: 127.0.0.1:4222
service foo.bar at 123.45.67.89 1011
service baz.bar at 121.31.41.5 1617
service baz.bar at a:b:c::d 1819
msc ipa-name MSC-1
msc ipa-name msc-901-70-23
 service foo.bar at 76.54.32.10 1234
 service baz.bar at 12.11.10.98 7654
 service baz.bar at dd:cc:bb::a 3210
msc ipa-name msc-901-70-42
 service foo.bar at 1.1.1.1 1111
 service baz.bar at 2.2.2.2 2222
 service baz.bar at 2222:2222:2222::2 2222

OsmoHLR(config-mslookup-server-msc)# show running-config
...
mslookup
 server
  mdns bind 239.192.23.42 4266
  service foo.bar at 123.45.67.89 1011
  service baz.bar at 121.31.41.5 1617
  service baz.bar at a:b:c::d 1819
  msc ipa-name MSC-1
  msc ipa-name msc-901-70-23
   service foo.bar at 76.54.32.10 1234
   service baz.bar at 12.11.10.98 7654
   service baz.bar at dd:cc:bb::a 3210
  msc ipa-name msc-901-70-42
   service foo.bar at 1.1.1.1 1111
   service baz.bar at 2.2.2.2 2222
   service baz.bar at 2222:2222:2222::2 2222
 client
  gateway-proxy 1.2.3.4 4222
  mdns bind 239.192.23.42 4266
...

OsmoHLR(config-mslookup-server-msc)# no service baz.bar
OsmoHLR(config-mslookup-server-msc)# no service asdf
% mslookup server: cannot remove service 'asdf'
OsmoHLR(config-mslookup-server-msc)# exit
OsmoHLR(config-mslookup-server)# msc ipa-name msc-901-70-23
OsmoHLR(config-mslookup-server-msc)# no service baz.bar at dd:cc:bb::a 3210
% mslookup server: cannot remove service 'baz.bar' to dd:cc:bb::a 3210
OsmoHLR(config-mslookup-server-msc)# no service asdf at asdf asdf
% Unknown command.
OsmoHLR(config-mslookup-server-msc)# no service asdf at asdf 3210
% mslookup server: Invalid address for 'no service' asdf: asdf 3210
OsmoHLR(config-mslookup-server-msc)# no service asdf at dd:cc:bb::a 3210
% mslookup server: cannot remove service 'asdf' to dd:cc:bb::a 3210
OsmoHLR(config-mslookup-server-msc)# exit
OsmoHLR(config-mslookup-server)# no service baz.bar at 2.2.2.2 2222
% mslookup server: cannot remove service 'baz.bar' to 2.2.2.2 2222
OsmoHLR(config-mslookup-server)# no service baz.bar at a:b:c::d 1819
% mslookup server: cannot remove service 'baz.bar' to a:b:c::d 1819

OsmoHLR(config-mslookup-server)# exit
OsmoHLR(config-mslookup)# client
OsmoHLR(config-mslookup-client)# no gateway-proxy

OsmoHLR(config-mslookup-client)# do show mslookup services
Local GSUP HLR address returned in mslookup responses for local IMSIs: 127.0.0.1:4222
service foo.bar at 123.45.67.89 1011
service baz.bar at 121.31.41.5 1617
msc ipa-name MSC-1
msc ipa-name msc-901-70-23
 service foo.bar at 76.54.32.10 1234
 service baz.bar at 12.11.10.98 7654
msc ipa-name msc-901-70-42
 service foo.bar at 1.1.1.1 1111

OsmoHLR(config-mslookup-client)# show running-config
...
mslookup
 server
  mdns bind 239.192.23.42 4266
  service foo.bar at 123.45.67.89 1011
  service baz.bar at 121.31.41.5 1617
  msc ipa-name MSC-1
  msc ipa-name msc-901-70-23
   service foo.bar at 76.54.32.10 1234
   service baz.bar at 12.11.10.98 7654
  msc ipa-name msc-901-70-42
   service foo.bar at 1.1.1.1 1111
 client
  mdns bind 239.192.23.42 4266
...

OsmoHLR(config-mslookup-client)# exit
OsmoHLR(config-mslookup)# server
OsmoHLR(config-mslookup-server)# service gsup.hlr at 23.42.17.11 4223
OsmoHLR(config-mslookup-server)# do show mslookup services
Local GSUP HLR address returned in mslookup responses for local IMSIs: 23.42.17.11:4223
service foo.bar at 123.45.67.89 1011
service baz.bar at 121.31.41.5 1617
service gsup.hlr at 23.42.17.11 4223
msc ipa-name MSC-1
msc ipa-name msc-901-70-23
 service foo.bar at 76.54.32.10 1234
 service baz.bar at 12.11.10.98 7654
msc ipa-name msc-901-70-42
 service foo.bar at 1.1.1.1 1111

OsmoHLR(config-mslookup-server)# show running-config
...
mslookup
 server
  mdns bind 239.192.23.42 4266
  service foo.bar at 123.45.67.89 1011
  service baz.bar at 121.31.41.5 1617
  service gsup.hlr at 23.42.17.11 4223
  msc ipa-name MSC-1
  msc ipa-name msc-901-70-23
   service foo.bar at 76.54.32.10 1234
   service baz.bar at 12.11.10.98 7654
  msc ipa-name msc-901-70-42
   service foo.bar at 1.1.1.1 1111
 client
  mdns bind 239.192.23.42 4266
...
OsmoHLR(config-mslookup-server)# end
OsmoHLR# configure terminal

OsmoHLR(config)# hlr
OsmoHLR(config-hlr)# ps?
  ps  Configure the PS options

OsmoHLR(config-hlr)# ps

OsmoHLR(config-hlr-ps)# list
...
  pdp-profiles default
  no pdp-profiles default
...
OsmoHLR(config-hlr-ps)# no pdp-profiles default


OsmoHLR(config-hlr-ps)# pdp-profiles default
OsmoHLR(config-hlr-ps-pdp-profiles)# ?
...
  profile  Configure a PDP profile
...
OsmoHLR(config-hlr-ps-pdp-profiles)# profile 1

OsmoHLR(config-hlr-ps-pdp-profile)# ?
...
  apn    Configure the APN.
...
OsmoHLR(config-hlr-ps-pdp-profile)# apn internet
OsmoHLR(config-hlr-ps-pdp-profile)# exit
OsmoHLR(config-hlr-ps-pdp-profiles)# profile 2
OsmoHLR(config-hlr-ps-pdp-profile)# apn *
OsmoHLR(config-hlr-ps-pdp-profile)# show running-config
...
 ps
  pdp-profiles default
   profile 1
    apn internet
   profile 2
    apn *
...
