BLOG | DOCUMENTATION | TRAC

RELEASE NOTES

Version 0.5.7 2006/07/18


HIGHLIGHTS:

  • Improved stability and quality (meaning LOADS of bug fixes).
  • Tested against denial of service attacks.
  • Increased performance.
  • TCP support is getting more mature (it's still alpha quality though). 

 

DETAILS:

PJLIB:

  • Add the canonical error name into the error messages generated by pj_strerror().
  • Fixed bug: ioqueue should return error when send()/sendto() is called while previous operation on the same op_key has not finished.
  • Fixed bug in sockaddr_in: the sin_zero part of the sockaddr_in is not zeroed, causing SIP transport hash table to behave erraticly.
  • Fixed bug in ioqueue IOCP: accept() callback is called with new socket handle already reset to -1.
  • Fixed more bugs in ioqueue IOCP: (1) accept() does not return correct addresses, (2) handle error condition when accept() returns -1 as the new socket.
  • Added PJ_INT64() and PJ_UINT64() macro to construct 64bit constants in portable manner.
  • PJLIB will print the exception name when there is an unhandled exception.
  • Fixed bug in pool_caching.c that prevent pool from being reused if the capacity has changed when the pool is released.
  • Improve the search for correct size in caching pool.
  • Added feature to report peak memory used in caching pool.
  • Attempted to resurrect ioqueue epoll backend.

PJLIB-UTIL:

  • Fixed bug in scanner: pj_cis_match() takes int argument, so when ASCII char acter above 127 is given, it will access the array with negative index.
  • Fixed bug in scanner: pj_scan_get_newline() may incorrectly eat two newlines when the second newline is a header continuation.

PJMEDIA

  • Added memory/buffer based playback and capture port.
  • Fixed bug: RTCP statistic returning fraction lost instead of total lost
  • Fixed bug with pending RTP write operation in UDP media transport.
  • WAV port API was changed slightly (removed user_data from argument).
  • Changed default codec quality to 5 (from 10).
  • Fixed bug in RTCP: out-of-order status was raised when incoming sequence number is random.
  • Changed RTCP to only calculate jitter when the RTP timestamp of the packet is different than previous one (needed to calculate video jitter).
  • Changed RTP to randomize initial sequence number.
  • Support for RFC 3605 (RTCP attribute in SDP).
  • Fixed bug: RTCP session not fully cleared when it is initialized (should b zero everything), causing incorrect stats when it is reused for next call.
  • Configurable telephone-event payload type.
  • Split ulaw/alaw algorithm from g711.c to alaw_ulaw.c to break circular dependencies between g711 codec and silence detector.
  • Set the SDP parser to allow blank newline at the end of the message

PJSIP (Core, Ua, and SIMPLE)

  • Fixed bug in sip_transport_udp: socket is closed after unregistered from ioqueue.
  • Renamed pjsip_transport_unregister() to pjsip_transport_destroy().
  • Support for TCP transport (involves bug fixing in transaction etc.).
  • pjsip-test is back alive.
  • Removed mutex protection in pjsip_endpt_create_pool() since the pool factory is thread-safe.
  • Application may specify NULL address when creating the UDP transport, to allow the transport to choose arbitrary port.
  • Fixed bug in SIP UDP transport: receive data buffers were not freed when UDP transport is closed (when application quits).
  • Fixed bug in SIP transaction: transaction should verify that the method specified in CSeq header in the incoming request matches the method of the request (otherwise it will trigger assertion failure in dialog later).
  • Various performance improvements in PJSIP: (1) optimizing for common case to minimize stricmp() calls (header names, method, URI schemes), (2) added functionality in scanner to parse and unescape in-place, (3) etc..
  • Fix minor bug in displaying invalid message (previously the whole TCP packet was printed while it should only print the message chunk).
  • Added PJSIP_MAX_NET_EVENTS configuration to pjsip.
  • Fixed bugs with the parsing (re: allowable chars): (1) Parameters in URI and header should have different spec. URI should use paramchar spec while header should use token spec (thanks Jeroen van Bemmel) (2) The same rule applies when escaping the parameters during printing process (3) While we're on it, also fixed the tel-URI parser to automatically unescape the parameter values.

PJSUA-LIB, PJSUA, and samples etc.

  • Added dq command in pjsua to dump current call quality.
  • Fixed bug: 1st response time not initialized for UAS call in pjsua.
  • Fixed minor bug in the display of packet loss percentage.
  • Disconnect call when failed to start media when sending 200/OK response in pjsua.
  • Fixed assertion error in pjsua: it should not try to force terminate dialog after sending 500 response.
  • Fixed bug in PJSUA API re: account selection and Contact header for accounts.
  • PJSUA now responds to incoming OPTIONS request.
  • Added command in pjsua to send arbitrary request.
  • Added INVITE request verification in siprtp before incoming call is established.
  • Added pjsip-perf in the samples collection.
  • Added get-footprint.py script, source file, and makefile to calculate PJSIP/PJMEDIA footprint

 

Go to the Download page to get the version 0.5.7!