PJSIP version 2.10
Release Focus
- WebRTC interop for video:
- RTCP-FB PLI
- VP8 and VP9 video codec
- Audio Enhancements
- Voice Processing IO for MacOS
- Timer refactoring
Backward incompatibility
- Due to #2209 (Insufficient variable storage to contain Expires header field/ parameter):
- Any sign comparison of expiration fields MUST be modified, for example:
pjsip_contact_hdr.expires < 0
should be changed topjsip_contact_hdr.expires == PJSIP_EXPIRES_NOT_SPECIFIED
. - Direct setting/comparison with -1 should still work, for example:
pjsip_pres_inititate(sub, -1, ...)
orpjsip_contact_hdr.expires == -1
. This is becausePJSIP_EXPIRES_NOT_SPECIFIED == (unsigned) -1
. Nevertheless, for future compatibility, it is recommended to change any-1
toPJSIP_EXPIRES_NOT_SPECIFIED
.
- Any sign comparison of expiration fields MUST be modified, for example:
- Due to #2233 (Change enumeration typemaps in SWIG Java), Java applications needs to be updated:
- Accessing enumeration value is no longer using
swigValue()
method, e.g:pjsip_inv_state.PJSIP_INV_STATE_CONFIRMED.swigValue()
must be changed topjsip_inv_state.PJSIP_INV_STATE_CONFIRMED
. - All enumeration types are now
int
, e.g:pjsip_status_code code
must be changed toint code
.
- Accessing enumeration value is no longer using
- Due to #2251 (Deadlock between PJSUA LOCK and conference mutex):
pjmedia_*_set_eof_cb()
andpjmedia_*_set_cb()
are deprecated and replaced withpjmedia_*_set_eof_cb2()/set_cb2()
. The callbacks will now be asynchronous.
- Due to #2265 (Compatibility issues on Python 3.7 or above):
- PJSUA2
async
field inOnCallRxReinviteParam
is renamed toisAsync
.
- PJSUA2
For ticket list, please see Milestone 2.10