Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#1797 closed defect (fixed)

Failed re-invite/update caused by a bug in provisional media clean up

Reported by: ming Owned by: bennylp
Priority: normal Milestone: release-2.4
Component: pjsua-lib Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported: no

Description (last modified by riza)

Consider this scenario:

  1. send re-Invite with video
  2. get 491 resp
  3. send ACK
  4. send re-Invite with video

Currently, the second re-Invite will fail due to the bug in provisional media cleanup.

Clean up provisional media upon:

  • failed (non-2xx) responses, or
  • 2xx responses but no/invalid answer

Additionally, the ticket will fix media_prov_clean_up() to clear
call->med_prov_cnt, so that pjsua_call_media_is_changing() can behave
correctly.

Change History (4)

comment:1 Changed 6 years ago by ming

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

In 4948:

Fixed #1797: Clean up provisional media after re-invite/update

comment:2 Changed 6 years ago by riza

  • Description modified (diff)
  • Summary changed from Clean up provisional media after re-invite/update to Failed re-invite/update caused by a bug in provisional media clean up

comment:3 Changed 6 years ago by riza

In 4956:

Fixed #1797: Clean up provisional media is executed when there is an ongoing SDP negotiation.
Scenario:

  1. re-invite got 491, state tsx changed to completed
  2. cleanup prov med executed
  3. re-invite again with video
  4. timer tsx to shift tsx no 1, from completed -> terminated trigger provisional cleanup
  5. provisional video transport in no 3 got cleanup

comment:4 Changed 6 years ago by ming

In 4976:

Re #1797: Fixes assert if 422 response is received (thanks to Brian Walker for the report)

If 422 is received, INVITE will be automatically retried, but the
provisional media has been cleaned up.

Note: See TracTickets for help on using tickets.