Skip to content

PJSIP version 2.10

Compare
Choose a tag to compare
@sauwming sauwming released this 14 Feb 09:59
· 1005 commits to master since this release

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

  1. 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 to pjsip_contact_hdr.expires == PJSIP_EXPIRES_NOT_SPECIFIED.
    • Direct setting/comparison with -1 should still work, for example: pjsip_pres_inititate(sub, -1, ...) or pjsip_contact_hdr.expires == -1. This is because PJSIP_EXPIRES_NOT_SPECIFIED == (unsigned) -1. Nevertheless, for future compatibility, it is recommended to change any -1 to PJSIP_EXPIRES_NOT_SPECIFIED.
  2. 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 to pjsip_inv_state.PJSIP_INV_STATE_CONFIRMED.
    • All enumeration types are now int, e.g: pjsip_status_code code must be changed to int code.
  3. Due to #2251 (Deadlock between PJSUA LOCK and conference mutex):
    • pjmedia_*_set_eof_cb() and pjmedia_*_set_cb() are deprecated and replaced with pjmedia_*_set_eof_cb2()/set_cb2(). The callbacks will now be asynchronous.
  4. Due to #2265 (Compatibility issues on Python 3.7 or above):
    • PJSUA2 async field in OnCallRxReinviteParam is renamed to isAsync.

For ticket list, please see Milestone 2.10