Releases: pjsip/pjproject
Releases · pjsip/pjproject
PJSIP version 2.17
Release Focus
- Asynchronous SIP client authentication (#4816) (docs)
- AI real-time speech connectivity (#4866, #4870) (docs)
- CMake improvements (#4900, #4896, #4704)
- Improved deadlock detection and deadlock fixes (#4734, #4893, #4832, #4806, #4773, #4764, #4740, #4748, #4738, #4910)
Backward incompatibility
- #4888: Default Opus library name on MSVC changed from
libopus.atoopus.lib. To keep the old name, definePJMEDIA_CODEC_OPUS_LIB_NAME "libopus.a"inconfig_site.h. - #4830: PJSUA2
Call::acctype changed fromAccount&toAccount*; C++ callers must use->instead of..- New
pjsua_acc_del2()/Account::shutdown2()provide safer deletion that rejects while calls are active.
- New
- #4765: INVITE transaction termination is delayed to absorb retransmissions, and 200 OK retransmissions are disabled (partial RFC 6026 adoption).
Security issue
- Buffer overflow in ICE with long username
- Use-after-free in H264 packetizer when packetizing fragmented NAL
- Heap buffer overflow in H.264 unpacketizer
- Stack buffer overflow in parsing RTP payload in pjmedia-codec framework
- Heap use-after-free in PJSIP presence subscription termination handler
- ICE session use-after-free race conditions
- Heap buffer overflow in DNS parser
- Out-of-bounds read in SIP multipart parsing
- Heap OOB read in VPX unpacketizer
- Heap buffer overflow in Opus codec decoding
- Stack buffer overflow in pjsip_auth_create_digest2()
- Asymmetric ptime integer overflow in Media Stream
- SIP Multipart CID URI Length Underflow
- GnuTLS backend silently skips certificate chain verification when verify_peer is false
For ticket list, please see Milestone 2.17
PJSIP version 2.16
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
PJSIP version 2.15
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
Bug fixes
See also PJSIP version 2.14.
PJSIP version 2.14
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
- Use-after-free in SRTP media transport
- And all the security issues listed in release 2.13.1
For ticket list, please see Milestone 2.14
PJSIP version 2.13.1
PJSIP version 2.13
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
- Potential media transport downgrade from the secure version (SRTP) to the non-secure one (RTP)
- Potential buffer overflow in pjlib scanner and pjmedia
- Potential stack buffer overflow when parsing message as a STUN client
- And all the security issues listed in release 2.12.1
For ticket list, please see Milestone 2.13
PJSIP version 2.12.1
Security Issue
- Potential buffer overflow in pjsip_auth_create_digest() (GHSA-73f7-48m9-w662)
- Denial-of-service in XML parsing due to an infinite loop (GHSA-5x45-qp78-g4p4)
- Potential stack buffer overflow when printing SDP into a buffer (GHSA-f5qg-pqcg-765m)
- Potential out-of-bound read/write when parsing RTCP FB RPSI (GHSA-vhxv-phmx-g52q)
- Potential infinite loop when parsing WAV format file (GHSA-rwgw-vwxg-q799)
- Potential heap buffer overflow when parsing DNS packets (GHSA-p6g5-v97c-w5q4)
Bug fix
See also milestone 2.12.1
PJSIP version 2.12
Release Focus
Backward Incompatibility
- UAS INVITE transaction no longer terminated upon transport error/disconnection (#2683)
Security Issue
- Potential integer underflow upon receiving STUN message (GHSA-2qpg-f6wf-w984)
- Use after free of dialog set (GHSA-ffff-m5fm-qm62)
- Missing unreleased of locks in failure cases (GHSA-8fmx-hqw7-6gmc)
- Potential out-of-bounds read when parsing RTCP BYE message (GHSA-3qx3-cg72-wrh9)
- Prevent OOB read for RTCP XR block (GHSA-r374-qrwv-86hh)
- Potential buffer overflow in pjsua_player_create(), pjsua_recorder_create(), pjmedia_wav_player_create(), and pjsua_call_dump() (GHSA-qcvw-h34v-c7r9)
- Potential out-of-bound read during RTP/RTCP parsing (GHSA-m66q-q64c-hv36)
- Prevent OOB read in multipart parsing (GHSA-7fw8-54cv-r7pm)
- Use after free of dialog set (GHSA-ffff-m5fm-qm62)
For ticket list, please see Milestone 2.12