From 5abab0a34c383de5e8b4b2800ae4e6459a996a73 Mon Sep 17 00:00:00 2001 From: Kevin Harwell Date: Wed, 22 Nov 2017 10:42:48 -0600 Subject: pjsip: 183 without To tag does not negotiate media If a 183 with sdp response is receive without a To tag the sdp is not negotiated. According to RFC 3261 section 12.1.2 while a To tag is required, the client needs to still be able to handle the missing tag case for backwards compatibility. This patch, accepted by and applied to pjproject, makes it so if an incoming 180/183 with SDP comes in without a To tag it gets appropriately handled. ASTERISK-27442 #close Change-Id: Ic9d6b01e05e8f4874eebbd7adfe05d932025d203 --- .../pjproject/patches/0040-183_without_to_tag.patch | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 third-party/pjproject/patches/0040-183_without_to_tag.patch (limited to 'third-party') diff --git a/third-party/pjproject/patches/0040-183_without_to_tag.patch b/third-party/pjproject/patches/0040-183_without_to_tag.patch new file mode 100644 index 000000000..e8692fe1b --- /dev/null +++ b/third-party/pjproject/patches/0040-183_without_to_tag.patch @@ -0,0 +1,17 @@ +diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c +index c9686a0..fc52a63 100644 +--- a/pjsip/src/pjsip-ua/sip_inv.c ++++ b/pjsip/src/pjsip-ua/sip_inv.c +@@ -4156,9 +4156,10 @@ static void inv_on_state_calling( pjsip_inv_session *inv, pjsip_event *e) + status = pjsip_inv_send_msg(inv, cancel); + } + +- if (dlg->remote.info->tag.slen) { ++ if (tsx->status_code != 100) { + +- inv_set_state(inv, PJSIP_INV_STATE_EARLY, e); ++ if (dlg->remote.info->tag.slen) ++ inv_set_state(inv, PJSIP_INV_STATE_EARLY, e); + + inv_check_sdp_in_incoming_msg(inv, tsx, + e->body.tsx_state.src.rdata); -- cgit v1.2.3