Vadim Yanitskiy has uploaded this change for review. ( 
https://gerrit.osmocom.org/11752


Change subject: library/GSUP_Types.ttcn: add READY-FOR-SM message
......................................................................

library/GSUP_Types.ttcn: add READY-FOR-SM message

According to 3GPP TS 29.002, section 12.4, MAP-READY-FOR-SM is
used between the MSC and VLR as well as between the VLR and the
HLR to indicate that a subscriber has memory available for SMS.

This change replicates this service in GSUP as READY_FOR_SM_*.
The only mandatory IE for this service (excluding Invoke ID) is
'Alert Reason' which is replicated as OSMO_GSUP_SM_AL_REAS_IE.

Change-Id: If2256607527ecfcb10285583332fb8b0515d7c78
---
M library/GSUP_Types.ttcn
1 file changed, 54 insertions(+), 3 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/52/11752/1

diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn
index f3d05e5..447dee9 100644
--- a/library/GSUP_Types.ttcn
+++ b/library/GSUP_Types.ttcn
@@ -49,7 +49,8 @@
        OSMO_GSUP_SM_RP_MR_IE           ('40'O),
        OSMO_GSUP_SM_RP_DA_IE           ('41'O),
        OSMO_GSUP_SM_RP_OA_IE           ('42'O),
-       OSMO_GSUP_SM_RP_UI_IE           ('43'O)
+       OSMO_GSUP_SM_RP_UI_IE           ('43'O),
+       OSMO_GSUP_SM_AL_REAS_IE         ('44'O)
 } with { variant "FIELDLENGTH(8)" };

 type enumerated GSUP_MessageType {
@@ -89,7 +90,11 @@

        OSMO_GSUP_MSGT_MT_FORWARD_SM_REQUEST    ('00101000'B),
        OSMO_GSUP_MSGT_MT_FORWARD_SM_ERROR      ('00101001'B),
-       OSMO_GSUP_MSGT_MT_FORWARD_SM_RESULT     ('00101010'B)
+       OSMO_GSUP_MSGT_MT_FORWARD_SM_RESULT     ('00101010'B),
+
+       OSMO_GSUP_MSGT_READY_FOR_SM_REQUEST     ('00101100'B),
+       OSMO_GSUP_MSGT_READY_FOR_SM_ERROR       ('00101101'B),
+       OSMO_GSUP_MSGT_READY_FOR_SM_RESULT      ('00101110'B)
 } with { variant "FIELDLENGTH(8)" };

 type enumerated GSUP_CancelType {
@@ -146,6 +151,7 @@
                                 sm_rp_da, tag = OSMO_GSUP_SM_RP_DA_IE;
                                 sm_rp_oa, tag = OSMO_GSUP_SM_RP_OA_IE;
                                 sm_rp_ui, tag = OSMO_GSUP_SM_RP_UI_IE;
+                                sm_al_reas, tag = OSMO_GSUP_SM_AL_REAS_IE;
                        )"
 };

@@ -184,7 +190,8 @@
        OCT1                    sm_rp_mr,
        GSUP_SM_RP_DA           sm_rp_da,
        GSUP_SM_RP_OA           sm_rp_oa,
-       octetstring             sm_rp_ui
+       octetstring             sm_rp_ui,
+       GSUP_SM_AL_REAS_Type    sm_al_reas
 };

 type record GSUP_PDU {
@@ -815,6 +822,29 @@
        }
 }

+/* SM Alert Reason types, see 7.6.8.8 */
+type enumerated GSUP_SM_AL_REAS_Type {
+       GSUP_SM_AL_REAS_TYPE_NONE               ('00'O),
+       GSUP_SM_AL_REAS_TYPE_MS_PRESENT         ('01'O),
+       GSUP_SM_AL_REAS_TYPE_MEM_AVAIL          ('02'O)
+} with { variant "FIELDLENGTH(8)" };
+
+/* SM Alert Reason IE (used in READY-FOR-SM), see 7.6.8.8 */
+template (value) GSUP_IE ts_GSUP_IE_SM_AL_REAS(GSUP_SM_AL_REAS_Type reas) := {
+       tag := OSMO_GSUP_SM_AL_REAS_IE,
+       len := 0, /* overwritten */
+       val := {
+               sm_al_reas := reas
+       }
+}
+template GSUP_IE tr_GSUP_IE_SM_AL_REAS(template GSUP_SM_AL_REAS_Type reas) := {
+       tag := OSMO_GSUP_SM_AL_REAS_IE,
+       len := ?,
+       val := {
+               sm_al_reas := reas
+       }
+}
+
 template (value) GSUP_IE ts_GSUP_IE_SSInfo(octetstring ss) := {
        tag := OSMO_GSUP_SS_INFO_IE,
        len := 0, /* overwritten */
@@ -1154,6 +1184,27 @@
        }
 );

+template (value) GSUP_PDU ts_GSUP_MT_READY_FOR_SM_REQ(
+       hexstring imsi,
+       GSUP_SM_AL_REAS_Type reas /* SM Alert Reason, see 7.6.8.8 */
+) := ts_GSUP(
+       OSMO_GSUP_MSGT_READY_FOR_SM_REQUEST,
+       {
+               valueof(ts_GSUP_IE_IMSI(imsi)),
+               valueof(ts_GSUP_IE_SM_AL_REAS(reas))
+       }
+);
+template GSUP_PDU tr_GSUP_MT_READY_FOR_SM_REQ(
+       template hexstring imsi := ?,
+       template GSUP_SM_AL_REAS_Type reas := ? /* SM Alert Reason, see 7.6.8.8 
*/
+) := tr_GSUP(
+       OSMO_GSUP_MSGT_READY_FOR_SM_REQUEST,
+       {
+               tr_GSUP_IE_IMSI(imsi),
+               tr_GSUP_IE_SM_AL_REAS(reas)
+       }
+);
+
 function f_gsup_find_ie(GSUP_PDU msg, GSUP_IEI iei, out GSUP_IeValue ret) 
return boolean {
        for (var integer i := 0; i < sizeof(msg.ies); i := i+1) {
                if (msg.ies[i].tag == iei) {

--
To view, visit https://gerrit.osmocom.org/11752
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: If2256607527ecfcb10285583332fb8b0515d7c78
Gerrit-Change-Number: 11752
Gerrit-PatchSet: 1
Gerrit-Owner: Vadim Yanitskiy <axilira...@gmail.com>

Reply via email to