cbc: Test ETWS msg over CBSP
So far only non-emergency CBS messages were tested, which require a
slighlty idfferent encoding on the protocol side.
Related: OS#4945
Change-Id: Ie22a00120218a205db11a5622274dcc67435f5de
diff --git a/cbc/ECBE_Components.ttcn b/cbc/ECBE_Components.ttcn
index eaf2772..996b17d 100644
--- a/cbc/ECBE_Components.ttcn
+++ b/cbc/ECBE_Components.ttcn
@@ -35,9 +35,44 @@
return hex2str(oct2hex(inp.payload));
}
+private function f_cbs2ecbe_etws(CBS_Message inp, charstring cbe_name) return EcbeCbcMessage
+{
+ var EcbeWarningTypeDecoded warn_type;
+ int2enum(inp.msg_id - 4352, warn_type);
+
+ var EcbeCbcMessage ret := {
+ cbe_name := cbe_name,
+ category := f_cbs2ecbe_category(inp.category),
+ repetition_period := inp.rep_period,
+ num_of_bcast := inp.num_bcast_req,
+ scope := { scope_plmn := {} },
+ smscb_message := {
+ serial_nr := {
+ serial_nr_encoded := inp.ser_nr
+ },
+ message_id := inp.msg_id,
+ payload := {
+ payload_etws := {
+ warning_type := {
+ warning_type_decoded := warn_type
+ },
+ emergency_user_alert := true,
+ popup_on_display := true,
+ warning_sec_info := omit
+ }
+ }
+ }
+ };
+ return ret;
+}
+
/* convert from CBS_Message to EcbeCbcMessage */
function f_cbs2ecbe(CBS_Message inp, charstring cbe_name) return EcbeCbcMessage
{
+ if (msg_id_is_etws(inp.msg_id)) {
+ return f_cbs2ecbe_etws(inp, cbe_name);
+ }
+
var EcbeCbcMessage ret := {
cbe_name := cbe_name,
category := f_cbs2ecbe_category(inp.category),