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