Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#1662 closed defect (fixed)

Call slot unavailable after some fail calls due to codec mismatch

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


Scenario to reproduce:

  1. A calls B.
  2. B rejects with 406 (not acceptable here) due to no matching audio codec available.
  3. Repeat the above two steps for about four more times (or as many as max calls setting).
  4. Now the B will reject with 486 (busy here), instead of 406.
  5. Any future making/incoming call will fail due to unavailable call slot until the stack is restarted.

After investigation, when PJSUA terminates a call due to media channel init error, the pointer to dialog (for async media transport creation), i.e: pjsua_call.async_call.dlg, is not nullified, while the call slot allocation will inspect this pointer (along with the INVITE session pointer) to check the call slot availability.

Change History (2)

comment:1 Changed 11 years ago by nanang

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

In 4509:

Fixed #1662: Reset/nullify the pointer to dialog in internal PJSUA call structure after an incoming call is terminated due to media channel init error.

comment:2 Changed 11 years ago by ming

In 4518:

Re #1662: Clear call descriptor before making call

Note: See TracTickets for help on using tickets.