Change in osmo-ttcn3-hacks[master]: library/GSUP_Types.ttcn: add READY-FOR-SM message

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Vadim Yanitskiy gerrit-no-reply at lists.osmocom.org
Mon Nov 12 20:05:36 UTC 2018


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 <axilirator at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181112/a09de16b/attachment.htm>


More information about the gerrit-log mailing list