laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-msc/+/33503 )

Change subject: ASCI: Add two new transaction types for VGCS and VBS
......................................................................

ASCI: Add two new transaction types for VGCS and VBS

- TRANS_GCC is used for the voice group call.
- TRANS_BCC for the voice broadcast call.

This also includes the use counters for transaction and CM service
request usage:
- MSC_A_USE_GCC
- MSC_A_USE_BCC
- MSC_A_USE_CM_SERVICE_BCC
- MSC_A_USE_CM_SERVICE_GCC

Change-Id: Iddd11f813582ac2ac2bdee91cc3a525986deb514
Related: OS#4854
---
M include/osmocom/msc/msc_a.h
M include/osmocom/msc/transaction.h
M src/libmsc/msc_a.c
M src/libmsc/transaction.c
4 files changed, 54 insertions(+), 0 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified




diff --git a/include/osmocom/msc/msc_a.h b/include/osmocom/msc/msc_a.h
index bb7b8f9..5256744 100644
--- a/include/osmocom/msc/msc_a.h
+++ b/include/osmocom/msc/msc_a.h
@@ -40,9 +40,13 @@

 #define MSC_A_USE_LOCATION_UPDATING    "lu"
 #define MSC_A_USE_CM_SERVICE_CC        "cm_service_cc"
+#define MSC_A_USE_CM_SERVICE_GCC       "cm_service_gcc"
+#define MSC_A_USE_CM_SERVICE_BCC       "cm_service_bcc"
 #define MSC_A_USE_CM_SERVICE_SMS       "cm_service_sms"
 #define MSC_A_USE_CM_SERVICE_SS        "cm_service_ss"
 #define MSC_A_USE_PAGING_RESPONSE      "paging-response"
+#define MSC_A_USE_GCC          "gcc"
+#define MSC_A_USE_BCC          "bcc"
 #define MSC_A_USE_CC           "cc"
 #define MSC_A_USE_SMS          "sms"
 #define MSC_A_USE_SMS_MMTS     "sms_mmts"
diff --git a/include/osmocom/msc/transaction.h 
b/include/osmocom/msc/transaction.h
index bc6c316..356bd6c 100644
--- a/include/osmocom/msc/transaction.h
+++ b/include/osmocom/msc/transaction.h
@@ -43,6 +43,8 @@
 };

 enum trans_type {
+       TRANS_GCC = GSM48_PDISC_GROUP_CC,
+       TRANS_BCC = GSM48_PDISC_BCAST_CC,
        TRANS_CC = GSM48_PDISC_CC,
        TRANS_SMS = GSM48_PDISC_SMS,
        TRANS_USSD = GSM48_PDISC_NC_SS,
@@ -178,6 +180,10 @@
 static inline int trans_log_subsys(enum trans_type type)
 {
        switch (type) {
+       case TRANS_GCC:
+               return DGCC;
+       case TRANS_BCC:
+               return DBCC;
        case TRANS_CC:
        case TRANS_SILENT_CALL:
                return DCC;
diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c
index b9aaeaa..5a5bb8a 100644
--- a/src/libmsc/msc_a.c
+++ b/src/libmsc/msc_a.c
@@ -488,6 +488,16 @@
                         __func__);
                return true;
        }
+       if (osmo_use_count_by(&msc_a->use_count, MSC_A_USE_CM_SERVICE_GCC)) {
+               LOG_MSC_A(msc_a, LOGL_DEBUG, "%s: still awaiting MO GCC request 
after a CM Service Request\n",
+                        __func__);
+               return true;
+       }
+       if (osmo_use_count_by(&msc_a->use_count, MSC_A_USE_CM_SERVICE_BCC)) {
+               LOG_MSC_A(msc_a, LOGL_DEBUG, "%s: still awaiting MO BCC request 
after a CM Service Request\n",
+                        __func__);
+               return true;
+       }
        if (osmo_use_count_by(&msc_a->use_count, MSC_A_USE_CM_SERVICE_SMS)) {
                LOG_MSC_A(msc_a, LOGL_DEBUG, "%s: still awaiting MO SMS after a 
CM Service Request\n",
                         __func__);
@@ -873,6 +883,8 @@
                MSC_A_USE_CM_SERVICE_CC,
                MSC_A_USE_CM_SERVICE_SMS,
                MSC_A_USE_CM_SERVICE_SS,
+               MSC_A_USE_CM_SERVICE_GCC,
+               MSC_A_USE_CM_SERVICE_BCC,
                MSC_A_USE_PAGING_RESPONSE,
        };

@@ -1955,6 +1967,12 @@
        case GSM48_CMSERV_SUP_SERV:
                return MSC_A_USE_CM_SERVICE_SS;

+       case GSM48_CMSERV_VGCS:
+               return MSC_A_USE_CM_SERVICE_GCC;
+
+       case GSM48_CMSERV_VBS:
+               return MSC_A_USE_CM_SERVICE_BCC;
+
        default:
                return NULL;
        }
diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c
index 21f0b8b..9fc4682 100644
--- a/src/libmsc/transaction.c
+++ b/src/libmsc/transaction.c
@@ -351,6 +351,8 @@
 }

 const struct value_string trans_type_names[] = {
+       { TRANS_GCC, "GCC" },
+       { TRANS_BCC, "BCC" },
        { TRANS_CC, "CC" },
        { TRANS_SMS, "SMS" },
        { TRANS_USSD, "NCSS" },
@@ -361,6 +363,10 @@
 uint8_t trans_type_to_gsm48_proto(enum trans_type type)
 {
        switch (type) {
+       case TRANS_GCC:
+               return GSM48_PDISC_GROUP_CC;
+       case TRANS_BCC:
+               return GSM48_PDISC_BCAST_CC;
        case TRANS_CC:
        case TRANS_SILENT_CALL:
                return GSM48_PDISC_CC;

--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/33503
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: Iddd11f813582ac2ac2bdee91cc3a525986deb514
Gerrit-Change-Number: 33503
Gerrit-PatchSet: 9
Gerrit-Owner: jolly <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-CC: neels <[email protected]>
Gerrit-MessageType: merged

Reply via email to