rua: also match on RUA Disconnect without RANAP payload

Add tr_RUA_Disconnect_opt_ranap that matches RUA Disconnect with and
without RANAP payload.

Use this in RUA_Emulation as_main_rua(), to trigger a RUA_Disc_Ind to
the CLIENT also for Disconnect without RANAP data.

Rationale:

This patch exists for the line

  RUA.receive(RUA_Disc_Ind:?);

in the TC_apply_sccp patch Ia1ff0cb56893edf045ea3cb3233882ca93445d21

In upcoming HNBGW_Tests.TC_apply_sccp, I want to test for an ungraceful
RUA Disconnect, which is sent without a RANAP payload. But
tr_RUA_Disconnect only matches when a RANAP Message IE is present. In
consequence, RUA_Emulation ignores "empty" RUA Disconnect, and my test
case cannot verify that the RUA Disconnect occurred. Fix that.

Change-Id: Ia0b89e9198794d196a88040ee89bdf24f3b08ae0
diff --git a/library/rua/RUA_Emulation.ttcn b/library/rua/RUA_Emulation.ttcn
index af4b8b3..a9c445e 100644
--- a/library/rua/RUA_Emulation.ttcn
+++ b/library/rua/RUA_Emulation.ttcn
@@ -301,13 +301,15 @@
 	}
 
 	/* RUA -> Client: disconnect of an existing connection */
-	[] RUA.receive(tr_RUA_Disconnect) -> value rua {
+	[] RUA.receive(tr_RUA_Disconnect_opt_ranap) -> value rua {
 		cause := rua.initiatingMessage.value_.disconnect_.protocolIEs[2].value_.cause;
 		context_id := rua.initiatingMessage.value_.disconnect_.protocolIEs[1].value_.context_ID;
 		vc_conn := f_comp_by_context_id(context_id);
 		/* send contained RANAP message to user */
-		ranap_enc := rua.initiatingMessage.value_.disconnect_.protocolIEs[3].value_.rANAP_Message;
-		f_handle_userData_RANAP(vc_conn, dec_RANAP_PDU(ranap_enc));
+		if (lengthof(rua.initiatingMessage.value_.disconnect_.protocolIEs) > 3) {
+			ranap_enc := rua.initiatingMessage.value_.disconnect_.protocolIEs[3].value_.rANAP_Message;
+			f_handle_userData_RANAP(vc_conn, dec_RANAP_PDU(ranap_enc));
+		}
 		/* notify user of disconnect */
 		if (CLIENT.checkstate("Connected")) {
 			CLIENT.send(RUA_Disc_Ind:{cause});