Milestone release-1.0-rc1

Completed 16 years ago (Aug 28, 2008 9:42:31 PM)

100%

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

applications

5 / 5

common

2 / 2

pjlib

10 / 10

pjlib-util

1 / 1

pjmedia

16 / 16

pjnath

3 / 3

pjsip

12 / 12

pjsua-lib

8 / 8

Version 1.0-rc1

Release Focus

This release pushes all enhancements to the trunk before it is frozen into a stable release. From now on and until version 1.0 is released, there will be no enhancements to be made to the trunk, and the development will focus on stabilizing the libraries.



Selected Features

New Python Wrapper

A new and better Python abstraction for PJSUA-LIB has been implemented. Please see the new Python SIP tutorial on how to use Python with PJSIP.

Memory Usage Verification

We have verified the memory usage and fixed many bugs related to memory leaks and handle leaks. Please see the ticket list below for the details.

New Codecs

This release provides integration/codec wrappers for Intel® Integrated Performance Primitive (IPP) speech codecs, and support for the following codecs will be added:

  • G.729
  • G.723.1
  • G.726 (16, 24, 32, and 40 Kbps)
  • G.728 (16 Kbps)
  • G.722.1 (16, 24, and 32 Kbps)
  • AMR (narrowband, 12.2Kbps) (experimental)

Please see Using Intel® Integrated Performance Primitive (IPP) with PJMEDIA on how to use this feature.

Improvements in Echo Cancellation

