mgcp_client_test: test long conn_id

Add a full length (32 characters according to spec) conn ID in a CRCX response,
as well as a too long one.

The too long one is currently silently truncated, a subsequent patch will
improve on that (If2a1aab1f13e771a6705c430e3c75bd42477a23b).

Change-Id: I5f2d52f086ea2d330fcce88a176488ace972bf79
diff --git a/tests/mgcp_client/mgcp_client_test.c b/tests/mgcp_client/mgcp_client_test.c
index 74ed53e..e6982e4 100644
--- a/tests/mgcp_client/mgcp_client_test.c
+++ b/tests/mgcp_client/mgcp_client_test.c
@@ -162,6 +162,60 @@
 		"a=ptime:20\r\n");
 }
 
+void test_crcx_long_conn_id(void)
+{
+	struct msgb *msg;
+	mgcp_trans_id_t trans_id;
+
+	printf("\n===== %s =====\n", __func__);
+
+	if (mgcp)
+		talloc_free(mgcp);
+	mgcp = mgcp_client_init(ctx, &conf);
+
+	msg = mgcp_msg_crcx(mgcp, 23, 42, MGCP_CONN_LOOPBACK);
+	trans_id = dummy_mgcp_send(msg);
+
+	reply_to(trans_id, 200, "OK",
+		"I: 123456789abcdef0123456789ABCDEF0\r\n\r\n"
+		"v=0\r\n"
+		"o=- 1 23 IN IP4 10.9.1.120\r\n"
+		"s=-\r\n"
+		"c=IN IP4 10.9.1.120\r\n"
+		"t=0 0\r\n"
+		"m=audio 16002 RTP/AVP 110 96\r\n"
+		"a=rtpmap:110 AMR/8000\r\n"
+		"a=rtpmap:96 GSM-EFR/8000\r\n"
+		"a=ptime:20\r\n");
+}
+
+void test_crcx_too_long_conn_id(void)
+{
+	struct msgb *msg;
+	mgcp_trans_id_t trans_id;
+
+	printf("\n===== %s =====\n", __func__);
+
+	if (mgcp)
+		talloc_free(mgcp);
+	mgcp = mgcp_client_init(ctx, &conf);
+
+	msg = mgcp_msg_crcx(mgcp, 23, 42, MGCP_CONN_LOOPBACK);
+	trans_id = dummy_mgcp_send(msg);
+
+	reply_to(trans_id, 200, "OK",
+		"I: 123456789abcdef0123456789ABCDEF01001029\r\n\r\n"
+		"v=0\r\n"
+		"o=- 1 23 IN IP4 10.9.1.120\r\n"
+		"s=-\r\n"
+		"c=IN IP4 10.9.1.120\r\n"
+		"t=0 0\r\n"
+		"m=audio 16002 RTP/AVP 110 96\r\n"
+		"a=rtpmap:110 AMR/8000\r\n"
+		"a=rtpmap:96 GSM-EFR/8000\r\n"
+		"a=ptime:20\r\n");
+}
+
 void test_mgcp_msg(void)
 {
 	struct msgb *msg;
@@ -570,6 +624,8 @@
 	test_sdp_section_start();
 	test_map_codec_to_pt_and_map_pt_to_codec();
 	test_map_pt_to_codec();
+	test_crcx_long_conn_id();
+	test_crcx_too_long_conn_id();
 
 	printf("Done\n");
 	fprintf(stderr, "Done\n");
diff --git a/tests/mgcp_client/mgcp_client_test.ok b/tests/mgcp_client/mgcp_client_test.ok
index 5e14219..aedb247 100644
--- a/tests/mgcp_client/mgcp_client_test.ok
+++ b/tests/mgcp_client/mgcp_client_test.ok
@@ -196,4 +196,88 @@
  2 <= 2
  100 <= 100
 
+
+===== test_crcx_long_conn_id =====
+composed:
+-----
+CRCX 1 17@mgw MGCP 1.0

+C: 2a

+L: p:20, a:AMR, nt:IN

+M: loopback

+
+-----
+composed response:
+-----
+200 1 OK

+I: 123456789abcdef0123456789ABCDEF0

+

+v=0

+o=- 1 23 IN IP4 10.9.1.120

+s=-

+c=IN IP4 10.9.1.120

+t=0 0

+m=audio 16002 RTP/AVP 110 96

+a=rtpmap:110 AMR/8000

+a=rtpmap:96 GSM-EFR/8000

+a=ptime:20

+
+-----
+response cb received:
+  head.response_code = 200
+  head.trans_id = 1
+  head.conn_id = 123456789abcdef0123456789ABCDEF0
+  head.comment = OK
+  audio_port = 16002
+  audio_ip = 10.9.1.120
+  ptime = 20
+  codecs_len = 2
+  codecs[0] = 112
+  codecs[1] = 110
+  ptmap_len = 2
+  ptmap[0].codec = 112
+  ptmap[0].pt = 110
+  ptmap[1].codec = 110
+  ptmap[1].pt = 96
+
+===== test_crcx_too_long_conn_id =====
+composed:
+-----
+CRCX 1 17@mgw MGCP 1.0

+C: 2a

+L: p:20, a:AMR, nt:IN

+M: loopback

+
+-----
+composed response:
+-----
+200 1 OK

+I: 123456789abcdef0123456789ABCDEF01001029

+

+v=0

+o=- 1 23 IN IP4 10.9.1.120

+s=-

+c=IN IP4 10.9.1.120

+t=0 0

+m=audio 16002 RTP/AVP 110 96

+a=rtpmap:110 AMR/8000

+a=rtpmap:96 GSM-EFR/8000

+a=ptime:20

+
+-----
+response cb received:
+  head.response_code = 200
+  head.trans_id = 1
+  head.conn_id = 123456789abcdef0123456789ABCDEF0
+  head.comment = OK
+  audio_port = 16002
+  audio_ip = 10.9.1.120
+  ptime = 20
+  codecs_len = 2
+  codecs[0] = 112
+  codecs[1] = 110
+  ptmap_len = 2
+  ptmap[0].codec = 112
+  ptmap[0].pt = 110
+  ptmap[1].codec = 110
+  ptmap[1].pt = 96
 Done