msc: mo and mt voice call tests: add lots of missing parts

Both f_mo_call_establish() and f_mt_call_establish() were testing barely half a
voice call setup.  For example, f_mo_call_establish() used to be satisfied with
just two CRCX, but no actual RTP connections being made.

Add numerous MNCC and MGCP messages more closely resembling an actual call.

The main reason is to achieve a state that passes both current osmo-msc master
as well as the upcoming inter-MSC Handover refactoring.

Add log markers to f_*_call_*(): often when a test halts, it is not at all
clear why. With these log markers it is saner to figure out what has happened
and what hasn't.

Change-Id: I162985045bb5e129977a3a797b656e30220990df
diff --git a/library/MGCP_Templates.ttcn b/library/MGCP_Templates.ttcn
index f720553..506100f 100644
--- a/library/MGCP_Templates.ttcn
+++ b/library/MGCP_Templates.ttcn
@@ -286,6 +286,22 @@
 		}
 	}
 
+	function f_mgcp_contains_par(MgcpMessage msg, MgcpInfoCode code) return boolean {
+		var MgcpParameterList pars;
+		if (ischosen(msg.command)) {
+			pars := msg.command.params;
+		} else {
+			pars := msg.response.params;
+		}
+		for (var integer i := 0; i < lengthof(pars); i := i + 1) {
+			var MgcpParameter par := pars[i];
+			if (par.code == code) {
+				return true;
+			}
+		}
+		return false;
+	}
+
 	function f_mgcp_extract_par(MgcpMessage msg, MgcpInfoCode code) return charstring {
 		var MgcpParameterList pars;
 		if (ischosen(msg.command)) {
@@ -317,6 +333,13 @@
 		return f_mgcp_extract_par(msg, code);
 	}
 
+	function f_MgcpCmd_contains_par(MgcpCommand cmd, MgcpInfoCode code) return boolean {
+		var MgcpMessage msg := {
+			command := cmd
+		}
+		return f_mgcp_contains_par(msg, code);
+	}
+
 	function f_MgcpResp_extract_conn_id(MgcpResponse resp) return MgcpConnectionId {
 		return str2hex(f_MgcpResp_extract_par(resp, "I"));
 	}