diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-02-09 20:41:14 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-02-09 22:30:39 +0100 |
commit | 69c54a8b3c4ec16b832474350ca4d1ef7ffb86d4 (patch) | |
tree | 2564550d24c0e195735a38e1c941c53b9cef3ef9 /src/libmsc/msc_vty.c | |
parent | a172e9e231b7f37016dc2a8d443cc64cbc6fa898 (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.c | 25 |
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 |