Ticket #379 (closed enhancement: duplicate)

Opened 10 years ago

Last modified 10 years ago

Implement merged request detection

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

Description

Merged request is described in RFC 3261 Section 8.2.2.2:

8.2.2.2 Merged Requests

   If the request has no tag in the To header field, the UAS core MUST
   check the request against ongoing transactions.  If the From tag,
   Call-ID, and CSeq exactly match those associated with an ongoing
   transaction, but the request does not match that transaction (based
   on the matching rules in Section 17.2.3), the UAS core SHOULD
   generate a 482 (Loop Detected) response and pass it to the server
   transaction.

      The same request has arrived at the UAS more than once, following
      different paths, most likely due to forking.  The UAS processes
      the first such request received and responds with a 482 (Loop
      Detected) to the rest of them.

This feature is needed to cope with (Open)SER behavior in the scenario below.

  1. UAC sends INVITE
  2. UAS receives INVITE and sends 200 response
  3. This response doesn't reach UAC, so UAC keeps retransmitting INVITE
  4. At some point, it looks like the proxy kills the INVITE transaction, so upon receiving INVITE retransmission from UAC, it will forward the INVITE to UAS, with different branch.
  5. UAS, without merge request detection, will treat this INVITE as a new INVITE, thus it will create a new dialog.

Change History

comment:1 Changed 10 years ago by bennylp

  • Status changed from new to closed
  • Resolution set to duplicate

This duplicate of ticket #378

Note: See TracTickets for help on using tickets.