aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libbsc
diff options
context:
space:
mode:
authorIvan Kluchnikov <kluchnikovi@gmail.com>2015-07-21 11:40:08 +0300
committerIvan Kluchnikov <kluchnikovi@gmail.com>2015-07-22 21:32:10 +0300
commit85439534961c34f620117979d658bdbb760bafb3 (patch)
tree1e3aaa5d50a689d03590c8533d3a1b8a5c5ddf1b /openbsc/src/libbsc
parent3cc7d2b50d8e6d8834135adbb984c90500cacaae (diff)
sub: Add the ability to set prefix for randomly generated extensions
Prefix is added before randomly generated extension. Prefix is useful in case of "accept-all" authentication mode is used and routing based on number prefix is used. Added optional configuration parameter "extension-prefix".
Diffstat (limited to 'openbsc/src/libbsc')
-rw-r--r--openbsc/src/libbsc/bsc_vty.c14
-rw-r--r--openbsc/src/libbsc/net_init.c1
2 files changed, 15 insertions, 0 deletions
diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c
index a4c5309d9..6be67882f 100644
--- a/openbsc/src/libbsc/bsc_vty.c
+++ b/openbsc/src/libbsc/bsc_vty.c
@@ -794,6 +794,8 @@ static int config_write_net(struct vty *vty)
vty_out(vty, " dtx-used %u%s", gsmnet->dtx_enabled, VTY_NEWLINE);
vty_out(vty, " subscriber-keep-in-ram %d%s",
gsmnet->subscr_group->keep_subscr, VTY_NEWLINE);
+ vty_out(vty, " extension-prefix %llu%s",
+ gsmnet->exten_prefix, VTY_NEWLINE);
return CMD_SUCCESS;
}
@@ -1601,6 +1603,17 @@ DEFUN(cfg_net_subscr_keep,
return CMD_SUCCESS;
}
+DEFUN(cfg_net_exten_prefix,
+ cfg_net_exten_prefix_cmd,
+ "extension-prefix <1-999999999>",
+ "Prefix for subscribers extension.\n"
+ "Extension prefix\n")
+{
+ struct gsm_network *gsmnet = gsmnet_from_vty(vty);
+ gsmnet->exten_prefix = strtoull(argv[0], NULL, 10);
+ return CMD_SUCCESS;
+}
+
/* per-BTS configuration */
DEFUN(cfg_bts,
cfg_bts_cmd,
@@ -3805,6 +3818,7 @@ int bsc_vty_init(const struct log_info *cat)
install_element(GSMNET_NODE, &cfg_net_dtx_cmd);
install_element(GSMNET_NODE, &cfg_net_subscr_keep_cmd);
install_element(GSMNET_NODE, &cfg_net_pag_any_tch_cmd);
+ install_element(GSMNET_NODE, &cfg_net_exten_prefix_cmd);
install_element(GSMNET_NODE, &cfg_bts_cmd);
install_node(&bts_node, config_write_bts);
diff --git a/openbsc/src/libbsc/net_init.c b/openbsc/src/libbsc/net_init.c
index 568a0b85e..16e8146a7 100644
--- a/openbsc/src/libbsc/net_init.c
+++ b/openbsc/src/libbsc/net_init.c
@@ -49,6 +49,7 @@ struct gsm_network *gsm_network_init(uint16_t country_code, uint16_t network_cod
net->subscr_group->net = net;
net->create_subscriber = 1;
+ net->exten_prefix = 0;
net->country_code = country_code;
net->network_code = network_code;