Pjproject Versions Save

PJSIP project

2.14

6 months ago

Release Focus

  • IPv4 & IPv6 dual stack option in account config (#3590)
  • Video feature for Android and iOS sample apps: Android PJSUA2 Java & Kotlin (#3673), iOS Swift PJSUA (#3342), iOS Swift PJSUA2 (#3381).
  • Xamarin samples for Android and iOS (#3584)

Backward Incompatibility

  • Handle 2nd INVITE when in early state (#3458)
  • Allow dialog establishment when remote does not provide To tag (#3394)
  • Respond with ACK first before hanging up call for dialog fork (#3445)
  • Consider session terminated on 408 and 481 response (#3457)

Security Issue

For ticket list, please see Milestone 2.14

2.13

1 year ago

Release Focus

  • UPnP (#3184)
  • Support OpenSSL 3 (#3168)
  • Fix video deadlock issue (#3166 and #3183)

Backward Incompatibility

  • Call replace must now use the same account (previously PJSUA app can override the account used) (#3059)
  • Our coding style now uses spaces instead of mixed tabs/spaces (#3210, #3292)

Security Issue

For ticket list, please see Milestone 2.13

2.12.1

2 years ago

Security Issue

Bug fix

  • Android Camera2: #3044, #3063
  • Android Oboe: #3046
  • Call hangup: #3026

See also milestone 2.12.1

2.12

2 years ago

Release Focus

  • WebRTC updates with AEC3 & AGC2 (#2722)
  • Support Oboe for Android (#2707)

Backward Incompatibility

  • UAS INVITE transaction no longer terminated upon transport error/disconnection (#2683)

Security Issue

For ticket list, please see Milestone 2.12

2.11.1

2 years ago

Release Focus

Security update. This version is recommended for all users to improve the security of applications using PJSIP.

For more information, please see Milestone 2.11.1

2.11

3 years ago

Release Focus

  • Trickle ICE
  • iOS native SSL
  • Android native codecs (H264, VP8, VP9, AMR-NB & AMR-WB)
  • iOS Swift and Android Kotlin sample apps.

For ticket list, please see Milestone 2.11

2.10

4 years ago

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

2.4.5

4 years ago

Released on 2015-08-12T04:23:46Z

Release Focus

  • Video Capture Orientation

For more details about the ticket list, please see Milestone 2.4.5