mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
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
This commit is contained in:
17
third-party/pjproject/patches/0040-183_without_to_tag.patch
vendored
Normal file
17
third-party/pjproject/patches/0040-183_without_to_tag.patch
vendored
Normal file
@@ -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);
|
Reference in New Issue
Block a user