blob: 89c9c0880d6cb42cb26c20e8fc31aa39f3d3d474 [file] [log] [blame]
Neels Hofmeyr25dd7852017-09-25 16:37:34 +02001[[hlr-ctrl]]
2== Control interface
3
4The actual protocol is described in <<common-control-if>>, the variables common
5to all programs using it are described in <<ctrl_common_vars>>. This section
6describes the CTRL interface variables specific to OsmoHLR.
7
8All subscriber variables are available by different selectors, which are freely
9interchangeable:
10
11.Subscriber selectors available on OsmoHLR's Control interface
12[options="header",width="100%",cols="35%,65%"]
13|===
14|Selector|Comment
15|subscriber.*by-imsi-*'123456'.*|Subscriber selector by IMSI, replace "123456" with the actual IMSI
16|subscriber.*by-msisdn-*'123456'.*|Subscriber selector by MSISDN
17|subscriber.*by-id-*'123456'.*|Subscriber selector by database ID
18|===
19
20Each of the above selectors feature all of these control variables:
21
22.Subscriber variables available on OsmoHLR's Control interface
23[options="header",width="100%",cols="35%,8%,8%,8%,41%"]
24|===
25|Name|Access|Trap|Value|Comment
26|subscriber.by-\*.*info*|R|No||List (short) subscriber information
27|subscriber.by-\*.*info-aud*|R|No||List subscriber authentication tokens
28|subscriber.by-\*.*info-all*|R|No||List both 'info' and 'info-aud' in one
29|subscriber.by-\*.*cs-enabled*|RW|No|'1' or '0'|Enable/disable circuit-switched access
30|subscriber.by-\*.*ps-enabled*|RW|No|'1' or '0'|Enable/disable packet-switched access
31|===
32
33=== subscriber.by-*.info, info-aud, info-all
34
35Query the HLR database and return current subscriber record, in multiple lines
36of the format
37
38----
39name<tab>value
40----
41
42To keep the reply as short as possible, most values are omitted if they are
43empty or reflect the default. These are the returned values and their presence
44modalities; for their meaning, see <<subscriber-params>>:
45
46.Returned values by OsmoHLR's 'info', 'info-all' and 'info-aud' commands
47[options="header",width="100%",cols="15%,15%,30%,40%"]
48|===
49|Returned by 'info-all' and|Name|Format|Presence
50|'info'|id|-9223372036854775808 .. 9223372036854775807 (usually not negative)|always
51|'info'|imsi|6 to 15 decimal digits|always
52|'info'|msisdn|1 to 15 decimal digits|when non-empty
53|'info'|nam_cs|'1' or '0'|when '0'
54|'info'|nam_ps|'1' or '0'|when '0'
55|'info'|vlr_number|up to 15 decimal digits|when non-empty
56|'info'|sgsn_number|up to 15 decimal digits|when non-empty
57|'info'|sgsn_address||when non-empty
58|'info-aud'|aud2g.algo|one of 'comp128v1', 'comp128v2', 'comp128v3' or 'xor'|when valid 2G auth data is set
59|'info-aud'|aud2g.ki|32 hexadecimal digits|when valid 2G auth data is set
60|'info-aud'|aud3g.algo|so far always 'milenage'|when valid 3G auth data is set
61|'info-aud'|aud3g.k|32 hexadecimal digits|when valid 3G auth data is set
62|'info-aud'|aud3g.op|32 hexadecimal digits|when valid 3G auth data is set, *not* when OPC is set
63|'info-aud'|aud3g.opc|32 hexadecimal digits|when valid 3G auth data is set, *not* when OP is set
64|'info-aud'|aud3g.ind_bitlen|0..28|when valid 3G auth data is set
65|'info-aud'|aud3g.sqn|0 .. 18446744073709551615|when valid 3G auth data is set
66|===
67
68This is an example Control Interface transcript that illustrates the various
69'info' commands:
70
71----
72include::../example_subscriber_info.ctrl[]
73----
74
75=== subscriber.by-*.ps-enabled, cs-enabled
76
77Disable or enable packet-/circuit-switched access for the given IMSI;
78
79* 'ps-enabled' switches access to GPRS or UMTS data services,
80* 'cs-enabled' switches access to voice services.
81
82When disabled, the next time this subscriber attempts to do a Location Updating
83GSUP operation for the given domain (i.e. from the SGSN for 'ps-enabled', from
84the MSC/VLR for 'cs-enabled'), it will be rejected by OsmoHLR. Currently
85connected GSUP clients will be notified via GSUP when a subscriber is being
86disabled, so that the subscriber can be dropped in case it is currently
87attached.
88
89The current 'ps-enabled'/'cs-enabled' status can be queried by 'GET' commands,
90and also by looking at 'nam_ps' and 'nam_cs' in a 'subscriber.by-*.info'
91response.
92
93A value of "1" indicates that the given domain is enabled, which is the
94default; a value of "0" disables access.
95
96This is an example transcript that illustrates 'ps-enabled' and 'cs-enabled'
97commands:
98
99----
100include::../example_subscriber_cs_ps_enabled.ctrl[]
101----