Ticket #530 (new defect)

Opened 10 years ago

Last modified 9 years ago

Transaction PJSIP_TSX_STATE_TRYING state is not propaged properly to dialog usages

Reported by: bennylp Owned by: bennylp
Priority: normal Milestone: Known-Issues-and-Ideas
Component: pjsip Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description

Symptoms:

  • UAS/server presence subscription is not terminated when client does not refresh subscription. This is because PJSIP_TSX_STATE_TRYING state is is never called, causing the code to schedule timeout timer to never get invoked.

The transaction's PJSIP_TSX_STATE_TRYING state is called when pjsip_tsx_recv_msg() is called. Currently this is called by the dialog, when pjsip_dlg_create_uas() is called. Unfortunately, when pjsip_dlg_create_uas() is invoked, no usages have been registered to the dialog, and when the usages are registered, the event has been lost.

The proper solution is either to call pjsip_tsx_recv_msg() in the session level (invite session or presence), or to modify the usages to not depend on the PJSIP_TSX_STATE_TRYING state.

Change History

comment:1 Changed 9 years ago by bennylp

  • Milestone changed from release-0.9.0 to Known-Issues
Note: See TracTickets for help on using tickets.