mgcp/test: Output the packet duration after MGCP parsing

This also adds additional MDCX tests (based on MDCX4) to test the
analysis of different combinations of 'p' and 'ptime' fields.

Sponsored-by: On-Waves ehf
This commit is contained in:
Jacob Erlbeck
2013-12-10 13:09:37 +01:00
committed by Holger Hans Peter Freyther
parent 33f300915a
commit ba477d2ba3
2 changed files with 85 additions and 5 deletions

View File

@@ -92,8 +92,9 @@ static void test_strline(void)
"c=IN IP4 0.0.0.0\r\n" \
"t=0 0\r\n" \
"m=audio 4441 RTP/AVP 99\r\n" \
"a=rtpmap:99 AMR/8000\r\n"
#define MDCX4_RET "200 18983216 OK\r\n" \
"a=rtpmap:99 AMR/8000\r\n" \
"a=ptime:40\r\n"
#define MDCX4_RET(Ident) "200 " Ident " OK\r\n" \
"I: 1\n" \
"\n" \
"v=0\r\n" \
@@ -103,6 +104,45 @@ static void test_strline(void)
"m=audio 0 RTP/AVP 126\r\n" \
"a=rtpmap:126 AMR/8000\r\n"
#define MDCX4_PT1 "MDCX 18983217 1@mgw MGCP 1.0\r\n" \
"C: 2\r\n" \
"I: 1\r\n" \
"L: p:20-40, a:AMR, nt:IN\r\n" \
"\n" \
"v=0\r\n" \
"o=- 1 23 IN IP4 0.0.0.0\r\n" \
"c=IN IP4 0.0.0.0\r\n" \
"t=0 0\r\n" \
"m=audio 4441 RTP/AVP 99\r\n" \
"a=rtpmap:99 AMR/8000\r\n" \
"a=ptime:40\r\n"
#define MDCX4_PT2 "MDCX 18983218 1@mgw MGCP 1.0\r\n" \
"C: 2\r\n" \
"I: 1\r\n" \
"L: p:20-20, a:AMR, nt:IN\r\n" \
"\n" \
"v=0\r\n" \
"o=- 1 23 IN IP4 0.0.0.0\r\n" \
"c=IN IP4 0.0.0.0\r\n" \
"t=0 0\r\n" \
"m=audio 4441 RTP/AVP 99\r\n" \
"a=rtpmap:99 AMR/8000\r\n" \
"a=ptime:40\r\n"
#define MDCX4_PT3 "MDCX 18983219 1@mgw MGCP 1.0\r\n" \
"C: 2\r\n" \
"I: 1\r\n" \
"L: a:AMR, nt:IN\r\n" \
"\n" \
"v=0\r\n" \
"o=- 1 23 IN IP4 0.0.0.0\r\n" \
"c=IN IP4 0.0.0.0\r\n" \
"t=0 0\r\n" \
"m=audio 4441 RTP/AVP 99\r\n" \
"a=rtpmap:99 AMR/8000\r\n" \
"a=ptime:40\r\n"
#define SHORT2 "CRCX 1"
#define SHORT2_RET "510 000000 FAIL\r\n"
#define SHORT3 "CRCX 1 1@mgw"
@@ -112,11 +152,13 @@ static void test_strline(void)
#define CRCX "CRCX 2 1@mgw MGCP 1.0\r\n" \
"M: sendrecv\r\n" \
"C: 2\r\n" \
"L: p:20\r\n" \
"\r\n" \
"v=0\r\n" \
"c=IN IP4 123.12.12.123\r\n" \
"m=audio 5904 RTP/AVP 97\r\n" \
"a=rtpmap:97 GSM-EFR/8000\r\n"
"a=rtpmap:97 GSM-EFR/8000\r\n" \
"a=ptime:40\r\n"
#define CRCX_RET "200 2 OK\r\n" \
"I: 1\n" \
@@ -128,7 +170,6 @@ static void test_strline(void)
"m=audio 0 RTP/AVP 126\r\n" \
"a=rtpmap:126 AMR/8000\r\n"
#define CRCX_ZYN "CRCX 2 1@mgw MGCP 1.0\r" \
"M: sendrecv\r" \
"C: 2\r\r" \
@@ -184,7 +225,10 @@ static const struct mgcp_test tests[] = {
{ "MDCX2", MDCX_UNALLOCATED, MDCX_RET },
{ "CRCX", CRCX, CRCX_RET, 97, 126 },
{ "MDCX3", MDCX3, MDCX3_RET, PTYPE_NONE, 126 },
{ "MDCX4", MDCX4, MDCX4_RET, 99, 126 },
{ "MDCX4", MDCX4, MDCX4_RET("18983216"), 99, 126 },
{ "MDCX4_PT1", MDCX4_PT1, MDCX4_RET("18983217"), 99, 126 },
{ "MDCX4_PT2", MDCX4_PT2, MDCX4_RET("18983218"), 99, 126 },
{ "MDCX4_PT3", MDCX4_PT3, MDCX4_RET("18983219"), 99, 126 },
{ "DLCX", DLCX, DLCX_RET, -1, -1 },
{ "CRCX_ZYN", CRCX_ZYN, CRCX_ZYN_RET, 97, 126 },
{ "EMPTY", EMPTY, EMPTY_RET },
@@ -245,6 +289,7 @@ static void test_messages(void)
for (i = 0; i < cfg->trunk.number_endpoints; i++) {
endp = &cfg->trunk.endpoints[i];
endp->net_end.payload_type = PTYPE_NONE;
endp->net_end.packet_duration_ms = -1;
}
for (i = 0; i < ARRAY_SIZE(tests); i++) {
@@ -266,6 +311,20 @@ static void test_messages(void)
printf("%s failed '%s'\n", t->name, (char *) msg->data);
msgb_free(msg);
if (last_endpoint != -1) {
endp = &cfg->trunk.endpoints[last_endpoint];
if (endp->net_end.packet_duration_ms != -1)
printf("Detected packet duration: %d\n",
endp->net_end.packet_duration_ms);
else
printf("Packet duration not set\n");
printf("Requested packetization period not set\n");
endp->net_end.packet_duration_ms = -1;
}
/* Check detected payload type */
if (t->exp_net_ptype != PTYPE_IGNORE ||
t->exp_bts_ptype != PTYPE_IGNORE) {

View File

@@ -16,10 +16,29 @@ Testing AUEP2
Testing MDCX1
Testing MDCX2
Testing CRCX
Packet duration not set
Requested packetization period not set
Testing MDCX3
Packet duration not set
Requested packetization period not set
Testing MDCX4
Packet duration not set
Requested packetization period not set
Testing MDCX4_PT1
Packet duration not set
Requested packetization period not set
Testing MDCX4_PT2
Packet duration not set
Requested packetization period not set
Testing MDCX4_PT3
Packet duration not set
Requested packetization period not set
Testing DLCX
Detected packet duration: 20
Requested packetization period not set
Testing CRCX_ZYN
Packet duration not set
Requested packetization period not set
Testing EMPTY
Testing SHORT1
Testing SHORT2
@@ -28,6 +47,8 @@ Testing SHORT4
Testing RQNT1
Testing RQNT2
Testing DLCX
Detected packet duration: 20
Requested packetization period not set
Testing CRCX
Re-transmitting CRCX
Testing RQNT1