There have been major reworks in the echo canceller (AEC) framework, and it has been tested quite extensively for this release. The echo suppressor has been completely rewritten and it should work much much better than the older version, and the processing requirements have been verified to be suitable for mobile devices (PDA's and smart phones). The echo cancellation framework now supports multichannels.

Support for Nokia's Audio Proxy Server (APS)

This release adds support for APS, for better audio latency. Please see Using Audio Proxy Server (APS) in PJSIP on how to use this feature.

Other Improvements in Audio Quality

This release also provides improvements to the audio quality, with the implementation of a new silence detector (ticket #490), multichannel resampling (ticket #596), and other works to generally improve the audio quality.

Presence Authorization

A callback to authorize incoming presence subscription/SUBSCRIBE requests has been added. This and other enhancements to presence management has been implemented in ticket #192.

STUN and TURN Update

The STUN and TURN implementation in PJNATH have been updated to the latest draft (ticket #598)



API Changes

Possible API compatibility problems:

PJNATH:

  • Updated STUN and TURN to the latest specs, some attributes were removed (e.g. BANDWIDTH) or renamed (e.g. RELAY-ADDRESS --> RELAYED-ADDRESS) or syntactically changed (e.g. REQUESTED-PROPS).
  • Added parsed_len argument to pj_turn_session_on_rx_pkt()

PJSUA-LIB:

  • Added account ID to on_pager2() callback
  • Added account ID to on_pager_status2() callback



List of Enhancements

common

No results

pjlib

#571
Coloring for logs in Linux/UNIX, two more spaces in logs and runtime log colors configuration (thanks Ondrej Sterbak for the patch)

pjlib-util

#560
Optimize the memory usage of DNS resolver

pjnath

#598
Update to draft-ietf-behave-rfc3489bis-18 and draft-ietf-behave-turn-09

pjmedia

#490
New voice activity detection (VAD)
#577
Implement sound device wrapper using APS (Audio Proxy Server) for S60
#583
Support for Intel Integrated Performace Primitives (IPP) codecs
#588
Improvements to echo cancellation framework
#590
Improve the echo suppressor
#599
Codec framework enhancement: Interaction with SDP
#602
Modify the stream to maintain RTP sequence number and timestamp from the last transmission when it's restarted.

pjsip

#551
Generic URI scheme handler (thanks Juri Glaß)
#552
Added TLS server name extension to support connecting to multi-hosted SIP TLS server (thanks Klaus Darilion for the suggestion)
#554
Automatically detect the realm for authenticating against IMS servers, so that application/user doesn't have to fill in the realm value beforehand, to simplify provisioning (thanks Philippe Leuba for the suggestion)

pjsua-lib

#192
Add callback to notify application about incoming SUBSCRIBE request, and add subscription state and termination reason in buddy info
#555
Small but otherwise incompatible changes to PJSUA instant messaging callbacks
#556
New object oriented Python abstraction for pjsua API
#576
Added user data in pjsua account and buddy

applications

#564
Reduce the memory usage for default pjsip settings
#594
Improvements in PocketPJ Windows Mobile application



List of Bugs

common

#581
Fixed build dependencies in the makefiles

pjlib

#529
Memory leak on Symbian and possibly handle leaks on all platforms when application exits while transactions have not been terminated
#565
Call WSACleanup() when pj_shutdown() is called on Windows
#575
Unregistering from Windows IOCompletionPort (IOCP) ioqueue does not close the socket handle (thanks Gang Liu for the report)
#595
Broken semaphore implementation on MacOS X (thanks Viktor Krikun for the report)
#601
Bug with TCP server socket in IOCP ioqueue and active socket causes the ioqueue to stop accepting incoming TCP connections or 100% CPU usage
#603
Crash in ICE with IoCompletionPort ioqueue with the test framework
#604
Error opening file in append mode in Win32 (thanks Gang Liu for the report)

pjlib-util

No results

pjnath

#567
Rare race condition causing crash in ICE stream transport when STUN Binding resolution callback is called before initialization completes
#591
Assertion failure in ICE session (thanks Pedro Gonçalves for the report)

pjmedia

#557
Memory leak in Speex echo canceller
#558
Memory leak in SRTP
#569
Non-uniform locking order between SRTP & its member transport (e.g:ICE) may cause deadlock
#570
Out of array/buffer boundary access in WSOLA
#578
Bug in encoding ICE candidate type in SDP (thanks Ondrej Sterbak for the report)
#593
RTP timestamp incremented incorrectly for multichannel audio.
#596
Multi-channel capability for the resampling algorithm (thanks Bill Gardner for the patch)
#600
Reinvite/update call when SRTP enabled may cause one way media.

pjsip

#538
Closed TCP connection should be removed from the hash table immediately
#553
PUBLISH callback is not called when authentication fails (thanks Ruud Klaver for the report)
#573
Handle receiving short version of Event header ("o")
#579
Data loss with TCP sockets (thanks Helmut Wolf for the report)
#580
Incoming target refresh request does not update the Contact header (thanks Joel Dodson for the report)
#585
Handle non-SIP URI in Contact header of incoming INVITE and SUBSCRIBE requests
#592
URI comparison may crash the application (thanks Pedro Gonçalves for the report)

pjsua-lib

#518
Growing memory usage in PJSUA-LIB
#563
Bug with SDP in offer/answer related to call hold scenario
#566
TURN session in PJSUA-LIB is not properly destroyed causing possible memory and handle leaks
#582
Presence extended status is not sent in initial NOTIFY request (thanks Joseph Maiquez for the report)

applications

#568
The hash table ignores the last row of the table in hash table iteration, causing some memory leaks during shutdown routine because some objects are not destroyed



Minor Changes

Minor Enhancements

#463
Configuration option to have external sound device implementation
#572
New PJSIP pjsip_msg_find_hdr_by_names() API to find SIP header by either header name or the short header name
#574
Add new API to know why the outgoing subscription request is terminated
#586
Added ICE negotiation tests to test the scenario when two agents have different number of components

Minor Bug Fixes

#559
Update the pool alternative API (pool_alt.h) with the latest pool API
#561
select() ioqueue default concurrency setting is not initialized with the default value
#562
In TURN client sample application, when STUN server is specified, contact the STUN server on default STUN port rather than the TURN port

Note: See TracRoadmap for help on using the roadmap.