summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Harwell <kharwell@digium.com>2017-11-22 10:42:48 -0600
committerKevin Harwell <kharwell@digium.com>2017-11-22 11:00:09 -0600
commit260ade8be8ee08029a87d67c3909c580586d29df (patch)
tree1e4c1139f8fee817be5ed1bac2fe9c8b4f707b23
parent3e625465116a0fb985d94bcd1eb4096a85026307 (diff)
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
-rw-r--r--third-party/pjproject/patches/0040-183_without_to_tag.patch17
1 files changed, 17 insertions, 0 deletions
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);