Skip to content

Releases: pjsip/pjproject

PJSIP version 2.17

22 Apr 07:15

Choose a tag to compare

Release Focus

Backward incompatibility

  • #4888: Default Opus library name on MSVC changed from libopus.a to opus.lib. To keep the old name, define PJMEDIA_CODEC_OPUS_LIB_NAME "libopus.a" in config_site.h.
  • #4830: PJSUA2 Call::acc type changed from Account& to Account*; C++ callers must use -> instead of ..
    • New pjsua_acc_del2() / Account::shutdown2() provide safer deletion that rejects while calls are active.
  • #4765: INVITE transaction termination is delayed to absorb retransmissions, and 200 OK retransmissions are disabled (partial RFC 6026 adoption).

Security issue

For ticket list, please see Milestone 2.17

PJSIP version 2.16

26 Nov 00:10

Choose a tag to compare

Release Focus

  • Real time text (RTT) (RFC 4103) (#4344)
  • Parallel conference bridge (#4241)
  • Audio video synchronization (#4325)

Backward Incompatibility

  • Only for pool implementors (regular pool users are not affected): Pool API change in #4277 (Aligned memory allocation).

Security Issue

For ticket list, please see Milestone 2.16

PJSIP version 2.15.1

16 Dec 05:11

Choose a tag to compare

Bug fixes

See also PJSIP version 2.15.

PJSIP version 2.15

03 Dec 07:06

Choose a tag to compare

Release Focus

  • Metal renderer for Mac and iOS (#3841)
  • TLS/SSL backend: Windows Schannel (#3867)
  • Dialog Event subscription, client only (#3754)
  • Lyra codec (#3949)

Backward Incompatibility

  • Asynchronous conference bridge operations (#3928):
    • For PJMEDIA port implementation, PJMEDIA port must use its own pool to avoid premature destroy (for more info, see potential issue no 1 in PR desc).
    • For PJMEDIA port implementation, due to the async nature of conf port removal, media port must be prepared to receive further get/put_frame() callbacks until the removal completes.
    • For application, caching pool factory used for creating a PJMEDIA port must not be destroyed before the port removal from the bridge is completed (for more info, see potential issue no 3 in PR desc).
  • App cannot specify MD5 and AKA MD5 in a single credential (#4118)

For ticket list, please see Milestone 2.15

PJSIP version 2.14.1

11 Mar 08:37

Choose a tag to compare

Bug fixes

See also PJSIP version 2.14.

PJSIP version 2.14

01 Nov 09:40

Choose a tag to compare

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

PJSIP version 2.13.1

05 Jul 04:18

Choose a tag to compare

PJSIP version 2.13

24 Nov 05:43

Choose a tag to compare

Release Focus

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

PJSIP version 2.12.1

10 May 04:44

Choose a tag to compare

Security Issue

Bug fix

See also milestone 2.12.1

PJSIP version 2.12

24 Feb 08:25

Choose a tag to compare

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