Make f_gen_tr_ss_ies() work for both 'latest' and 'master'

This fixes the partial revert of c43c8cd275b4f71b0bc6a50fc81564c812d5b406
to work for both situtions:  Messages that have the OSMO_GSUP_MESSAGE_CLASS_USSD
and messages that don't.

The particular implementation is rather ugly, but we're waiting for
a response to https://www.eclipse.org/forums/index.php/t/1098847/
on how to solve this kind of problem in a more elegant way.  Meanwile,
we make it work first.

Change-Id: Ibf137de6a41aaa43894cc0b6da8341ceb88b0756
diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn
index 7e26e19..44b9f26 100644
--- a/library/GSUP_Types.ttcn
+++ b/library/GSUP_Types.ttcn
@@ -1091,15 +1091,23 @@
 		tr_GSUP_IE_SessionId(sid),
 		tr_GSUP_IE_SessionState(state)
 	};
+	var integer last_idx := 3;
 
 	/* Optional SS payload */
 	if (istemplatekind(ss, "*")) {
 		ies[3] := *;
+		last_idx := last_idx + 1;
 	} else if (not istemplatekind(ss, "omit")) {
 		ies[3] := tr_GSUP_IE_SSInfo(ss);
+		last_idx := last_idx + 1;
 	}
 
-	return ies;
+	/* the GSUP Message Class IE is optional, as old implementations don't have it yet */
+	var template GSUP_IEs ies2 := ies;
+	ies2[last_idx] := tr_GSUP_IE_Message_Class(OSMO_GSUP_MESSAGE_CLASS_USSD);
+	last_idx := last_idx + 1;
+
+	return (ies, ies2);
 }
 
 template (value) GSUP_PDU ts_GSUP_PROC_SS_REQ(