osmo-hlr/tests/test_subscriber.ctrl

712 lines
18 KiB
Plaintext
Raw Normal View History

ctrl: completely replace all CTRL commands The previous commands are not conforming to how the CTRL interface is intended to work: SET enable-ps <IMSI> SET disable-ps <IMSI> SET status-ps <IMSI> 'status-ps' is a write-only command even though it returns the status. 'enable-ps' / 'disable-ps' indicate the value instead of a variable name of an entity. The entity <IMSI> takes the place of the variable value. See also https://lists.osmocom.org/pipermail/openbsc/2017-September/011236.html Instead, replace with SET subscriber.by-imsi-123456.ps-enabled {0,1} GET subscriber.by-imsi-123456.ps-enabled and also provide further CTRL functions while at it: {SET,GET} subscriber.by-{imsi,msisdn,id}-123456.{cs,ps}-enabled {0,1} GET subscriber.by-{imsi,msisdn,id}-123456.{info,info-aud,info-all} Provide CTRL tests in the form of transcripts. Adjust tests/test_subscriber.sql to feature nonzero SQN, to see some values for SQN in the CTRL transcript tests. (This does not affect the VTY tests, because that creates its own subscribers, and there's no VTY command to set the SQN.) This is the first time an application uses CTRL_NODE ids that are defined outside of libosmocore, see 'Depends' below. Implementation choice: the first idea was to have a '.' between the 'by-xxx' and the value, like: subscriber.by-xxx.123456.function but the difficulty with subscribers is that they are not in RAM, and I can't just point node_data at a struct instance that is always there (like, say, a global bts[0] struct in osmo-bsc). Instead, I want to store the selector and later decide whether to read from the DB or whatever. With a '.' separating things, the only way in a ctrl function to obtain both 'by-xxx' and '123456' for picking a subscriber record would be to parse the entire variable path string elements, including 'subscriber' and 'function', which would then also clumsily fix at which node level we hook these commands; there could have been separate CTRL_NODE_SUBSCR_BY_{IMSI,MSISDN,ID} parent nodes, but we cannot introspect the current parent node dynamically within a ctrl function handler (plus I'm not sure whether it's possible and a good idea to have the same command under multiple parent nodes). Rather than that, I store the 'by-foo-123' token in the node_data pointer to have both bits of information pointed at by a single pointer; I use the incoming command parsing to get this token pre-separated from surrounding node names, and no need to re-allocate it, since the vector of tokens lives until after command execution is complete. Each leaf command obtains this token from cmd->node (aka node_data), and feeds this token to a common static function to parse selector and value from it and to retrieve a subscriber record as needed. (BTW, I have mentioned on the mailing list that this way might be necessary to avoid numeric-only CTRL node names, but we don't need to, and that is not at all related to this choice of structure.) Depends: libosmocore I1bd62ae0d4eefde7e1517db15a2155640a1bab58 libosmocore Ic9dba0e4a1eb5a7dc3cee2f181b9024ed4fc7005 Change-Id: I98ee6a06b3aa6a67adb868e0b63b0e04eb42eb50
2017-10-16 23:58:24 +00:00
GET 1 subscriber.by-imsi-901990000000001.info
GET_REPLY 1 subscriber.by-imsi-901990000000001.info
id 1
imsi 901990000000001
msisdn 1
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
GET 2 subscriber.by-imsi-901990000000001.info-aud
GET_REPLY 2 subscriber.by-imsi-901990000000001.info-aud
aud2g.algo COMP128v1
aud2g.ki 000102030405060708090a0b0c0d0e0f
GET 3 subscriber.by-imsi-901990000000001.info-all
GET_REPLY 3 subscriber.by-imsi-901990000000001.info-all
id 1
imsi 901990000000001
msisdn 1
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
aud2g.algo COMP128v1
aud2g.ki 000102030405060708090a0b0c0d0e0f
GET 4 subscriber.by-imsi-901990000000002.info
GET_REPLY 4 subscriber.by-imsi-901990000000002.info
id 2
imsi 901990000000002
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
GET 5 subscriber.by-imsi-901990000000002.info-aud
GET_REPLY 5 subscriber.by-imsi-901990000000002.info-aud
aud3g.algo MILENAGE
aud3g.k 000102030405060708090a0b0c0d0e0f
aud3g.opc 101112131415161718191a1b1c1d1e1f
aud3g.ind_bitlen 5
aud3g.sqn 4223
GET 6 subscriber.by-imsi-901990000000002.info-all
GET_REPLY 6 subscriber.by-imsi-901990000000002.info-all
id 2
imsi 901990000000002
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
aud3g.algo MILENAGE
aud3g.k 000102030405060708090a0b0c0d0e0f
aud3g.opc 101112131415161718191a1b1c1d1e1f
aud3g.ind_bitlen 5
aud3g.sqn 4223
GET 7 subscriber.by-imsi-901990000000003.info
GET_REPLY 7 subscriber.by-imsi-901990000000003.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
GET 8 subscriber.by-imsi-901990000000003.info-aud
GET_REPLY 8 subscriber.by-imsi-901990000000003.info-aud
aud2g.algo COMP128v1
aud2g.ki 000102030405060708090a0b0c0d0e0f
aud3g.algo MILENAGE
aud3g.k 000102030405060708090a0b0c0d0e0f
aud3g.opc 101112131415161718191a1b1c1d1e1f
aud3g.ind_bitlen 5
aud3g.sqn 2342
GET 9 subscriber.by-imsi-901990000000003.info-all
GET_REPLY 9 subscriber.by-imsi-901990000000003.info-all
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
aud2g.algo COMP128v1
aud2g.ki 000102030405060708090a0b0c0d0e0f
aud3g.algo MILENAGE
aud3g.k 000102030405060708090a0b0c0d0e0f
aud3g.opc 101112131415161718191a1b1c1d1e1f
aud3g.ind_bitlen 5
aud3g.sqn 2342
GET 10 subscriber.by-imsi-901990000000003.ps-enabled
GET_REPLY 10 subscriber.by-imsi-901990000000003.ps-enabled 1
SET 11 subscriber.by-imsi-901990000000003.ps-enabled 0
SET_REPLY 11 subscriber.by-imsi-901990000000003.ps-enabled OK
GET 12 subscriber.by-imsi-901990000000003.ps-enabled
GET_REPLY 12 subscriber.by-imsi-901990000000003.ps-enabled 0
GET 13 subscriber.by-imsi-901990000000003.info
GET_REPLY 13 subscriber.by-imsi-901990000000003.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 0
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 14 subscriber.by-imsi-901990000000003.ps-enabled 0
SET_REPLY 14 subscriber.by-imsi-901990000000003.ps-enabled OK
GET 15 subscriber.by-imsi-901990000000003.ps-enabled
GET_REPLY 15 subscriber.by-imsi-901990000000003.ps-enabled 0
SET 16 subscriber.by-imsi-901990000000003.ps-enabled 1
SET_REPLY 16 subscriber.by-imsi-901990000000003.ps-enabled OK
GET 17 subscriber.by-imsi-901990000000003.ps-enabled
GET_REPLY 17 subscriber.by-imsi-901990000000003.ps-enabled 1
GET 18 subscriber.by-imsi-901990000000003.info
GET_REPLY 18 subscriber.by-imsi-901990000000003.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 19 subscriber.by-imsi-901990000000003.ps-enabled 1
SET_REPLY 19 subscriber.by-imsi-901990000000003.ps-enabled OK
GET 20 subscriber.by-imsi-901990000000003.ps-enabled
GET_REPLY 20 subscriber.by-imsi-901990000000003.ps-enabled 1
GET 21 subscriber.by-imsi-901990000000003.cs-enabled
GET_REPLY 21 subscriber.by-imsi-901990000000003.cs-enabled 1
SET 22 subscriber.by-imsi-901990000000003.cs-enabled 0
SET_REPLY 22 subscriber.by-imsi-901990000000003.cs-enabled OK
GET 23 subscriber.by-imsi-901990000000003.cs-enabled
GET_REPLY 23 subscriber.by-imsi-901990000000003.cs-enabled 0
GET 24 subscriber.by-imsi-901990000000003.info
GET_REPLY 24 subscriber.by-imsi-901990000000003.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 0
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 25 subscriber.by-imsi-901990000000003.cs-enabled 0
SET_REPLY 25 subscriber.by-imsi-901990000000003.cs-enabled OK
GET 26 subscriber.by-imsi-901990000000003.cs-enabled
GET_REPLY 26 subscriber.by-imsi-901990000000003.cs-enabled 0
SET 27 subscriber.by-imsi-901990000000003.cs-enabled 1
SET_REPLY 27 subscriber.by-imsi-901990000000003.cs-enabled OK
GET 28 subscriber.by-imsi-901990000000003.cs-enabled
GET_REPLY 28 subscriber.by-imsi-901990000000003.cs-enabled 1
GET 29 subscriber.by-imsi-901990000000003.info
GET_REPLY 29 subscriber.by-imsi-901990000000003.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 30 subscriber.by-imsi-901990000000003.cs-enabled 1
SET_REPLY 30 subscriber.by-imsi-901990000000003.cs-enabled OK
GET 31 subscriber.by-imsi-901990000000003.cs-enabled
GET_REPLY 31 subscriber.by-imsi-901990000000003.cs-enabled 1
SET 32 subscriber.by-imsi-901990000000003.ps-enabled 0
SET_REPLY 32 subscriber.by-imsi-901990000000003.ps-enabled OK
SET 33 subscriber.by-imsi-901990000000003.cs-enabled 0
SET_REPLY 33 subscriber.by-imsi-901990000000003.cs-enabled OK
GET 34 subscriber.by-imsi-901990000000003.info
GET_REPLY 34 subscriber.by-imsi-901990000000003.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 0
nam_ps 0
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 35 subscriber.by-imsi-901990000000003.ps-enabled 1
SET_REPLY 35 subscriber.by-imsi-901990000000003.ps-enabled OK
SET 36 subscriber.by-imsi-901990000000003.cs-enabled 1
SET_REPLY 36 subscriber.by-imsi-901990000000003.cs-enabled OK
GET 37 subscriber.by-imsi-901990000000003.info
GET_REPLY 37 subscriber.by-imsi-901990000000003.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
GET 38 subscriber.by-msisdn-103.info
GET_REPLY 38 subscriber.by-msisdn-103.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
GET 39 subscriber.by-msisdn-103.info-aud
GET_REPLY 39 subscriber.by-msisdn-103.info-aud
aud2g.algo COMP128v1
aud2g.ki 000102030405060708090a0b0c0d0e0f
aud3g.algo MILENAGE
aud3g.k 000102030405060708090a0b0c0d0e0f
aud3g.opc 101112131415161718191a1b1c1d1e1f
aud3g.ind_bitlen 5
aud3g.sqn 2342
GET 40 subscriber.by-msisdn-103.info-all
GET_REPLY 40 subscriber.by-msisdn-103.info-all
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
aud2g.algo COMP128v1
aud2g.ki 000102030405060708090a0b0c0d0e0f
aud3g.algo MILENAGE
aud3g.k 000102030405060708090a0b0c0d0e0f
aud3g.opc 101112131415161718191a1b1c1d1e1f
aud3g.ind_bitlen 5
aud3g.sqn 2342
GET 41 subscriber.by-msisdn-103.ps-enabled
GET_REPLY 41 subscriber.by-msisdn-103.ps-enabled 1
SET 42 subscriber.by-msisdn-103.ps-enabled 0
SET_REPLY 42 subscriber.by-msisdn-103.ps-enabled OK
GET 43 subscriber.by-msisdn-103.ps-enabled
GET_REPLY 43 subscriber.by-msisdn-103.ps-enabled 0
GET 44 subscriber.by-msisdn-103.info
GET_REPLY 44 subscriber.by-msisdn-103.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 0
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 45 subscriber.by-msisdn-103.ps-enabled 0
SET_REPLY 45 subscriber.by-msisdn-103.ps-enabled OK
GET 46 subscriber.by-msisdn-103.ps-enabled
GET_REPLY 46 subscriber.by-msisdn-103.ps-enabled 0
SET 47 subscriber.by-msisdn-103.ps-enabled 1
SET_REPLY 47 subscriber.by-msisdn-103.ps-enabled OK
GET 48 subscriber.by-msisdn-103.ps-enabled
GET_REPLY 48 subscriber.by-msisdn-103.ps-enabled 1
GET 49 subscriber.by-msisdn-103.info
GET_REPLY 49 subscriber.by-msisdn-103.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 50 subscriber.by-msisdn-103.ps-enabled 1
SET_REPLY 50 subscriber.by-msisdn-103.ps-enabled OK
GET 51 subscriber.by-msisdn-103.ps-enabled
GET_REPLY 51 subscriber.by-msisdn-103.ps-enabled 1
GET 52 subscriber.by-msisdn-103.cs-enabled
GET_REPLY 52 subscriber.by-msisdn-103.cs-enabled 1
SET 53 subscriber.by-msisdn-103.cs-enabled 0
SET_REPLY 53 subscriber.by-msisdn-103.cs-enabled OK
GET 54 subscriber.by-msisdn-103.cs-enabled
GET_REPLY 54 subscriber.by-msisdn-103.cs-enabled 0
GET 55 subscriber.by-msisdn-103.info
GET_REPLY 55 subscriber.by-msisdn-103.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 0
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 56 subscriber.by-msisdn-103.cs-enabled 0
SET_REPLY 56 subscriber.by-msisdn-103.cs-enabled OK
GET 57 subscriber.by-msisdn-103.cs-enabled
GET_REPLY 57 subscriber.by-msisdn-103.cs-enabled 0
SET 58 subscriber.by-msisdn-103.cs-enabled 1
SET_REPLY 58 subscriber.by-msisdn-103.cs-enabled OK
GET 59 subscriber.by-msisdn-103.cs-enabled
GET_REPLY 59 subscriber.by-msisdn-103.cs-enabled 1
GET 60 subscriber.by-msisdn-103.info
GET_REPLY 60 subscriber.by-msisdn-103.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 61 subscriber.by-msisdn-103.cs-enabled 1
SET_REPLY 61 subscriber.by-msisdn-103.cs-enabled OK
GET 62 subscriber.by-msisdn-103.cs-enabled
GET_REPLY 62 subscriber.by-msisdn-103.cs-enabled 1
SET 63 subscriber.by-msisdn-103.ps-enabled 0
SET_REPLY 63 subscriber.by-msisdn-103.ps-enabled OK
SET 64 subscriber.by-msisdn-103.cs-enabled 0
SET_REPLY 64 subscriber.by-msisdn-103.cs-enabled OK
GET 65 subscriber.by-msisdn-103.info
GET_REPLY 65 subscriber.by-msisdn-103.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 0
nam_ps 0
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 66 subscriber.by-msisdn-103.ps-enabled 1
SET_REPLY 66 subscriber.by-msisdn-103.ps-enabled OK
SET 67 subscriber.by-msisdn-103.cs-enabled 1
SET_REPLY 67 subscriber.by-msisdn-103.cs-enabled OK
GET 68 subscriber.by-msisdn-103.info
GET_REPLY 68 subscriber.by-msisdn-103.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
GET 69 subscriber.by-id-3.info
GET_REPLY 69 subscriber.by-id-3.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
GET 70 subscriber.by-id-3.info-aud
GET_REPLY 70 subscriber.by-id-3.info-aud
aud2g.algo COMP128v1
aud2g.ki 000102030405060708090a0b0c0d0e0f
aud3g.algo MILENAGE
aud3g.k 000102030405060708090a0b0c0d0e0f
aud3g.opc 101112131415161718191a1b1c1d1e1f
aud3g.ind_bitlen 5
aud3g.sqn 2342
GET 71 subscriber.by-id-3.info-all
GET_REPLY 71 subscriber.by-id-3.info-all
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
aud2g.algo COMP128v1
aud2g.ki 000102030405060708090a0b0c0d0e0f
aud3g.algo MILENAGE
aud3g.k 000102030405060708090a0b0c0d0e0f
aud3g.opc 101112131415161718191a1b1c1d1e1f
aud3g.ind_bitlen 5
aud3g.sqn 2342
GET 72 subscriber.by-id-3.ps-enabled
GET_REPLY 72 subscriber.by-id-3.ps-enabled 1
SET 73 subscriber.by-id-3.ps-enabled 0
SET_REPLY 73 subscriber.by-id-3.ps-enabled OK
GET 74 subscriber.by-id-3.ps-enabled
GET_REPLY 74 subscriber.by-id-3.ps-enabled 0
GET 75 subscriber.by-id-3.info
GET_REPLY 75 subscriber.by-id-3.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 0
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 76 subscriber.by-id-3.ps-enabled 0
SET_REPLY 76 subscriber.by-id-3.ps-enabled OK
GET 77 subscriber.by-id-3.ps-enabled
GET_REPLY 77 subscriber.by-id-3.ps-enabled 0
SET 78 subscriber.by-id-3.ps-enabled 1
SET_REPLY 78 subscriber.by-id-3.ps-enabled OK
GET 79 subscriber.by-id-3.ps-enabled
GET_REPLY 79 subscriber.by-id-3.ps-enabled 1
GET 80 subscriber.by-id-3.info
GET_REPLY 80 subscriber.by-id-3.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 81 subscriber.by-id-3.ps-enabled 1
SET_REPLY 81 subscriber.by-id-3.ps-enabled OK
GET 82 subscriber.by-id-3.ps-enabled
GET_REPLY 82 subscriber.by-id-3.ps-enabled 1
GET 83 subscriber.by-id-3.cs-enabled
GET_REPLY 83 subscriber.by-id-3.cs-enabled 1
SET 84 subscriber.by-id-3.cs-enabled 0
SET_REPLY 84 subscriber.by-id-3.cs-enabled OK
GET 85 subscriber.by-id-3.cs-enabled
GET_REPLY 85 subscriber.by-id-3.cs-enabled 0
GET 86 subscriber.by-id-3.info
GET_REPLY 86 subscriber.by-id-3.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 0
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 87 subscriber.by-id-3.cs-enabled 0
SET_REPLY 87 subscriber.by-id-3.cs-enabled OK
GET 88 subscriber.by-id-3.cs-enabled
GET_REPLY 88 subscriber.by-id-3.cs-enabled 0
SET 89 subscriber.by-id-3.cs-enabled 1
SET_REPLY 89 subscriber.by-id-3.cs-enabled OK
GET 90 subscriber.by-id-3.cs-enabled
GET_REPLY 90 subscriber.by-id-3.cs-enabled 1
GET 91 subscriber.by-id-3.info
GET_REPLY 91 subscriber.by-id-3.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 92 subscriber.by-id-3.cs-enabled 1
SET_REPLY 92 subscriber.by-id-3.cs-enabled OK
GET 93 subscriber.by-id-3.cs-enabled
GET_REPLY 93 subscriber.by-id-3.cs-enabled 1
SET 94 subscriber.by-id-3.ps-enabled 0
SET_REPLY 94 subscriber.by-id-3.ps-enabled OK
SET 95 subscriber.by-id-3.cs-enabled 0
SET_REPLY 95 subscriber.by-id-3.cs-enabled OK
GET 96 subscriber.by-id-3.info
GET_REPLY 96 subscriber.by-id-3.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 0
nam_ps 0
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 97 subscriber.by-id-3.ps-enabled 1
SET_REPLY 97 subscriber.by-id-3.ps-enabled OK
SET 98 subscriber.by-id-3.cs-enabled 1
SET_REPLY 98 subscriber.by-id-3.cs-enabled OK
GET 99 subscriber.by-id-3.info
GET_REPLY 99 subscriber.by-id-3.info
id 3
imsi 901990000000003
msisdn 103
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
GET 100 subscriber.by-id-00123.info
GET_REPLY 100 subscriber.by-id-00123.info
id 123
imsi 123123
msisdn 123
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 101 subscriber.create 901991234567891
SET_REPLY 101 subscriber.create 124
GET 102 subscriber.by-id-124.info
GET_REPLY 102 subscriber.by-id-124.info
id 124
imsi 901991234567891
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
GET 103 subscriber.by-imsi-901991234567891.msisdn
GET_REPLY 103 subscriber.by-imsi-901991234567891.msisdn none
SET 104 subscriber.by-imsi-901991234567891.msisdn 555666
SET_REPLY 104 subscriber.by-imsi-901991234567891.msisdn OK
GET 105 subscriber.by-imsi-901991234567891.msisdn
GET_REPLY 105 subscriber.by-imsi-901991234567891.msisdn 555666
SET 106 subscriber.by-imsi-901991234567891.msisdn 888000
SET_REPLY 106 subscriber.by-imsi-901991234567891.msisdn OK
GET 107 subscriber.by-imsi-901991234567891.msisdn
GET_REPLY 107 subscriber.by-imsi-901991234567891.msisdn 888000
GET 108 subscriber.by-imsi-901991234567891.info
GET_REPLY 108 subscriber.by-imsi-901991234567891.info
id 124
imsi 901991234567891
msisdn 888000
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
SET 109 subscriber.by-imsi-901991234567891.msisdn none
SET_REPLY 109 subscriber.by-imsi-901991234567891.msisdn OK
GET 110 subscriber.by-imsi-901991234567891.msisdn
GET_REPLY 110 subscriber.by-imsi-901991234567891.msisdn none
GET 111 subscriber.by-imsi-901991234567891.info
GET_REPLY 111 subscriber.by-imsi-901991234567891.info
id 124
imsi 901991234567891
nam_cs 1
nam_ps 1
ms_purged_cs 0
ms_purged_ps 0
periodic_lu_timer 0
periodic_rau_tau_timer 0
lmsi 00000000
GET 112 subscriber.by-imsi-901991234567891.aud2g
GET_REPLY 112 subscriber.by-imsi-901991234567891.aud2g none
SET 113 subscriber.by-imsi-901991234567891.aud2g xor,c01ffedc1cadaeac1d1f1edacac1ab0a
SET_REPLY 113 subscriber.by-imsi-901991234567891.aud2g OK
GET 114 subscriber.by-imsi-901991234567891.aud2g
GET_REPLY 114 subscriber.by-imsi-901991234567891.aud2g XOR-3G,c01ffedc1cadaeac1d1f1edacac1ab0a
SET 115 subscriber.by-imsi-901991234567891.aud2g none
SET_REPLY 115 subscriber.by-imsi-901991234567891.aud2g OK
GET 116 subscriber.by-imsi-901991234567891.aud2g
GET_REPLY 116 subscriber.by-imsi-901991234567891.aud2g none
GET 117 subscriber.by-imsi-901991234567891.aud3g
GET_REPLY 117 subscriber.by-imsi-901991234567891.aud3g none
SET 118 subscriber.by-imsi-901991234567891.aud3g milenage,c01ffedc1cadaeac1d1f1edacac1ab0a,OP,FB2A3D1B360F599ABAB99DB8669F8308
SET_REPLY 118 subscriber.by-imsi-901991234567891.aud3g OK
GET 119 subscriber.by-imsi-901991234567891.aud3g
GET_REPLY 119 subscriber.by-imsi-901991234567891.aud3g MILENAGE,c01ffedc1cadaeac1d1f1edacac1ab0a,OP,fb2a3d1b360f599abab99db8669f8308,5
SET 120 subscriber.by-imsi-901991234567891.aud3g milenage,c01ffedc1cadaeac1d1f1edacac1ab0a,OPC,FB2A3D1B360F599ABAB99DB8669F8308,7
SET_REPLY 120 subscriber.by-imsi-901991234567891.aud3g OK
GET 121 subscriber.by-imsi-901991234567891.aud3g
GET_REPLY 121 subscriber.by-imsi-901991234567891.aud3g MILENAGE,c01ffedc1cadaeac1d1f1edacac1ab0a,OPC,fb2a3d1b360f599abab99db8669f8308,7
SET 122 subscriber.by-imsi-901991234567891.aud3g none
SET_REPLY 122 subscriber.by-imsi-901991234567891.aud3g OK
GET 123 subscriber.by-imsi-901991234567891.aud3g
GET_REPLY 123 subscriber.by-imsi-901991234567891.aud3g none
SET 124 subscriber.delete 901991234567891
SET_REPLY 124 subscriber.delete 124