Opened 18 years ago

Closed 18 years ago

#111 closed defect (fixed)

Workaround for forking

Reported by: bennylp Owned by: bennylp
Priority: major Milestone: release-0.5.10.2
Component: pjsip Version: 0.5.10.1
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description

Application should really handle forking dialog, but it's quite complicated to do that, so currently even pjsua-api cannot handle forked dialog. But there seems to be a simpler workaround to solve this problem.

We're taking the fact that in most cases only one 2xx response will ever get back to the dialog. Several 1xx responses will get through and these will affect dialog/session state and mess around with SDP negotiation if the response carries SDP body, but this is not as fatal as having incorrect To tag recorded by the dialog.

Currently the dialog takes the first To tag seen and set it as the remote tag. If the tag in 2xx response is different than this tag, ACK will be sent with wrong To tag and incoming request with this tag will be rejected with 481.

The workaround for this is to take the last To tag received in the response and set it as remote tag.

Change History (4)

comment:1 Changed 18 years ago by bennylp

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

Fixed in r979.

When the To tag in the 2xx response is different than in 1xx, the 2xx response will be the authoritative response and will update the To tag, route-set, etc.

comment:2 Changed 18 years ago by bennylp

Actually this was fixed on r980 for the stable branch.

comment:3 Changed 18 years ago by bennylp

  • Milestone changed from release-0.5.10.1 to release-0.5.10.2
  • Resolution fixed deleted
  • Status changed from closed to reopened
  • Version changed from 0.5.10 to 0.5.10.1

Re-opened for 0.5.10.1.

comment:4 Changed 18 years ago by bennylp

  • Resolution set to fixed
  • Status changed from reopened to closed

Fixed in r988.

Note: See TracTickets for help on using tickets.