Attention is currently required from: pespin, keith, lynxis lazus.
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/28338 )
Change subject: Refactor smsq_take_next_sms()
......................................................................
Patch Set 1:
(1 comment)
Patchset:
PS1:
I'm somewhat skeptical it makes sense to merge this to master. It creates a merge nightmare for all of my work on a SQL-less SMS storage backend. So if we merege this, I expect it will cost days of additional work at my end :/
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/28338
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I06c418d4919dd8d28c643b7e0a735bc74d66212c
Gerrit-Change-Number: 28338
Gerrit-PatchSet: 1
Gerrit-Owner: keith <keith(a)rhizomatica.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: keith <keith(a)rhizomatica.org>
Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Comment-Date: Sat, 18 Jun 2022 09:03:37 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
Attention is currently required from: keith.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-msc/+/28345
to look at the new patch set (#2).
Change subject: Add VTY command for SMS queue trigger holdoff
......................................................................
Add VTY command for SMS queue trigger holdoff
There are various places in the code that retrigger the SMS -> In Memory pending queue
mechanism. The default was to trigger the queue in one second, which could result in
running the queue every second.
This parameter can ease the queue run interval in case one second is causing too
much load. Sms _SHOULD_ be delivered anyway without these queue runs, due to for
example, MS becoming available or due to being notified by the call back of a new SMS.
Change-Id: I43d88342436d654afd6d955e304e7f85fbc4840f
---
M include/osmocom/msc/sms_queue.h
M src/libmsc/sms_queue.c
M src/libmsc/smsc_vty.c
M tests/test_nodes.vty
4 files changed, 25 insertions(+), 5 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/45/28345/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/28345
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I43d88342436d654afd6d955e304e7f85fbc4840f
Gerrit-Change-Number: 28345
Gerrit-PatchSet: 2
Gerrit-Owner: keith <keith(a)rhizomatica.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: keith <keith(a)rhizomatica.org>
Gerrit-MessageType: newpatchset
Attention is currently required from: pespin, lynxis lazus.
keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/28338 )
Change subject: Refactor smsq_take_next_sms()
......................................................................
Patch Set 1:
(1 comment)
Patchset:
PS1:
I'm aware that there is a patch in progress that will remove the DB from osmo-msc altogether.
However, for the time being maybe it makes sense to have this is master.
(I'll clean up the commit messages that are two wide if it gets positive review)
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/28338
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I06c418d4919dd8d28c643b7e0a735bc74d66212c
Gerrit-Change-Number: 28338
Gerrit-PatchSet: 1
Gerrit-Owner: keith <keith(a)rhizomatica.org>
Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-CC: Jenkins Builder
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Comment-Date: Sat, 18 Jun 2022 02:33:17 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/28345 )
Change subject: Add VTY command for SMS queue trigger holdoff
......................................................................
Add VTY command for SMS queue trigger holdoff
There are various places in the code that retrigger the SMS -> In Memory pending queue
mechanism. The default was to trigger the queue in one second, which could result in
running the queue every second.
This parameter can ease the queue run interval in case one second is causing too
much load. Sms _SHOULD_ be delivered anyway without these queue runs, due to for
example, MS becoming available or due to being notified by the call back of a new SMS.
Change-Id: I43d88342436d654afd6d955e304e7f85fbc4840f
---
M include/osmocom/msc/sms_queue.h
M src/libmsc/sms_queue.c
M src/libmsc/smsc_vty.c
3 files changed, 24 insertions(+), 5 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/45/28345/1
diff --git a/include/osmocom/msc/sms_queue.h b/include/osmocom/msc/sms_queue.h
index e4b2a12..9ada525 100644
--- a/include/osmocom/msc/sms_queue.h
+++ b/include/osmocom/msc/sms_queue.h
@@ -32,6 +32,7 @@
bool delete_expired; /* delete expired SMS from DB? */
unsigned int minimum_validity_mins; /* minimum validity period in minutes */
unsigned int default_validity_mins; /* default validity period in minutes */
+ unsigned int trigger_holdoff; /* How often can the queue be re-triggered? */
};
struct sms_queue_config *sms_queue_cfg_alloc(void *ctx);
diff --git a/src/libmsc/sms_queue.c b/src/libmsc/sms_queue.c
index b6f92e2..eb0118d 100644
--- a/src/libmsc/sms_queue.c
+++ b/src/libmsc/sms_queue.c
@@ -441,14 +441,21 @@
sms_submit_pending(net->sms_queue);
}
-/* Trigger a call to sms_submit_pending() in one second */
+/* Trigger a call to sms_submit_pending() in x seconds */
int sms_queue_trigger(struct gsm_sms_queue *smsq)
{
- LOGP(DLSMS, LOGL_DEBUG, "Triggering SMS queue\n");
- if (osmo_timer_pending(&smsq->push_queue))
- return 0;
+ struct timeval tv;
- osmo_timer_schedule(&smsq->push_queue, 1, 0);
+ LOGP(DLSMS, LOGL_DEBUG, "Triggering SMS queue\n");
+ if (osmo_timer_pending(&smsq->push_queue)) {
+ if (osmo_timer_remaining(&smsq->push_queue, NULL, &tv) == -1)
+ return 0;
+ LOGP(DLSMS, LOGL_INFO, "SMS queue already set to run in %lu seconds.\n",
+ tv.tv_sec);
+ return 0;
+ }
+
+ osmo_timer_schedule(&smsq->push_queue, smsq->cfg->trigger_holdoff, 0);
return 0;
}
@@ -464,6 +471,7 @@
sqcfg->delete_expired = true;
sqcfg->default_validity_mins = 7 * 24 * 60; /* 7 days */
sqcfg->minimum_validity_mins = 1;
+ sqcfg->trigger_holdoff = 1;
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 e99b236..0cc4af4 100644
--- a/src/libmsc/smsc_vty.c
+++ b/src/libmsc/smsc_vty.c
@@ -60,6 +60,14 @@
return CMD_SUCCESS;
}
+DEFUN(cfg_sms_trigger_holdoff, cfg_sms_trigger_holdoff_cmd,
+ "queue trigger-holdoff <1-600>",
+ "SMS Queue\n" "How often can the Queue be re-triggered.\n" "Seconds\n")
+{
+ smqcfg->trigger_holdoff = atoi(argv[0]);
+ return CMD_SUCCESS;
+}
+
DEFUN(cfg_sms_queue_max, cfg_sms_queue_max_cmd,
"queue max-pending <1-500>",
"SMS Queue\n" "SMS to deliver in parallel\n" "Amount\n")
@@ -175,6 +183,7 @@
if (smqcfg->db_file_path && strcmp(smqcfg->db_file_path, SMS_DEFAULT_DB_FILE_PATH))
vty_out(vty, " database %s%s", smqcfg->db_file_path, VTY_NEWLINE);
+ vty_out(vty, " queue trigger-holdoff %u%s", smqcfg->trigger_holdoff, VTY_NEWLINE);
vty_out(vty, " queue max-pending %u%s", smqcfg->max_pending, VTY_NEWLINE);
vty_out(vty, " queue max-failure %u%s", smqcfg->max_fail, VTY_NEWLINE);
@@ -197,6 +206,7 @@
install_element(CONFIG_NODE, &cfg_smsc_cmd);
install_node(&smsc_node, config_write_smsc);
install_element(SMSC_NODE, &cfg_sms_database_cmd);
+ install_element(SMSC_NODE, &cfg_sms_trigger_holdoff_cmd);
install_element(SMSC_NODE, &cfg_sms_queue_max_cmd);
install_element(SMSC_NODE, &cfg_sms_queue_fail_cmd);
install_element(SMSC_NODE, &cfg_sms_db_del_delivered_cmd);
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/28345
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I43d88342436d654afd6d955e304e7f85fbc4840f
Gerrit-Change-Number: 28345
Gerrit-PatchSet: 1
Gerrit-Owner: keith <keith(a)rhizomatica.org>
Gerrit-MessageType: newchange
keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/28342 )
Change subject: After RX of an SMPP Submit, send the SMS we just received.
......................................................................
After RX of an SMPP Submit, send the SMS we just received.
Previously, after we have stored the new SMS in the db, we then
signalled the queue to run, but this is not good enough.
The queue may not pick up this new SMS on the next run,
if there are sufficient older messages in the queue. So let's
specifically send the message that was just submitted.
Change-Id: I9af51ef0d9c2e6c5acc5128efd6195df881b680c
---
M include/osmocom/msc/signal.h
M src/libmsc/smpp_openbsc.c
M src/libmsc/sms_queue.c
3 files changed, 42 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/42/28342/1
diff --git a/include/osmocom/msc/signal.h b/include/osmocom/msc/signal.h
index 9153131..77a9bcf 100644
--- a/include/osmocom/msc/signal.h
+++ b/include/osmocom/msc/signal.h
@@ -86,4 +86,6 @@
struct gsm_sms *sms;
/* true when paging was successful */
bool paging_result;
+ /* the id of the last inserted SMS */
+ unsigned long long id;
};
diff --git a/src/libmsc/smpp_openbsc.c b/src/libmsc/smpp_openbsc.c
index 91666a9..19e3914 100644
--- a/src/libmsc/smpp_openbsc.c
+++ b/src/libmsc/smpp_openbsc.c
@@ -301,6 +301,8 @@
case 1: /* datagram */
case 3: /* store-and-forward */
rc = db_sms_store(sms);
+ memset(&sig, 0, sizeof(sig));
+ sig.id = sms->id;
sms_free(sms);
sms = NULL;
if (rc < 0) {
@@ -312,7 +314,6 @@
strcpy((char *)submit_r->message_id, "msg_id_not_implemented");
LOGP(DLSMS, LOGL_INFO, "SMPP SUBMIT-SM: Stored in DB\n");
- memset(&sig, 0, sizeof(sig));
osmo_signal_dispatch(SS_SMS, S_SMS_SUBMITTED, &sig);
rc = 0;
break;
diff --git a/src/libmsc/sms_queue.c b/src/libmsc/sms_queue.c
index 9b42024..8d4217b 100644
--- a/src/libmsc/sms_queue.c
+++ b/src/libmsc/sms_queue.c
@@ -580,10 +580,46 @@
struct sms_signal_data *sig_sms = signal_data;
struct gsm_sms_pending *pending;
struct vlr_subscr *vsub;
+ struct gsm_sms *sms;
/* We got a new SMS and maybe should launch the queue again. */
- if (signal == S_SMS_SUBMITTED || signal == S_SMS_SMMA) {
- /* TODO: For SMMA we might want to re-use the radio connection. */
+ if (signal == S_SMS_SUBMITTED) {
+ if (sig_sms->id) {
+ LOGP(DLSMS, LOGL_INFO, "Got Signal for new Sms Submitted with ID [%llu]\n",
+ sig_sms->id);
+ sms = db_sms_get(network, sig_sms->id);
+ if (!sms)
+ return -1;
+ if (!sms->receiver || !sms->receiver->lu_complete) {
+ LOGP(DLSMS, LOGL_DEBUG,
+ "Subscriber %s%s is not attached, skipping SMS.\n",
+ sms->receiver ? "" : "MSISDN-",
+ sms->receiver ? vlr_subscr_msisdn_or_name(sms->receiver) : sms->dst.addr);
+ return -1;
+ }
+
+ /* Check somehow it's not already in the pending list */
+ if (sms_queue_sms_is_pending(smq, sms->id)) {
+ sms_free(sms);
+ return 0;
+ }
+ /* Or that this sub is not already pending */
+ if (sms_subscriber_is_pending(smq, sms->receiver)) {
+ sms_free(sms);
+ return 0;
+ }
+ /* Now add this SMS to the Queue for immediate sending. */
+ pending = sms_pending_from(smq, sms);
+ sms_free(sms);
+ /* Schedule the timer to send this SMS */
+ sms_pending_resend(pending);
+ return 0;
+ }
+ }
+
+ if (signal == S_SMS_SMMA) {
+ /* TODO: For SMMA we might want to re-use the radio connection.
+ */
sms_queue_trigger(smq);
return 0;
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/28342
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I9af51ef0d9c2e6c5acc5128efd6195df881b680c
Gerrit-Change-Number: 28342
Gerrit-PatchSet: 1
Gerrit-Owner: keith <keith(a)rhizomatica.org>
Gerrit-MessageType: newchange
keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/28344 )
Change subject: Don't let this osmo-msc operate on a libdbi database
......................................................................
Don't let this osmo-msc operate on a libdbi database
The Binary format changed when libdbi was removed. If we let osmo-msc run on an
unconverted database, the results are unpredictable, certainly undesirable.
Change-Id: I887b6a4374b1c83684f4007e9791ae58bba4e8c1
---
M src/libmsc/db.c
1 file changed, 7 insertions(+), 7 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/44/28344/1
diff --git a/src/libmsc/db.c b/src/libmsc/db.c
index b310fae..5e5260f 100644
--- a/src/libmsc/db.c
+++ b/src/libmsc/db.c
@@ -75,7 +75,7 @@
* DATABASE SCHEMA AND MIGRATION
***********************************************************************/
-#define SCHEMA_REVISION "5"
+#define SCHEMA_REVISION "6"
enum {
SCHEMA_META,
@@ -497,14 +497,14 @@
LOGP(DDB, LOGL_FATAL, "You must use osmo-msc 1.1.0 to 1.8.0 to upgrade database "
"schema from '%u' to '5', sorry\n", db_rev);
break;
-#if 0
case 5:
- if (update_db_revision_5())
- goto error;
-
- /* The end of waterfall */
+ LOGP(DDB, LOGL_FATAL, "The storage format of BINARY data in the database "
+ "has changed. In order to deliver any pending SMS in your database, "
+ "you must manually convert your database from "
+ "'%u' to '6'. Alternatively you can use a fresh, blank database "
+ "with this version of osmo-msc, sorry.\n", db_rev);
+ return -1;
break;
-#endif
default:
LOGP(DDB, LOGL_FATAL, "Invalid database schema revision '%d'.\n", db_rev);
return -EINVAL;
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/28344
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I887b6a4374b1c83684f4007e9791ae58bba4e8c1
Gerrit-Change-Number: 28344
Gerrit-PatchSet: 1
Gerrit-Owner: keith <keith(a)rhizomatica.org>
Gerrit-MessageType: newchange
keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/28343 )
Change subject: Try to send all pending SMS for subscriber in sub_ready_for_sms()
......................................................................
Try to send all pending SMS for subscriber in sub_ready_for_sms()
Change-Id: I5a1360a7a18312836b96b6be761a53b7d0b17d02
---
M src/libmsc/sms_queue.c
1 file changed, 2 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/43/28343/1
diff --git a/src/libmsc/sms_queue.c b/src/libmsc/sms_queue.c
index 8d4217b..b6f92e2 100644
--- a/src/libmsc/sms_queue.c
+++ b/src/libmsc/sms_queue.c
@@ -555,6 +555,8 @@
return -1;
_gsm411_send_sms(net, vsub, sms);
+ if (!sms_subscriber_is_pending(net->sms_queue, vsub))
+ sms_send_next(vsub);
return 0;
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/28343
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I5a1360a7a18312836b96b6be761a53b7d0b17d02
Gerrit-Change-Number: 28343
Gerrit-PatchSet: 1
Gerrit-Owner: keith <keith(a)rhizomatica.org>
Gerrit-MessageType: newchange
keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/28339 )
Change subject: Use unix timestamps in the SMS db
......................................................................
Use unix timestamps in the SMS db
There's really no need to convert to/from human readable
dateformat (YYYY-MM-DD HH:MM:SS) everytime we access a record in
the SMS database.
sqlite3 has pseudo column types. In fact this means the column type
in the database schema is meaningless and anything will be accepted
and stored. See (Flexible Typing) [1]
It appears that more processing than might be expected
is happening internally on such things as date conversions, as
the database engine has to actually do verifications on the data.
(Is this INT really an INT etc...)
[1] https://www.sqlite.org/quirks.html
Change-Id: I599a57666da22adf806b01ff095c8672d523a737
---
M src/libmsc/db.c
1 file changed, 6 insertions(+), 6 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/39/28339/1
diff --git a/src/libmsc/db.c b/src/libmsc/db.c
index 68cc038..6fe8803 100644
--- a/src/libmsc/db.c
+++ b/src/libmsc/db.c
@@ -219,10 +219,10 @@
* database query results! */
#define SEL_COLUMNS \
"id," \
- "strftime('%s',created)," \
+ "created," \
"sent," \
"deliver_attempts," \
- "strftime('%s', valid_until)," \
+ "valid_until," \
"reply_path_req," \
"status_rep_req," \
"is_report," \
@@ -271,7 +271,7 @@
" msg_ref, protocol_id, data_coding_scheme, ud_hdr_ind, user_data, text, "
" dest_addr, dest_ton, dest_npi, src_addr, src_ton, src_npi) "
"VALUES "
- "(datetime($created, 'unixepoch'), datetime($valid_until, 'unixepoch'), "
+ "($created, $valid_until, "
"$reply_path_req, $status_rep_req, $is_report, "
"$msg_ref, $protocol_id, $data_coding_scheme, $ud_hdr_ind, $user_data, $text, "
"$dest_addr, $dest_ton, $dest_npi, $src_addr, $src_ton, $src_npi)",
@@ -302,7 +302,7 @@
" ORDER BY dest_addr, id LIMIT 1",
[DB_STMT_SMS_MARK_DELIVERED] =
"UPDATE SMS "
- " SET sent = datetime('now') "
+ " SET sent = strftime('%s') "
" WHERE id = $id",
[DB_STMT_SMS_INC_DELIVER_ATTEMPTS] =
"UPDATE SMS "
@@ -315,9 +315,9 @@
[DB_STMT_SMS_DEL_EXPIRED] =
"DELETE FROM SMS WHERE id = $id",
[DB_STMT_SMS_GET_VALID_UNTIL_BY_ID] =
- "SELECT strftime('%s', valid_until) FROM SMS WHERE id = $id",
+ "SELECT valid_until FROM SMS WHERE id = $id",
[DB_STMT_SMS_GET_OLDEST_EXPIRED] =
- "SELECT id, strftime('%s', valid_until) FROM SMS ORDER BY valid_until LIMIT 1",
+ "SELECT id, valid_until FROM SMS ORDER BY valid_until LIMIT 1",
[DB_STMT_VLR_INSERT] =
"REPLACE INTO t_vlr (msisdn) VALUES ($msisdn)",
};
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/28339
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I599a57666da22adf806b01ff095c8672d523a737
Gerrit-Change-Number: 28339
Gerrit-PatchSet: 1
Gerrit-Owner: keith <keith(a)rhizomatica.org>
Gerrit-MessageType: newchange
keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/28341 )
Change subject: Turn off secure_delete in sqlite
......................................................................
Turn off secure_delete in sqlite
libsqlite3 that ships with some distributions may have secure_delete
activated by default. This means all database records are overwritten with
zeros on DELETE. We don't needs this extra overhead.
Change-Id: I9da6499a38096c8df2025bb9d35ec789864b7c5e
---
M src/libmsc/db.c
1 file changed, 6 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/41/28341/1
diff --git a/src/libmsc/db.c b/src/libmsc/db.c
index ea0fef3..b310fae 100644
--- a/src/libmsc/db.c
+++ b/src/libmsc/db.c
@@ -585,6 +585,12 @@
sqlite3_free(err_msg);
/* non-fatal */
}
+ rc = sqlite3_exec(g_dbc->db, "PRAGMA secure_delete=0;", 0, 0, &err_msg);
+ if (rc != SQLITE_OK) {
+ LOGP(DDB, LOGL_ERROR, "Unable to disable SECURE_DELETE: %s\n", err_msg);
+ sqlite3_free(err_msg);
+ /* non-fatal */
+ }
rc = sqlite3_exec(g_dbc->db, "PRAGMA temp_store=MEMORY;", 0, 0, &err_msg);
if (rc != SQLITE_OK) {
LOGP(DDB, LOGL_ERROR, "Unable to set TEMP_STORE: %s\n", err_msg);
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/28341
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I9da6499a38096c8df2025bb9d35ec789864b7c5e
Gerrit-Change-Number: 28341
Gerrit-PatchSet: 1
Gerrit-Owner: keith <keith(a)rhizomatica.org>
Gerrit-MessageType: newchange