Milestone release-2.2

Completed 10 years ago (Feb 27, 2014 3:09:03 AM)

100%

Total number of tickets: 110 - closed: 110 - active: 0

applications

5 / 5

common

15 / 15

pjlib

5 / 5

pjlib-util

4 / 4

pjmedia

9 / 9

pjmedia-audiodev

5 / 5

pjmedia-videodev

2 / 2

pjnath

5 / 5

pjsip

29 / 29

pjsua-lib

27 / 27

python

3 / 3

third-party

1 / 1

New Features

New PJSUA2 API

PJSUA2 is an object-oriented abstraction on top of ​PJSUA API. It's written in C++, has SWIG binding to Python and Java. A draft documentation is available in https://trac.pjsip.org/repos/wiki/pjsip-doc/index

Android Port

Android port is now available, using PJSUA2 API for Java. Please see Getting-Started/Android for more info.

Third Party Echo Canceller

A third party echo canceller implementation from BDSound was added. It supports Windows, Android, Mac OS X, iOS, and Linux. See ticket #1636 for more info.

Support for Windows 64bit

Implemented in ticket #1680


Ticket List:


Android port

#1516
Build system for Android target
#1518
Android audio device
#1519
pjsua2: New high level API in C++ on top of PJSUA-LIB
#1520
SWIG binding for JNI for the new high level API
#1546
apjsua sample application for Android
#1564
Guide for Android native debugging and deployment topics
#1639
Android branch integration


List of Enhancements

common:

#1576
Add support for Apple iOS LLVM compiler (clang)
#1657
BlackBerry BB10 Integration
#1680
Support for Windows 64bit (Win64)
#1707
Fix parallel build support (thanks to Mark Michelson for the patch)
#1713
Enable building the libraries as shared libraries/DLLs for GNU targets
#1715
PJSIP Book
#1720
Add configure flags for external libsrtp and disabling libresample (thanks David Lee for the patch)
#1723
pjsua2 branch integration

pjlib, pjlib-util:

#1638
Continuation of Group Lock Fixes
#1643
CLI integration

pjnath:

No results

pjmedia, pjmedia-audiodev:

#1636
Add BDsound IMproved Audio Device (bdIMAD) integration
#1658
Stop media endpoint's worker threads first when destroying media subsystem
#1681
Add setting for RTP socket buffer size
#1692
Allow multiple codecs in SDP answer (thanks to Joshua Colp for the patch)
#1705
Add playback and capture callbacks for echo canceller algo
#1730
Deprecation of srtp_deinit() (thanks Tzafrir Cohen for the report)
#1734
Add flash support for DTMF based on RFC 2833
#1736
Update to bdSound's bdiMad audio device to support output routing

pjmedia-videodev:

No results

pjsip, pjsua-lib:

#817
Callback to allow application to respond to re-INVITE manually (thanks Ruud Klaver for the patch)
#1628
Modify SIP transaction to use group lock to avoid deadlock etc.
#1629
Add pjsua_call_set_hold2() API to allow update of Contact header
#1644
Option to switch media session to the latest early media SDP received on forked early media
#1645
Option to add "alias" param in Via header in sending request
#1661
Option to use SO_REUSEADDR for TCP and TLS listeners and use it by default on non-Windows platforms
#1667
Handle incoming UPDATE before 101-199 response is received
#1668
Option to use the IP address found in REGISTER response in the SDP
#1673
Use Request URI when matching incoming request to account if the To URI contains tel: URL
#1675
Callback for specifying account to handle incoming message
#1682
Configurable local port range for UDP media transport
#1687
Allow media type change during SDP negotiation
#1688
Add support for different To and Target URI in outgoing call and sending IM (thanks Johan Lantz for the suggestion)
#1696
IP change detection (Contact rewrite method) based on any REGISTER final response (e.g. 401)
#1721
Sending new re-INVITE after the on-progress re-INVITE transaction is terminated.

applications, python, unit-tests, third-party:

#1655
pjsua app using CLI framework
#1694
Python enhancement: added QoS and RTP settings in account config
#1701
Python enhancement: added received message into incoming call callback
#1708
PyGUI: New Python GUI Application based on pjsua2+SWIG API
#1716
New Android application based on pjsua2+SWIG API
#1728
Remove milenage library from linking setting (thanks Tzafrir Cohen for the patch)


List of Bugs

common:

#1630
Miscellaneous fixes
#1631
Miscellaneous fixes (backported to 1.x)
#1703
General bug fixes with analysis tools

