Ticket #1727 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

Issues in event subscription server timer (thanks Mark Michelson for the report)

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

Description

Reported issues:

  • The timer TIMER_TYPE_UAS_TIMEOUT is not scheduled after receiving initial SUBSCRIBE, the timer will only be scheduled after receiving refresh SUBSCRIBE.
  • Callback on_server_timeout() should not be invoked when subscription has already been terminated, sample scenario:
    1. receive SUBSCRIBE with an Expires header of 0
    2. the subscription state shifts to terminated, but the subscription destroy is delayed due to pending subscription transaction
    3. meanwhile, timer callback is called for TIMER_TYPE_UAS_TIMEOUT and on_server_timeout() callback is invoked.

Change History

comment:1 Changed 3 years ago by nanang

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

In 4718:

Fix #1727:

  • Start timer TIMER_TYPE_UAS_TIMEOUT when incoming subscription request is accepted (via pjsip_evsub_accept()).
  • Kill any timer when subscription state is shifting into TERMINATED.
Note: See TracTickets for help on using tickets.