diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c
index 67899e4180e4db0c18d92bfead9d8673b1acaac2..621dd1676d4253ca3c099c6b2ffa409858984ee5 100644
--- a/res/res_pjsip_session.c
+++ b/res/res_pjsip_session.c
@@ -762,6 +762,14 @@ static int handle_incoming_sdp(struct ast_sip_session *session, const pjmedia_sd
 				ast_stream_free(stream);
 				return -1;
 			}
+			if (existing_stream) {
+				const char *stream_label = ast_stream_get_metadata(existing_stream, "SDP:LABEL");
+
+				if (!ast_strlen_zero(stream_label)) {
+					ast_stream_set_metadata(stream, "SDP:LABEL", stream_label);
+				}
+			}
+
 			/* For backwards compatibility with the core the default audio stream is always sendrecv */
 			if (!ast_sip_session_is_pending_stream_default(session, stream) || strcmp(media, "audio")) {
 				if (pjmedia_sdp_media_find_attr2(remote_stream, "sendonly", NULL)) {
@@ -1968,6 +1976,14 @@ static int sdp_requires_deferral(struct ast_sip_session *session, const pjmedia_
 			return -1;
 		}
 
+		if (existing_stream) {
+			const char *stream_label = ast_stream_get_metadata(existing_stream, "SDP:LABEL");
+
+			if (!ast_strlen_zero(stream_label)) {
+				ast_stream_set_metadata(stream, "SDP:LABEL", stream_label);
+			}
+		}
+
 		session_media = ast_sip_session_media_state_add(session, session->pending_media_state, ast_media_type_from_str(media), i);
 		if (!session_media) {
 			return -1;