Ticket #1987 (closed defect: fixed)
Assertion in re-INVITE with PJSUA_CALL_REINIT_MEDIA
|Reported by:||nanang||Owned by:||bennylp|
|Backport to 1.x milestone:||Backported:||no|
- Make call with default call flags where PJSUA_CALL_INCLUDE_DISABLED_MEDIA is set, so SDP offer contains 2 m= lines: audio and disabled video
- After call is established, initiate re-INVITE with call option flag set to only PJSUA_CALL_REINIT_MEDIA (PJSUA_CALL_INCLUDE_DISABLED_MEDIA is cleared). This time SDP offer also contains 2 m= lines: audio and disabled video.
- Assertion raised:
Assertion failed: (call->med_prov_cnt >= local_sdp->media_count), function pjsua_media_channel_update, file ../src/pjsua-lib/pjsua_media.c, line 2857.with call->med_prov_cnt==1, call->med_cnt==2, local_sdp->media_count==2.
After investigation, we found that pjsua_media_channel_init() with PJSUA_CALL_REINIT_MEDIA causes call->med_prov_cnt==1 due to PJSUA_CALL_INCLUDE_DISABLED_MEDIA flag is not set, but pjmedia_sdp_neg_modify_local_offer2() adds a new m= line (i.e: disabled video from current active local SDP) to the SDP to maintain the media count (as mandated by standard). Eventually as call->med_prov_cnt is less than the number of m= line, assertion is raised.
Thanks Nadia Lapkovskaya for the report.