laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/33501 )
Change subject: ASCI: Allow transaction without subscriber associated ......................................................................
ASCI: Allow transaction without subscriber associated
Generally a transaction is linked with a subscriber (vsub).
A voice group call transaction may not have a subscriber associated. The vsub field of the transaction will be NULL. If the group call is initiated by a calling subscriber, the vsub field is set until the calling subscriber is assigned to the voice group channel. If the group call is initiated via VTY, vsub field is not set on creation of the transaction.
Change-Id: I2b9afe95db4c106c141f4b7bd199ec74e197e523 Related: OS#4854 --- M src/libmsc/transaction.c 1 file changed, 23 insertions(+), 3 deletions(-)
Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified
diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c index 9fc4682..a3a9ef1 100644 --- a/src/libmsc/transaction.c +++ b/src/libmsc/transaction.c @@ -199,8 +199,8 @@ int subsys = trans_log_subsys(type); struct gsm_trans *trans;
- /* a valid subscriber is indispensable */ - if (vsub == NULL) { + /* A valid subscriber is indispensable, except for voice group/broadcast calls. */ + if (vsub == NULL && type != TRANS_GCC && type != TRANS_BCC) { LOGP(subsys, LOGL_ERROR, "unable to alloc transaction, invalid subscriber (NULL)\n"); return NULL; } @@ -222,7 +222,8 @@ .speech_ver = { -1 }, }, }; - vlr_subscr_get(vsub, trans_vsub_use(type)); + if (vsub) + vlr_subscr_get(vsub, trans_vsub_use(type)); llist_add_tail(&trans->entry, &net->trans_list);
LOG_TRANS(trans, LOGL_DEBUG, "New transaction\n");