In order to configure/control PRODUCT, please use URL: http://ip-of-server-where-PRODUCT-is-installed/api.php
Request: query_stats
Retrieve node statistics for the equipment. It is mandatory to provide the desired node type.
Requests
{ "request": "query_stats", "node": "hss" }
Responses
{ "code": 0, "stats": { "engine": { "version": "6.1.1", "revision": 2187, "nodename": "mobile-devel5", "runid": 1575883910, "plugins": 6, "inuse": 0, "handlers": 115, "hooks": 4, "messages": 0, "maxqueue": 3, "messageage": 190, "messagerate": 1, "maxmsgrate": 256, "enqueued": 629495, "dequeued": 629495, "dispatched": 655245, "supervised": true, "runattempt": 1, "lastsignal": 0, "threads": 16, "workers": 1, "mutexes": 65, "semaphores": 14, "acceptcalls": "accept", "congestion": 0, "node_version": "unknown" }, "uptime": { "wall": 605662, "user": 7882, "kernel": 55996 }, "hss_cli": { "sims": 940, "subscribers": 832, "cs_total": 755, "cs_active": 0, "ps_total": 756, "ps_active": 0, "ims_total": 89, "ims_active": 0, "operational": "(standalone)" }, "auc_map": { "auth2g": 0, "auth3g": 0, "auth4g": 0, "resyncs": 0, "unknowns": 0, "illegals": 0, "inactives": 0, "reports": 0 }, "hss_gtt": { "local": 0, "imsi": 0, "msisdn": 0, "stp": 0, "back": 0, "fail": 0 }, "auc_diam": { "auth2g": 0, "auth3g": 0, "auth4g": 0, "resyncs": 0, "unknowns": 0, "illegals": 0, "inactives": 0 }, "hss_cluster": { "nodename": "mobile-devel5", "remote": 0, "state": "standalone" }, "mysqldb": { "conns": 1, "failed": 0 } } }
Errors
{ "code": 200, "message": "Internal retrieval error." }
Examples: query_stats
Get hss node status.
Request
{ "request": "query_stats", "node": "hss" }
Response
{ "code": 0, "stats": { "engine": { "version": "6.1.1", "revision": 2187, "nodename": "mobile-devel5", "runid": 1575883910, "plugins": 6, "inuse": 0, "handlers": 115, "hooks": 4, "messages": 0, "maxqueue": 3, "messageage": 21, "messagerate": 1, "maxmsgrate": 256, "enqueued": 183022, "dequeued": 183022, "dispatched": 191536, "supervised": true, "runattempt": 1, "lastsignal": 0, "threads": 16, "workers": 1, "mutexes": 65, "semaphores": 14, "acceptcalls": "accept", "congestion": 0, "node_version": "unknown" }, "uptime": { "wall": 175920, "user": 2256, "kernel": 15907 }, "hss_cli": { "sims": 940, "subscribers": 832, "cs_total": 755, "cs_active": 0, "ps_total": 756, "ps_active": 0, "ims_total": 88, "ims_active": 0, "operational": "(standalone)" }, "auc_map": { "auth2g": 0, "auth3g": 0, "auth4g": 0, "resyncs": 0, "unknowns": 0, "illegals": 0, "inactives": 0, "reports": 0 }, "hss_gtt": { "local": 0, "imsi": 0, "msisdn": 0, "stp": 0, "back": 0, "fail": 0 }, "auc_diam": { "auth2g": 0, "auth3g": 0, "auth4g": 0, "resyncs": 0, "unknowns": 0, "illegals": 0, "inactives": 0 }, "hss_cluster": { "nodename": "mobile-devel5", "remote": 0, "state": "standalone" }, "mysqldb": { "conns": 1, "failed": 0 } } }
Request: query_cs_reg
Retrieve current Circuit Switched registration status for a subscriber. The subscriber can be identified by 'subscriber_id', 'msisdn' (assigned or set in its SIM's multi imsi) or 'imsi' (primary, alternative or multi imsi). Optionally the VLR can be queried (via ProvideSubscriberInfo) for more details.
Requests
This request has multiple formats in which it can be sent:
{ "request": "query_cs_reg", "params": { "subscriber_id": "String. Identify registration by subscriber id", "query": "Boolean. Optional." } }
{ "request": "query_cs_reg", "params": { "msisdn": "String. Identify registration by MSISDN", "query": "Boolean. Optional." } }
{ "request": "query_cs_reg", "params": { "imsi": "String. Identify registration by IMSI", "query": "Boolean. Optional." } }
Responses
{ "code": 0, "cs_reg": { "subscriber_id": "Subscriber ID", "msisdn": "Phone number associated to this subscriber", "registration": { "imsi": "IMSI used on last registration", "msisdn": "MSISDN used when last registered", "imeisv": "Ex: 3594670766703801", "visited_net": "Ex: 8820016", "area": "Ex: 0016803e8", "protocol": "Ex: MAP", "roaming": "Ex: true", "vlr": "Ex: 8820016", "msc": "Ex: 8820016" } } }
Errors
{ "code": 402, "message": "Missing all parameters. / Missing all of 'subscriber_id', 'msisdn' and 'imsi'." }
{ "code": 502, "message": "Database error." }
{ "code": 404, "message": "No such subscriber." }
Examples: query_cs_reg
User not registered
Registred user
Request
{ "request": "query_cs_reg", "params": { "msisdn": "88270017", "query": true } }
Response
{ "code": 0, "cs_reg": { "subscriber_id": 174, "msisdn": "88270017", "registration": { "imsi": "001010000000007", "msisdn": "88270017", "imeisv": "3594670766703801", "visited_net": "8820016", "area": "0016803e8", "protocol": "MAP", "roaming": true, "vlr": "8820016", "msc": "8820016" } } }
Request: query_ps_reg
Retrieve current Packet Switched registration status for a subscriber. The subscriber can be identified by 'subscriber_id', 'msisdn' (assigned or set in its SIM’s multi imsi) or 'imsi' (primary, alternative or multi imsi). Optionally the SGSN/MME can be queried (via ProvideSubscriberInfo) for more details.
Requests
This request has multiple formats in which it can be sent:
{ "request": "query_ps_reg", "params": { "subscriber_id": "String. Identify registration by subscriber id", "query": "Boolean. Optional." } }
{ "request": "query_ps_reg", "params": { "msisdn": "String. Identify registration by MSISDN", "query": "Boolean. Optional." } }
{ "request": "query_ps_reg", "params": { "imsi": "String. Identify registration by IMSI", "query": "Boolean. Optional." } }
Responses
{ "code": 0, "ps_reg": { "subscriber_id": "Number. Ex: 174", "msisdn": "String. Ex: 88270017", "registration": { "imsi": "String. Ex: IMSI used on last registration", "msisdn": "String. Ex: MSISDN used when last registered", "imeisv": "String. Ex: 3594670766703801", "rat_type": "String. Ex: e-utran", "visited_net": "String. Ex: 8820016", "protocol": "String. Ex: MAP", "roaming": "Bool. EX: true", "sgsn_num": "String. Ex: 8820016", "sgsn_addr": "String. Ex: 192.168.0.2" } } }
Errors
{ "code": 402, "message": "Missing all parameters. / Missing all of 'subscriber_id', 'msisdn' and 'imsi'." }
{ "code": 502, "message": "Database error." }
{ "code": 404, "message": "No such subscriber." }
Examples: query_ps_reg
Subscriber having diameter active
Request
{ "request": "query_ps_reg", "params": { "msisdn": "88270017", "query": true } }
Response
{ "code": 0, "ps_reg": { "subscriber_id": 174, "msisdn": "88270017", "registration": { "imsi": "001010000000007", "msisdn": "88270017", "imeisv": "3594670766703801", "rat_type": "e-utran", "visited_net": "8820016", "protocol": "MAP", "roaming": true, "sgsn_num": "8820016", "sgsn_addr": "192.168.0.2" } } }
Subscriber having diameter active
Request
{ "request": "query_ps_reg", "params": { "msisdn": "88270017", "query": true } }
Response
{ "code": 0, "ps_reg": { "subscriber_id": 174, "msisdn": "88270017", "registration": { "imsi": "001010000000007", "msisdn": "88270017", "imeisv": "3594670766703801", "rat_type": "e-utran", "visited_net": "yatebts.com", "protocol": "DIAMETER", "roaming": true, "diam_host": "ucn.yatebts.com", "diam_realm": "yatebts.com" } } }
Request: query_nontgpp_reg
Retrieve current Non-3GPP registration status for a subscriber. The subscriber can be identified by 'subscriber_id', 'msisdn' (assigned or set in its SIM’s multi imsi) or 'imsi' (primary, alternative or multi imsi).
Requests
This request has multiple formats in which it can be sent:
{ "request": "query_nontgpp_reg", "params": { "subscriber_id": "String. Identify registration by subscriber id" } }
{ "request": "query_nontgpp_reg", "params": { "msisdn": "String. Identify registration by MSISDN" } }
{ "request": "query_nontgpp_reg", "params": { "imsi": "String. Identify registration by IMSI" } }
Responses
{ "code": 0, "nontgpp_reg": { "subscriber_id": "Number. Ex: 314", "msisdn": "String. Ex: 88270055", "registration": { "imsi": "String. Ex: IMSI used on last registration", "msisdn": "String. Ex: MSISDN used when last registered", "rat_type": "String. Ex: wlan", "visited_net": "String. Ex: yatebts.com", "protocol": "String. Ex: DIAMETER", "roaming": "Bool. EX: false", "diam_host": "String. Ex: ucn.yatebts.com", "diam_realm": "String. Ex: yatebts.com" } } }
Errors
{ "code": 402, "message": "Missing all parameters. / Missing all of 'subscriber_id', 'msisdn' and 'imsi'." }
{ "code": 502, "message": "Database error." }
{ "code": 404, "message": "No such subscriber." }
Examples: query_nontgpp_reg
Subscriber registered on WiFi
Request
{ "request": "query_nontgpp_reg", "params": { "imsi": "001019901000025" } }
Response
{ "code": 0, "nontgpp_reg": { "subscriber_id": 314, "msisdn": "88270055", "registration": { "imsi": "001019901000025", "msisdn": "88270055", "rat_type": "wlan", "visited_net": "yatebts.com", "status": "registered", "time_reg": 1586548094, "protocol": "DIAMETER", "roaming": false, "diam_host": "ucn.yatebts.com", "diam_realm": "yatebts.com" } } }
Subscriber deregistered
Request
{ "request": "query_nontgpp_reg", "params": { "msisdn": "88270055" } }
Response
{ "code": 0, "nontgpp_reg": { "subscriber_id": 314, "msisdn": "88270055", "registration": { "imsi": "001019901000025", "msisdn": "88270055", "rat_type": "wlan", "visited_net": "yatebts.com", "reason": "unregistered", "time_purge": 1586548336 } } }
Request: query_ims_reg
Retrieve current IP Multimedia Subsystem registration status for a subscriber. The subscriber can be identified by 'subscriber_id', 'msisdn', 'imsi' (primary or alternative) or 'private_ident' (IMPI).
Requests
This request has multiple formats in which it can be sent:
{ "request": "query_ims_reg", "params": { "subscriber_id": "String. Identify registration by subscriber id", "query": "Boolean. Optional." } }
{ "request": "query_ims_reg", "params": { "msisdn": "String. Identify registration by MSISDN", "query": "Boolean. Optional." } }
{ "request": "query_ims_reg", "params": { "imsi": "String. Identify registration by IMSI", "query": "Boolean. Optional." } }
{ "request": "query_ims_reg", "params": { "private_ident": "String. Identify registration by Private Indent", "query": "Boolean. Optional." } }
Responses
Response has multiple formats depending on the sent request:
{ "code": 0, "ims_reg": { "subscriber_id": "Number. Ex: 7", "msisdn": "String. Ex: 88270022", "registration": { "private_ident": "String. Ex: 001019902000019@ims-test.lan", "public_ident": "String. Ex: sip:+88279019@ims-test.lan", "public_ident_alt": "String. Ex: tel:+88270022", "status": "String. Ex: registered", "reason": "String. Ex: register", "time_reg": "Number. Ex: 1497262940", "protocol": "String. Ex: DIAMETER", "roaming": "Bool. Ex: false", "server_name": "String. Ex: sip:ucn.example.com", "diam_realm": "String. Ex: example.com", "diam_host": "String. Ex: ucn.example.com" } } }
{ "code": 0, "ims_reg": { "subscriber_id": "Number. Ex: 7", "msisdn": "String. Ex: 88270022", "registration": { "private_ident": "String. Ex: 001019902000019@ims-test.lan", "public_ident": "String. Ex: sip:+88279019@ims-test.lan", "public_ident_alt": "String. Ex: tel:+88270022", "status": "String. Ex: registered", "reason": "String. Ex: register", "time_purge": "Number. Ex: 1497262940", "protocol": "String. Ex: DIAMETER", "roaming": "Bool. Ex: false", "server_name": "String. Ex: sip:ucn.example.com", "diam_realm": "String. Ex: example.com", "diam_host": "String. Ex: ucn.example.com" } } }
Errors
{ "code": 402, "message": "Missing all parameters. / Missing all of 'subscriber_id', 'msisdn' and 'imsi'." }
{ "code": 502, "message": "Database error." }
{ "code": 404, "message": "No such subscriber." }
Examples: query_ims_reg
User not registered, S-CSCF name stored (assigned)
Request
{ "request": "query_ims_reg", "params": { "subscriber_id": "1" } }
Response
{ "code": 0, "ims_reg": { "subscriber_id": 7, "msisdn": "88270022", "registration": { "private_ident": "001019902000019@ims-test.lan", "public_ident": "sip:+88279019@ims-test.lan", "public_ident_alt": "tel:+88270022", "status": "unregistered", "reason": "timeout-unregister-store-server", "time_purge": 1497266121, "protocol": "DIAMETER", "roaming": false, "server_name": "sip:ucn.example.com", "diam_realm": "example.com", "diam_host": "ucn.example.com" } } }
User registered
Request
{ "request": "query_ims_reg", "params": { "subscriber_id": "1" } }
Response
{ "code": 0, "ims_reg": { "subscriber_id": 7, "msisdn": "88270022", "registration": { "private_ident": "001019902000019@ims-test.lan", "public_ident": "sip:+88279019@ims-test.lan", "public_ident_alt": "tel:+88270022", "status": "registered", "reason": "register", "time_reg": 1497262940, "protocol": "DIAMETER", "roaming": false, "server_name": "sip:ucn.example.com", "diam_realm": "example.com", "diam_host": "ucn.example.com" } } }
User not registered, no S-CSCF stored
Request
{ "request": "query_ims_reg", "params": { "subscriber_id": "1" } }
Response
{ "code": 0, "ims_reg": { "subscriber_id": 7, "msisdn": "88270022", "registration": { "private_ident": "001019902000019@ims-test.lan", "public_ident": "sip:+88279019@ims-test.lan", "public_ident_alt": "tel:+88270022", "reason": "unregistered", "time_purge": 1497266193 } } }
Request: query_fiveg_reg
Retrieve current 5G AMF registration status for a subscriber. The subscriber can be identified by 'subscriber_id', 'msisdn' (assigned or set in its SIM's multi imsi) or 'imsi' (primary, alternative or multi imsi).
Requests
{ "request": "query_fiveg_reg", "params": { "comment": "Parameters used to identify the subscriber. Checked in the order listed here", "subscriber_id": "Conditional, string. Identify registration by subscriber id", "msisdn": "Conditional, string. Identify registration by MSISDN", "imsi": "Conditional, string. Identify registration by IMSI" } }
Responses
{ "code": 0, "fiveg_reg": { "subscriber_id": "Subscriber ID", "msisdn": "Phone number associated to this subscriber", "comment__registration": "AMF registration info. May be empty if subscriber never registered since 5G support was enabled for it. May be null if 5G support is not enabled", "registration": { "imsi": "IMSI used on last registration", "msisdn": "MSISDN used when last registered", "area": "Last registration PLMN", "visited_net": "Last registration AMF ID", "rat_type": "Last registration RAT type (e.g. NR)", "imeisv": "Last registration IMEI(SV).", "imei": "Last registration IMEI. Present if 'imeisv' is an actual IMEI(SV): has 16 digits", "comment__time_purge": "This parameter is present if subscriber is not registered on 5G", "time_purge": "Registration purge time (UTC, seconds). Missing if the subscriber never registered on 5G", "comment": "The following fields are present if the subscriber is registered", "time_reg": "Registration time (UTC, seconds)", "protocol": "Protocol used to register (e.g. CAPIF)", "protocol_trans": "Transport of protocol used to register (e.g. HTTP)", "amf_inst": "Instance (UUID) of the AMF where subscriber is registeres", "amf_id": "AMF ID", "dereg_callback": "AMF deregistration callback URL", "domain": "AMF domain (taken from deregistration callback)", "roaming": "Boolean. Subscriber is roaming or not", "dual_reg": "Boolean. UE supports dual registration (5G + 4G). 4G registration is not cancelled when registered on 5G", "srvcc": "Boolean. UE support of 5G SRVCC", "comment__sepp": "Object describing the SEPP info. Present when AMF is registered via a SEPP (interconnect)", "sepp": { "domain": "SEPP domain", "protocol": "Protocol (HTTP)" }, "profiles": { "fiveg": "Name of 5G profile used for this registration" } } } }
Errors
{ "code": 402, "message": "Missing all parameters. / Missing all of 'subscriber_id', 'msisdn' and 'imsi'." }
{ "code": 502, "message": "Database error." }
{ "code": 404, "message": "No such subscriber." }
Examples: query_fiveg_reg
User not registered
Registred user
Request
{ "request": "query_fiveg_reg", "node": "hss", "params": { "msisdn": "882809999" } }
Response
{ "code": 0, "fiveg_reg": { "subscriber_id": 5000011, "msisdn": "882809999", "registration": { "imsi": "001019999999999", "msisdn": "882809999", "imeisv": "3556960700000000", "imei": "355696070000001", "rat_type": "NR", "visited_net": "010083", "area": "00171", "time_reg": 1682074751, "protocol": "CAPIF", "protocol_trans": "HTTP", "amf_inst": "5e7104c8-564b-4943-8880-00007f225953", "amf_id": "010083", "dereg_callback": "http://azorel.lan/capif.php/callback/AMF/CM/001019999999999", "domain": "azorel.lan", "roaming": true, "dual_reg": false, "srvcc": false, "sepp": { "domain": "sepp.azorel.lan", "protocol": "HTTP" }, "profiles": { "fiveg": "Regular" } } } }
Request: query_smsf_reg
Retrieve current 5G SMSF node (SMS function, used by visited network to deliver MT SMS via 5G NAS) registration status for a subscriber. The subscriber can be identified by 'subscriber_id', 'msisdn' (assigned or set in its SIM's multi imsi) or 'imsi' (primary, alternative or multi imsi).
Requests
{ "request": "query_smsf_reg", "params": { "comment": "Parameters used to identify the subscriber. Checked in the order listed here", "subscriber_id": "Conditional, string. Identify registration by subscriber id", "msisdn": "Conditional, string. Identify registration by MSISDN", "imsi": "Conditional, string. Identify registration by IMSI" } }
Responses
{ "code": 0, "smsf_reg": { "subscriber_id": "Subscriber ID", "msisdn": "Phone number associated to this subscriber", "comment__registration": "SMSF registration info. May be empty if a SMSF never registered since 5G support was enabled for the subscriber. May be null if 5G support is not enabled", "registration": { "imsi": "IMSI used on last registration", "msisdn": "MSISDN used when last registered", "plmn": "Last registration SMSF PLMN", "comment__time_purge": "This parameter is present if subscriber is not registered on 5G", "time_purge": "Registration purge time (UTC, seconds). Missing if a SMSF never registered", "comment": "The following fields are present if a SMSF is registered", "time_reg": "Registration time (UTC, seconds)", "protocol": "Protocol used to register (e.g. CAPIF)", "protocol_trans": "Transport of protocol used to register (e.g. HTTP)", "smsf_inst": "Instance (UUID) of the SMSF registered for this subscriber", "smsf_set": "SMSF set ID. May be missing", "gt": "MAP GT for MT SMS", "diam_host": "Diameter host. Indicates support of MT SMS using Diameter", "diam_realm": "Diameter realm", "roaming": "Boolean. Subscriber is roaming or not", "comment__sepp": "Object describing the SEPP info. Present when SMSF is registered via a SEPP (interconnect)", "sepp": { "domain": "SEPP domain", "protocol": "Protocol (HTTP)" }, "profiles": { "fiveg": "Name of 5G profile used for this registration" } } } }
Errors
{ "code": 402, "message": "Missing all parameters. / Missing all of 'subscriber_id', 'msisdn' and 'imsi'." }
{ "code": 502, "message": "Database error." }
{ "code": 404, "message": "No such subscriber." }
Examples: query_smsf_reg
User not registered
Registred user
Request
{ "request": "query_smsf_reg", "node": "hss", "params": { "msisdn": "882809999" } }
Response
{ "code": 0, "smsf_reg": { "subscriber_id": 5000011, "msisdn": "882809999", "registration": { "imsi": "001019999999999", "msisdn": "882809999", "plmn": "00171", "reason": "purged", "time_reg": 1682074751, "protocol": "CAPIF", "protocol_trans": "HTTP", "smsf_inst": "76720aaa-5829-472d-8110-000003b5b51c", "smsf_set": "set76720aaa-5829-472d-8110-000003b5b51c.smsfset.5gc.mnc071.mcc001", "gt": "88280017", "roaming": true, "sepp": { "domain": "sepp.azorel.lan", "protocol": "HTTP" }, "profiles": { "fiveg": "Regular" } } } }
Request: query_smf_reg
Retrieve current 5G data sessions registtered by SMF node(s). The subscriber can be identified by 'subscriber_id', 'msisdn' (assigned or set in its SIM's multi imsi) or 'imsi' (primary, alternative or multi imsi).
Requests
{ "request": "query_smf_reg", "params": { "comment": "Parameters used to identify the subscriber. Checked in the order listed here", "subscriber_id": "Conditional, string. Identify registration by subscriber id", "msisdn": "Conditional, string. Identify registration by MSISDN", "imsi": "Conditional, string. Identify registration by IMSI" } }
Responses
{ "code": 0, "smf_reg": { "subscriber_id": "Subscriber ID", "msisdn": "Phone number associated to this subscriber", "comment__registration": "Array of session(s) info. May be null if there is no session registered", "registration": [ { "time_chg": "Number, session register (or update) time (UTC, seconds)", "imsi": "IMSI used on last registration", "msisdn": "MSISDN used when last registered", "apn": "Name of the AP used for the session. May be missing for emergency sessions", "pdu_session_id": "Number, session ID", "nssai": "SMF NSSAI", "plmn": "SMF PLMN", "smf_inst": "Instance (UUID) of the SMF", "smf_set": "SMF set ID. May be missing", "dereg_callback": "Session deregistration callback URL", "domain": "AMF domain (taken from deregistration callback)", "protocol": "Protocol used to register (e.g. CAPIF)", "protocol_trans": "Transport of protocol used to register (e.g. HTTP)", "roaming": "Boolean. Subscriber is roaming or not in the SMF", "emergency": "Boolean. Session was established for emergency services", "comment__sepp": "Object describing the SEPP info. Present when SMF is registered via a SEPP (interconnect)", "sepp": { "domain": "SEPP domain", "protocol": "Protocol (HTTP)" } } ] } }
Errors
{ "code": 402, "message": "Missing all parameters. / Missing all of 'subscriber_id', 'msisdn' and 'imsi'." }
{ "code": 502, "message": "Database error." }
{ "code": 404, "message": "No such subscriber." }
Examples: query_smf_reg
No session registered for the user
Registred session(s)
Request
{ "request": "query_smf_reg", "node": "hss", "params": { "msisdn": "882809999" } }
Response
{ "code": 0, "smf_reg": { "subscriber_id": 5000011, "msisdn": "882809999", "registration": [ { "time_chg": 1682074752, "imsi": "001019999999999", "apn": "internet", "pdu_session_id": 1, "nssai": "1", "plmn": "00171", "smf_inst": "7641dac5-90a2-46ee-a384-00007b664935", "smf_set": "set7641dac5-90a2-46ee-a384-00007b664935.smfset.5gc.mnc071.mcc001", "dereg_callback": "http://azorel.lan/capif.php/callback/SMF/CM/cm1682074751926_1670738355", "domain": "azorel.lan", "protocol": "CAPIF", "protocol_trans": "HTTP", "roaming": true, "emergency": false, "sepp": { "domain": "sepp.azorel.lan", "protocol": "HTTP" } } ] } }
This documentation was generated on 23 September 2023