PJSIP version 0.8.0
Released on 2007-11-11T14:59:58Z
New Features## PRACK and UPDATE #prack-update
PRACK (ticket #385) and UPDATE (ticket #5) have been implemented on this release, including all the quirks with the management of SDP offer and answer session when these SIP methods are involved.
Symbian #symbian
Symbian support is getting more matured, with the implementation of Symbian sound device abstraction (ticket #2) and support for building the libraries as Dynamic Shared Object (DSO) files, which are needed for building developing for S60 3rd Edition using Code Warrior (ticket #354).
Updated STUN, TURN, and ICE #stun
STUN, TURN, and ICE have been updated to the latest specification (ticket #374, #382). Many bugs have also been fixed.
Custom SIP Presence Status Text #rpid
While previously PJSIP only supports basic online/offline status, now PJSIP supports specifying and receiving custom presence status text by implementing subset of RPID (ticket #336)
More robust NAT handling #nat
For SIP, keep-alive mechanism has been implemented for UDP transport at PJSUA-LIB level (ticket #407), and both TCP and TLS transports at the transport level (ticket #95). Because of these the default registration interval is now extended to 5 minutes. The client registration session will also keep the transport open until it is destroyed, so that server can send SIP requests using this transport (mandatory for TLS, and could be useful for TCP) (ticket #390).
For SIP UDP transport, pjsua-lib by default (pjsua_acc_config.auto_update_nat
setting) will monitor the STUN mapped address as reported by registrar. When it detects that the mapped SIP transport address has changed, it will unregister previous Contact, create a new Contact based on the new transport address, and restart the registration. This would happen automatically without application assistance (ticket #381).
For media, ICE transport will automatically change its transport address based on the address returned in the STUN keep-alive packets (ticket #372). Also pjsua-lib will now reports to application via a callback when ICE negotiation has failed (ticket #370).
More Robust SIP authentication #sip-auth
PJSIP now supports responding to authentication challenge for any realms, by specifying wildcard ("*") as the realm in the credential (ticket #231). Although some have commented about security implications of this, a lot of people will find this feature to be very useful.
Basic support for 3GPP/IMS #akav1-md5
Ticket #396 adds support for 3GPP/IMS digest AKA authentication (AKAv1-MD5 and AKAv2-MD5). Ticket #400 adds support for Service-Route
header processing.
Much improved audio latency on Windows #latency
Audio latency on Windows (Win32) has been improved by several hundreds milliseconds. This should make the echo cancellation (AEC) works better too, so default EC tail length has been decreased from 800 ms to 200 ms.
Ticket #393 changed basic audio frame time, from 20 ms (hard coded as PTIME
macro in pjsua_media.c
) to 10 ms, and make this configurable. Default PortAudio sound driver backend was also made configurable, with the default is WMME (ticket #384). The default number of sound buffers (PJMEDIA_SOUND_BUFFER_COUNT
) has been reduced from 16 to 6 (ticket #394). WMME audio latency buffering in PortAudio is now limited by 100 ms by default (ticket #395).
For more information, please see [Audio latency question] in wiki:FAQ PJSIP FAQ.
Enhancements DetailsEnhancements that have been or will be applied on this release:
common
For more details about the ticket list, please see Release Notes