From b1edf7b64f6c05932c83b4d31b1127f2a833601e Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Thu, 20 Nov 2014 23:17:32 +0100 Subject: mgcp/sdp: Session name must not be empty pick an empty one The session name must be present in a SDP file. The RFC proposes to use a space for it but the other equipment is using the dash so I have picked that as well. RFC 4566: The "s=" field is the textual session name. There MUST be one and only one "s=" field per session description. The "s=" field MUST NOT be empty and SHOULD contain ISO 10646 characters (but see also the "a=charset" attribute). If a session has no meaningful name, the alue "s= " SHOULD be used (i.e., a single space as the session name). Fixes: RT#2196 --- openbsc/src/libmgcp/mgcp_protocol.c | 1 + openbsc/tests/mgcp/mgcp_test.c | 7 +++++++ 2 files changed, 8 insertions(+) (limited to 'openbsc') diff --git a/openbsc/src/libmgcp/mgcp_protocol.c b/openbsc/src/libmgcp/mgcp_protocol.c index 98452ce04..5df357776 100644 --- a/openbsc/src/libmgcp/mgcp_protocol.c +++ b/openbsc/src/libmgcp/mgcp_protocol.c @@ -258,6 +258,7 @@ static int write_response_sdp(struct mgcp_endpoint *endp, len = snprintf(sdp_record, size, "v=0\r\n" "o=- %u 23 IN IP4 %s\r\n" + "s=-\r\n" "c=IN IP4 %s\r\n" "t=0 0\r\n", endp->ci, addr, addr); diff --git a/openbsc/tests/mgcp/mgcp_test.c b/openbsc/tests/mgcp/mgcp_test.c index 0a3c47a9f..0f0e06ccf 100644 --- a/openbsc/tests/mgcp/mgcp_test.c +++ b/openbsc/tests/mgcp/mgcp_test.c @@ -84,6 +84,7 @@ static void test_strline(void) "\n" \ "v=0\r\n" \ "o=- 1 23 IN IP4 0.0.0.0\r\n" \ + "s=-\r\n" \ "c=IN IP4 0.0.0.0\r\n" \ "t=0 0\r\n" \ "m=audio 0 RTP/AVP 126\r\n" \ @@ -94,6 +95,7 @@ static void test_strline(void) "\n" \ "v=0\r\n" \ "o=- 3 23 IN IP4 0.0.0.0\r\n" \ + "s=-\r\n" \ "c=IN IP4 0.0.0.0\r\n" \ "t=0 0\r\n" \ "m=audio 0 RTP/AVP 126\r\n" \ @@ -118,6 +120,7 @@ static void test_strline(void) "\n" \ "v=0\r\n" \ "o=- 1 23 IN IP4 0.0.0.0\r\n" \ + "s=-\r\n" \ "c=IN IP4 0.0.0.0\r\n" \ "t=0 0\r\n" \ "m=audio 0 RTP/AVP 126\r\n" \ @@ -209,6 +212,7 @@ static void test_strline(void) "\n" \ "v=0\r\n" \ "o=- 1 23 IN IP4 0.0.0.0\r\n" \ + "s=-\r\n" \ "c=IN IP4 0.0.0.0\r\n" \ "t=0 0\r\n" \ "m=audio 0 RTP/AVP 126\r\n" \ @@ -220,6 +224,7 @@ static void test_strline(void) "\n" \ "v=0\r\n" \ "o=- 1 23 IN IP4 0.0.0.0\r\n" \ + "s=-\r\n" \ "c=IN IP4 0.0.0.0\r\n" \ "t=0 0\r\n" \ "m=audio 0 RTP/AVP 126\r\n" \ @@ -230,6 +235,7 @@ static void test_strline(void) "\n" \ "v=0\r\n" \ "o=- 3 23 IN IP4 0.0.0.0\r\n" \ + "s=-\r\n" \ "c=IN IP4 0.0.0.0\r\n" \ "t=0 0\r\n" \ "m=audio 0 RTP/AVP 126\r\n" \ @@ -250,6 +256,7 @@ static void test_strline(void) "\n" \ "v=0\r\n" \ "o=- 2 23 IN IP4 0.0.0.0\r\n" \ + "s=-\r\n" \ "c=IN IP4 0.0.0.0\r\n" \ "t=0 0\r\n" \ "m=audio 0 RTP/AVP 126\r\n" \ -- cgit v1.2.3