diff options
author | Harald Welte <laforge@osmocom.org> | 2022-05-17 18:56:55 +0200 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2022-05-17 19:30:46 +0200 |
commit | a03416b80661c4fc9d4303c6a1554252dc6e3a8c (patch) | |
tree | 40bb865c7e8ae45e4a9e88d7eae561399e9e9e87 | |
parent | 39e32c9c20131f2b890e0d24a23049ea58873f32 (diff) |
sms: Make default SMS validity period configurable via VTY
Change-Id: Ie2c81c1d5795dd9aaf07b9766013f20b01abc762
-rw-r--r-- | include/osmocom/msc/sms_queue.h | 1 | ||||
-rw-r--r-- | src/libmsc/smpp_openbsc.c | 2 | ||||
-rw-r--r-- | src/libmsc/sms_queue.c | 1 | ||||
-rw-r--r-- | src/libmsc/smsc_vty.c | 14 |
4 files changed, 17 insertions, 1 deletions
diff --git a/include/osmocom/msc/sms_queue.h b/include/osmocom/msc/sms_queue.h index ccc56ab74..c3a6cfb5c 100644 --- a/include/osmocom/msc/sms_queue.h +++ b/include/osmocom/msc/sms_queue.h @@ -13,6 +13,7 @@ struct sms_queue_config { int max_pending; /* maximum number of gsm_sms_pending in RAM */ bool delete_delivered; /* delete delivered SMS from DB? */ bool delete_expired; /* delete expired SMS from DB? */ + unsigned int default_validity_mins; /* default validity period in minutes */ }; struct sms_queue_config *sms_queue_cfg_alloc(void *ctx); diff --git a/src/libmsc/smpp_openbsc.c b/src/libmsc/smpp_openbsc.c index 4ce6c27d9..64d4f1e2e 100644 --- a/src/libmsc/smpp_openbsc.c +++ b/src/libmsc/smpp_openbsc.c @@ -263,7 +263,7 @@ static int submit_to_sms(struct gsm_sms **psms, struct gsm_network *net, t_validity_absolute = smpp_parse_time_format((const char *) submit->validity_period, &t_now); if (!t_validity_absolute) - sms->validity_minutes = 7 * 24 * 60; /* default: 7 days */ + sms->validity_minutes = net->sms_queue_cfg->default_validity_mins; else sms->validity_minutes = (t_validity_absolute - t_now) / 60; diff --git a/src/libmsc/sms_queue.c b/src/libmsc/sms_queue.c index 7d1860f76..24811c513 100644 --- a/src/libmsc/sms_queue.c +++ b/src/libmsc/sms_queue.c @@ -474,6 +474,7 @@ struct sms_queue_config *sms_queue_cfg_alloc(void *ctx) sqcfg->max_fail = 1; sqcfg->delete_delivered = true; sqcfg->delete_expired = true; + sqcfg->default_validity_mins = 7 * 24 * 60; /* 7 days */ sqcfg->db_file_path = talloc_strdup(ctx, SMS_DEFAULT_DB_FILE_PATH); return sqcfg; diff --git a/src/libmsc/smsc_vty.c b/src/libmsc/smsc_vty.c index b2d191a4d..547b7d58e 100644 --- a/src/libmsc/smsc_vty.c +++ b/src/libmsc/smsc_vty.c @@ -98,6 +98,17 @@ DEFUN(cfg_sms_db_del_expired, cfg_sms_db_del_expired_cmd, return CMD_SUCCESS; } +DEFUN(cfg_sms_def_val_per, cfg_sms_def_val_per_cmd, + "validity-period default <1-5256000>", + "Configure validity period for SMS\n" + "Default SMS validity period in minutes\n" + "Default SMS validity period in minutes\n") +{ + smqcfg->default_validity_mins = atoi(argv[0]); + return CMD_SUCCESS; +} + + /*********************************************************************** * View / Enable Node ***********************************************************************/ @@ -166,6 +177,8 @@ static int config_write_smsc(struct vty *vty) vty_out(vty, " database delete-delivered %u%s", smqcfg->delete_delivered, VTY_NEWLINE); vty_out(vty, " database delete-expired %u%s", smqcfg->delete_expired, VTY_NEWLINE); + vty_out(vty, " validity-period default %u%s", smqcfg->default_validity_mins, VTY_NEWLINE); + return 0; } @@ -183,6 +196,7 @@ void smsc_vty_init(struct gsm_network *msc_network) install_element(SMSC_NODE, &cfg_sms_queue_fail_cmd); install_element(SMSC_NODE, &cfg_sms_db_del_delivered_cmd); install_element(SMSC_NODE, &cfg_sms_db_del_expired_cmd); + install_element(SMSC_NODE, &cfg_sms_def_val_per_cmd); /* enable node */ install_element(ENABLE_NODE, &smsqueue_trigger_cmd); |