diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index ef367917f9dbbdcc0425bc7866717522b36eb5fa..20a14f0fb0d32a68a1e740f91c20a121d1cc2cb0 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4870,6 +4870,7 @@ static int find_sdp(struct sip_request *req)
 	const char *search;
 	char *boundary;
 	unsigned int x;
+	int boundaryisquoted = FALSE;
 
 	content_type = get_header(req, "Content-Type");
 
@@ -4889,15 +4890,24 @@ static int find_sdp(struct sip_request *req)
 		return 0;
 
 	search += 10;
-
 	if (ast_strlen_zero(search))
 		return 0;
 
+	/* If the boundary is quoted with ", remove quote */
+	if (*search == '\"')  {
+		search++;
+		boundaryisquoted = TRUE;
+	}
+
 	/* make a duplicate of the string, with two extra characters
 	   at the beginning */
 	boundary = ast_strdupa(search - 2);
 	boundary[0] = boundary[1] = '-';
 
+	/* Remove final quote */
+	if (boundaryisquoted)
+		boundary[strlen(boundary) - 1] = '\0';
+
 	/* search for the boundary marker, but stop when there are not enough
 	   lines left for it, the Content-Type header and at least one line of
 	   body */