pjlib, pjlib-util:

#1648
Timer heap new API pj_timer_heap_cancel_if_active() should not assert if given bad entry
#1663
Crash in socket registration in ioqueue
#1664
Ioqueue epoll stops processing socket events
#1672
Fail to replace UDP socket during iOS wakeup causing app to be killed when IPv6 is used simultaneously
#1686
Deadlock on DNS when cached query is available
#1709
Fixed scanner in processing escaped quote right after quote begin
#1710
Bug in resolver when updating cache entry

pjnath:

#1685
Crash in TURN session when DNS callback invoked after TURN session destroyed
#1691
Deadlock in NAT detect
#1695
ICE stream transport fails to send packet before ICE nego completes
#1700
Possible buffer overflow in ICE session
#1726
Assertion in ICE connectivity check (thanks Amit Chowdhary for the report)

pjmedia, pjmedia-audiodev:

#1656
BB10 audio device fixes (EC, hardcoded settings, etc)
#1659
SDP offer version number is not incremented if re-INVITE offer is rejected
#1674
Deadlock when third party media employs external lock and ICE is active
#1678
Proper error handling in WAV writer
#1732
Error setting audio output route in BlackBerry 10 (BB10) version 10.2.1

pjmedia-videodev:

#1676
Assertion when SDL initialization fails on library startup
#1729
Video devices may still be built even when video is disabled (thanks Tzafrir Cohen for the patch)

pjsip, pjsua-lib:

#1181
Incorrect SDP direction attribute in answering call unhold request after double holds
#1632
Remove Contact header in MESSAGE requests (thanks to Anil Giri for the report)
#1633
Crash if on_redirected() callback is not implemented and UAC receives 422 response (thanks to Romain Jezequel for the report)
#1637
Fixed crash in pjsua_media_channel_update() if one media gets rejected
#1640
Registration is terminated permanently on 480 (Temporarily Not Available) response when it should have been retried
#1641
Handling transport disconnection when the transaction state is still in null state
#1642
Media transport may not be cleaned up if call is hung up quickly
#1646
Deadlock and crash problem in transaction related to transport
#1647
Premature termination of REFER (call transfer) subscription
#1649
SIP TLS transport not destroyed after verification error
#1650
Close sound device when outgoing call fails
#1651
Incoming CANCEL request isn't reported in any callbacks
#1652
Media feature tag "+sip.ice" is not used because of wrong account initialization sequence
#1653
[incompatible] pjsua_call_update() API should not release hold
#1654
Possible broken SDP negotiator state after previous re-INVITE is rejected
#1660
Fail to generate contact when making call via UDP on WM6
#1662
Call slot unavailable after some fail calls due to codec mismatch
#1665
Assertion on retransmitting a pending message
#1666
Handle case when call unhold failed
#1669
Modified account proxy not applied in the reregistration
#1670
Configurable RTCP SDES/BYE in outgoing RTCP packets
#1671
Unfreed transmit buffer (pjsip_tx_data) upon stack shutdown/restart
#1683
Fixes for via_rewrite feature
#1684
Failed assertion when scheduling timer in the registration client
#1689
The bound address is not updated when UDP transport is restarted
#1690
Assertion in timer in SIP transaction: Timer being rescheduled when already running
#1693
Header lists are not updated in pjsua_acc_modify() and bug in pjsua_acc_get_config()
#1698
Follow account config in generating contact's secure scheme
#1706
Race condition fix in SIP transaction
#1712
Must not send BYE before ACK is received
#1714
Workaround for stuck in TCP/TLS shutdown when another thread is destroying the transport
#1717
Assertion in accessing conference from on_call_state() callback while pjsua destroy is on progress (thanks Johan Lantz for the report)
#1718
Delayed call disconnection state after receiving malformed 422 response (thanks Marcus Froeschl for the report)
#1722
Session timers refresher needs to send BYE if it never gets a response to the session refresh request
#1725
ACK is not sent upon receiving 200/OK retransmission if re-INVITE is sent
#1727
Issues in event subscription server timer (thanks Mark Michelson for the report)
#1731
Fix TCP/TLS transport leak problem
#1733
Fix polling mechanism during STUN server resolution
#1737
Deadlock between ioqueue key mutex and SIP dialog when adding video media with ICE and STUN enabled
#1738
Infinite loop when re-INVITE is received while adding new media

applications, python, unit-tests, third-party:

#1702
Warnings when building/linking the Python module due to different linker architecture

Note: See TracRoadmap for help on using the roadmap.