Opened 15 years ago

Last modified 15 years ago

#917 closed defect

CANCEL may be sent to different servers than the INVITE when DNS SRV is used (thanks Alexei Kuznetsov for the report) — at Version 1

Reported by: bennylp Owned by: bennylp
Priority: normal Milestone: release-1.5
Component: pjsip Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description (last modified by bennylp)

RFC 3263 says:

the ACK for non-2xx SIP responses to INVITE MUST be sent to the same host. Furthermore, a CANCEL for a particular SIP request MUST be sent to the same SIP server that the SIP request was delivered to.

With PJSIP, CANCEL initiates a fresh DNS SRV hence it's possible that it may resolve to different server than the original INVITE.

ACK for non-3xx belongs to the same transaction as the INVITE hence it will reuse the transaction's transport and destination address.

Change History (2)

comment:1 Changed 15 years ago by bennylp

  • Description modified (diff)

Changed 15 years ago by bennylp

Provisional patch, fixing the issue by inserting a hidden Route header to the CANCEL and INVITE request. This patch will not work if strict route is used, hence alternative solution is needed.

Note: See TracTickets for help on using tickets.