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/BSC_ConnectionHandler.ttcn b/cbc/BSC_ConnectionHandler.ttcn
index a8601a6..804d246 100644
--- a/cbc/BSC_ConnectionHandler.ttcn
+++ b/cbc/BSC_ConnectionHandler.ttcn
@@ -106,11 +106,20 @@
 		tx_list := valueof(tx_cell_list);
 	}
 	if (istemplatekind(tx_compl_list, "omit")) {
-		tx := ts_CBSP_WRITE_CBS_COMPL(msg.msg_id, msg.ser_nr, tx_list, msg.channel_ind);
+		if (msg_id_is_etws(msg.msg_id)) {
+			tx := ts_CBSP_WRITE_EMERG_COMPL(msg.msg_id, msg.ser_nr, tx_list);
+		} else {
+			tx := ts_CBSP_WRITE_CBS_COMPL(msg.msg_id, msg.ser_nr, tx_list, msg.channel_ind);
+		}
 	} else {
-		tx := ts_CBSP_REPLACE_CBS_COMPL(msg.msg_id, msg.ser_nr, msg.old_ser_nr,
-						valueof(tx_compl_list), tx_list,
-						msg.channel_ind);
+		if (msg_id_is_etws(msg.msg_id)) {
+			tx := ts_CBSP_REPLACE_EMERG_COMPL(msg.msg_id, msg.ser_nr, msg.old_ser_nr,
+							  tx_list);
+		} else {
+			tx := ts_CBSP_REPLACE_CBS_COMPL(msg.msg_id, msg.ser_nr, msg.old_ser_nr,
+							valueof(tx_compl_list), tx_list,
+							msg.channel_ind);
+		}
 	}
 	CBSP[idx].send(ts_CBSP_Send(g_cbsp_conn_id[idx], tx));
 }
@@ -134,13 +143,19 @@
 	var template CBSP_IEs content_ies := {};
 	var template (present) CBSP_PDU rx_templ;
 	var CBSP_RecvFrom rf;
-	for (var integer i := 0; i < lengthof(msg.content); i := i+1) {
-		//content_ies[i] := tr_CbspMsgContent(msg.content[i].payload, msg.content[i].user_len);
-		content_ies[i] := tr_CbspMsgContent(?, ?);
+	if (msg_id_is_etws(msg.msg_id)) {
+		rx_templ := tr_CBSP_WRITE_EMERG(msg.msg_id, msg.ser_nr, msg.cell_list, 1,
+						hex2int('180'H) + (msg.msg_id - 4352),
+						msg.num_bcast_req, 0)
+	} else {
+		for (var integer i := 0; i < lengthof(msg.content); i := i+1) {
+			//content_ies[i] := tr_CbspMsgContent(msg.content[i].payload, msg.content[i].user_len);
+			content_ies[i] := tr_CbspMsgContent(?, ?);
+		}
+		rx_templ := tr_CBSP_WRITE_CBS(msg.msg_id, msg.ser_nr, msg.cell_list, msg.channel_ind,
+					      msg.category, msg.rep_period, msg.num_bcast_req, msg.dcs,
+					      content_ies);
 	}
-	rx_templ := tr_CBSP_WRITE_CBS(msg.msg_id, msg.ser_nr, msg.cell_list, msg.channel_ind,
-				      msg.category, msg.rep_period, msg.num_bcast_req, msg.dcs,
-				      content_ies);
 	alt {
 	[] CBSP[idx].receive(tr_CBSP_Recv(g_cbsp_conn_id[idx], rx_templ)) -> value rf {
 		var template (value) CBSP_PDU tx;