aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmsc/msc_vty.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-02-09 20:41:14 +0100
committerHarald Welte <laforge@gnumonks.org>2018-02-09 22:30:39 +0100
commit69c54a8b3c4ec16b832474350ca4d1ef7ffb86d4 (patch)
tree2564550d24c0e195735a38e1c941c53b9cef3ef9 /src/libmsc/msc_vty.c
parenta172e9e231b7f37016dc2a8d443cc64cbc6fa898 (diff)
Add VTY command to configure destination MSISDN for emergency calls
As in GSM/3GPP networks emergency calls carry no explicit destination number/address, add a VTY commadn to patch in some destination handler in the EMERGENCY SETUP before delivering to [internal or external] MNCC. Change-Id: I7c9f43ba312fadda2b9a9483b3cf50e4abca9599
Diffstat (limited to 'src/libmsc/msc_vty.c')
-rw-r--r--src/libmsc/msc_vty.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c
index faf17ec3c..ad4014da9 100644
--- a/src/libmsc/msc_vty.c
+++ b/src/libmsc/msc_vty.c
@@ -125,6 +125,20 @@ DEFUN(cfg_msc_paging_response_timer, cfg_msc_paging_response_timer_cmd,
return CMD_SUCCESS;
}
+DEFUN(cfg_msc_emergency_msisdn, cfg_msc_emergency_msisdn_cmd,
+ "emergency-call route-to-msisdn MSISDN",
+ "Configure Emergency Call Behaviour\n"
+ "MSISDN to which Emergency Calls are Dispatched\n"
+ "MSISDN (E.164 Phone Number)\n")
+{
+ struct gsm_network *gsmnet = gsmnet_from_vty(vty);
+
+ osmo_talloc_replace_string(gsmnet, &gsmnet->emergency.route_to_msisdn, argv[0]);
+
+ return CMD_SUCCESS;
+}
+
+
static int config_write_msc(struct vty *vty)
{
struct gsm_network *gsmnet = gsmnet_from_vty(vty);
@@ -149,6 +163,11 @@ static int config_write_msc(struct vty *vty)
if (gsmnet->paging_response_timer != MSC_PAGING_RESPONSE_TIMER_DEFAULT)
vty_out(vty, " paging response-timer %u%s", gsmnet->paging_response_timer, VTY_NEWLINE);
+ if (gsmnet->emergency.route_to_msisdn) {
+ vty_out(vty, " emergency-call route-to-msisdn %s%s",
+ gsmnet->emergency.route_to_msisdn, VTY_NEWLINE);
+ }
+
mgcp_client_config_write(vty, " ");
#ifdef BUILD_IU
ranap_iu_vty_config_write(vty, " ");
@@ -196,6 +215,11 @@ static int config_write_net(struct vty *vty)
vty_out(vty, " periodic location update %u%s",
gsmnet->t3212 * 6, VTY_NEWLINE);
+ if (gsmnet->emergency.route_to_msisdn) {
+ vty_out(vty, " emergency-call route-to-msisdn %s%s",
+ gsmnet->emergency.route_to_msisdn, VTY_NEWLINE);
+ }
+
return CMD_SUCCESS;
}
@@ -212,6 +236,7 @@ void msc_vty_init(struct gsm_network *msc_network)
install_element(MSC_NODE, &cfg_msc_cs7_instance_a_cmd);
install_element(MSC_NODE, &cfg_msc_cs7_instance_iu_cmd);
install_element(MSC_NODE, &cfg_msc_paging_response_timer_cmd);
+ install_element(MSC_NODE, &cfg_msc_emergency_msisdn_cmd);
mgcp_client_vty_init(msc_network, MSC_NODE, &msc_network->mgw.conf);
#ifdef BUILD_IU