Opened 13 years ago

Last modified 13 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 3

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.

See also ticket #936

Change History (4)

comment:1 Changed 13 years ago by bennylp

  • Description modified (diff)

Changed 13 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.

comment:2 Changed 13 years ago by bennylp

  • Milestone changed from release-1.4 to release-1.5

comment:3 Changed 13 years ago by bennylp

  • Description modified (diff)
Note: See TracTickets for help on using tickets.