laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-hlr/+/37780?usp=email )

Change subject: subscriber-create-on-demand: add mode for MSISDN=IMSI
......................................................................

subscriber-create-on-demand: add mode for MSISDN=IMSI

In may be desirable for some users to assign deterministic MSISDNs
when subscriber-create-on-demand is enabled.  This can be achieved
by assigning MSISDN=IMSI.  This commit adds a new mode for that.

Change-Id: I3470492f5e46de7246d9a74e80c37f80f455d851
---
M include/osmocom/hlr/hlr.h
M src/hlr.c
M src/hlr_vty.c
M tests/test_nodes.vty
M tests/test_subscr_create_on_demand.vty
5 files changed, 20 insertions(+), 2 deletions(-)

Approvals:
  osmith: Looks good to me, but someone else must approve
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified
  laforge: Looks good to me, approved




diff --git a/include/osmocom/hlr/hlr.h b/include/osmocom/hlr/hlr.h
index 4bdb5b0..a7cf61d 100644
--- a/include/osmocom/hlr/hlr.h
+++ b/include/osmocom/hlr/hlr.h
@@ -43,6 +43,7 @@
        SUBSCR_COD_MODE_DISABLED = 0,
        SUBSCR_COD_MODE_NO_MSISDN,
        SUBSCR_COD_MODE_RAND_MSISDN,
+       SUBSCR_COD_MODE_MSISDN_FROM_IMSI,
 };

 struct hlr {
diff --git a/src/hlr.c b/src/hlr.c
index 44c96b5..6f444aa 100644
--- a/src/hlr.c
+++ b/src/hlr.c
@@ -209,6 +209,9 @@
                return -1;

        switch (g_hlr->subscr_create_on_demand.mode) {
+       case SUBSCR_COD_MODE_MSISDN_FROM_IMSI:
+               OSMO_STRLCPY_ARRAY(msisdn, imsi);
+               break;
        case SUBSCR_COD_MODE_RAND_MSISDN:
                if (generate_new_msisdn(msisdn, imsi, 
g_hlr->subscr_create_on_demand.rand_msisdn_len) != 0)
                        return -1;
diff --git a/src/hlr_vty.c b/src/hlr_vty.c
index ae1e13e..2c7cd5b 100644
--- a/src/hlr_vty.c
+++ b/src/hlr_vty.c
@@ -288,6 +288,9 @@
        const char *flags_str;

        switch (g_hlr->subscr_create_on_demand.mode) {
+       case SUBSCR_COD_MODE_MSISDN_FROM_IMSI:
+               vty_out(vty, " subscriber-create-on-demand msisdn-from-imsi");
+               break;
        case SUBSCR_COD_MODE_RAND_MSISDN:
                vty_out(vty, " subscriber-create-on-demand %u",
                        g_hlr->subscr_create_on_demand.rand_msisdn_len);
@@ -810,9 +813,10 @@
 }

 DEFUN(cfg_subscr_create_on_demand, cfg_subscr_create_on_demand_cmd,
-       "subscriber-create-on-demand (no-msisdn|<3-15>) (none|cs|ps|cs+ps)",
+       "subscriber-create-on-demand (no-msisdn|msisdn-from-imsi|<3-15>) 
(none|cs|ps|cs+ps)",
        "Make a new record when a subscriber is first seen.\n"
        "Do not automatically assign MSISDN.\n"
+       "Assign MSISDN identical to subscriber's IMSI.\n"
        "Length of an automatically assigned MSISDN.\n"
        "Do not allow any NAM (Network Access Mode) by default.\n"
        "Allow access to circuit switched NAM by default.\n"
@@ -825,6 +829,8 @@

        if (strcmp(argv[0], "no-msisdn") == 0) {
                mode = SUBSCR_COD_MODE_NO_MSISDN;
+       } else if (strcmp(argv[0], "msisdn-from-imsi") == 0) {
+               mode = SUBSCR_COD_MODE_MSISDN_FROM_IMSI;
        } else { /* random MSISDN */
                mode = SUBSCR_COD_MODE_RAND_MSISDN;
                rand_msisdn_len = atoi(argv[0]);
diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty
index 02a5552..6875416 100644
--- a/tests/test_nodes.vty
+++ b/tests/test_nodes.vty
@@ -73,7 +73,7 @@
   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)
+  subscriber-create-on-demand (no-msisdn|msisdn-from-imsi|<3-15>) 
(none|cs|ps|cs+ps)
   no subscriber-create-on-demand

 OsmoHLR(config-hlr)# gsup
diff --git a/tests/test_subscr_create_on_demand.vty 
b/tests/test_subscr_create_on_demand.vty
index fb587ae..76c6769 100644
--- a/tests/test_subscr_create_on_demand.vty
+++ b/tests/test_subscr_create_on_demand.vty
@@ -10,6 +10,14 @@
  subscriber-create-on-demand no-msisdn none
 ...

+OsmoHLR(config-hlr)# subscriber-create-on-demand msisdn-from-imsi cs+ps
+OsmoHLR(config-hlr)# show running-config
+...
+hlr
+...
+ subscriber-create-on-demand msisdn-from-imsi cs+ps
+...
+
 OsmoHLR(config-hlr)# subscriber-create-on-demand 3 none
 OsmoHLR(config-hlr)# show running-config
 ...

--
To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/37780?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: osmo-hlr
Gerrit-Branch: master
Gerrit-Change-Id: I3470492f5e46de7246d9a74e80c37f80f455d851
Gerrit-Change-Number: 37780
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: neels <[email protected]>
Gerrit-Reviewer: osmith <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>

Reply via email to