Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#2173 closed defect (fixed)

On PJSUA2, application will not be notified when when SDP nego fails due to unsupported codec.

Reported by: riza Owned by: bennylp
Priority: normal Milestone: release-2.9
Component: pjsua2 Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported: no

Description (last modified by nanang)

Ticket #1916 enables on_incoming_call() called from on_create_media_transport() for PJSUA2.

However, after the on_incoming_call() invocation, there is a chance that the call is disconnected by the library (e.g: due to unsupported codec or unsupported SIP capability requirement). Unfortunately, there is a bug in the library that application will not be informed about the call disconnection in such scenario.

The patch will add check for codec and capability support from the SDP before
calling on_incoming_call(). In this case, when the check fails then on_incoming_call() will not be called.

However, actually there is still a chance of failure in further step of call verification, so the call may get rejected by the library after incoming call callback is invoked. In this case, call state callback on_call_state() will be invoked to notify application about call disconnection.

Thanks to Ryan Wallach for the report.

Change History (3)

comment:1 Changed 5 years ago by riza

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

In r5928:

Close #2173: On PJSUA2, application will not be notified when when SDP nego fails due to unsupported codec.

comment:2 Changed 5 years ago by nanang

  • Component changed from pjsip to pjsua2
  • Description modified (diff)

comment:3 Changed 5 years ago by ming

In 5930:

Re #2173: Fixed assertion caused by PJMEDIA_SDP_EMISSINGCONN, if incoming INVITE contains unsupported media (such as video when PJSIP is built without video).

The assertion happens in:
pjsip_inv_verify_request3: Assertion `(status=pjmedia_sdp_validate(l_sdp))==PJ_SUCCESS' failed.

Note: See TracTickets for help on using tickets.