ReSIProcate 1.6 Release

From reSIProcate
Jump to: navigation, search

Getting the software

Download

Subversion

This release is made from the resiprocate-1.6 tag and can be checked out from the following SVN path:

http://svn.resiprocate.org/rep/resiprocate/tags/resiprocate-1.6

For the standard subversion client you can fetch this with either:

svn export http://svn.resiprocate.org/rep/resiprocate/tags/resiprocate-1.6

or

svn checkout http://svn.resiprocate.org/rep/resiprocate/tags/resiprocate-1.6


Release Notes v 1.6

General

New features

  • new clicktocall project
  • new ichat to SIP gateway project
  • adding Tarasenko Volodymyr's autotools macro for use in external projects

Build system

New features

  • auto-detect c-ares headers/libs, both for in-place builds, and installed headers
  • added VS2010 project files

Bug fixes

  • added missing LEAK_CHECK defines to windows DEBUG builds of dum, resiprocate and rutil
  • if popt is in a default location, don't include it with -I and -L
  • added missing AresCompat.hxx (in rutil VS 9.0 project file)

rutil

New features

  • added ParseBuffer::skipBackToOneOf()
  • added ability to createLocalLogger instances, and assign these instances to threads (Thanks to Alexander Chemeris)

Bug fixes

  • remove spurious boost include
  • override std::exception::what() in BaseException, so we actually get a usable error if we don't catch one
  • stop asserting if we get an empty DNS response, and implemented handling code for this case

stack

New features

  • define Remote-Party-Id header as a multi header
  • change from Gregor Jasny to be tolerant of rtpmap lines missing the rate parameter
  • new generic DigestStream class for any openSSL digest
  • change to allow XMLCursor to parse an XML document with no prolog
  • change to SDP parser to be tolerant of whitespace following the codec id on the m line
  • added Uri::getAorNoReally() which actually returns the AoR as defined by RFC 3261
  • send 503 to TU instead of 408 if DNS times out
  • better reason phrases when timeouts occur
  • changes to resip stack to allow passing a port of 0 into addTransport interface to allow OS to choose an appropriate port number

Bug fixes

  • some fixes to the sigcomp code
  • fixing a few params to be quoted-string instead of non-quoted data (vendor, model, and version)
  • don't call encode twice on bodies (major inefficiency, but didn't really result in bad behavior)
  • replace a couple of static objects with member objects, so we don't have problems with multiple SipStacks in the same process
  • close connected-UDP sockets (used by TransportSelector to query the routing table when we haven't explicitly specified what interface we want to use when sending) on teardown; allows a single process to create and destroy SipStacks repeatedly without leaking fds (mainly for unit-tests)
  • stop sitting around on our thumbs for 200ms when DNS processing needs to be done
  • removed incorrect Q value compare fn in Uri class - q-value is a contact/name-addr parameter, not a uri parameter
  • fix issue with logging errno after SSL_ERROR_SYSCALL in TlsConnection
  • moved various fn local static variables to file level static variables to avoid multi-threaded first call runtime race conditions with initializing local static variables

DUM

New features

  • patch from Chris Brody so that the tests will build if not using POPT
  • added "invariant" reason code from 3265bis00 (for subscriptions)
  • change optional RWMutex parameter to Lockable base type in dum::process to allow other types of Mutex's to be passed in

Bug fixes

  • fix bug where wrong terminated reason is sent in callback when receiving a CANCEL
  • ClientInviteSession changes to react appropriately to reception of UPDATE messages before connected state
  • always allow reject to be called after onOffer - adding case where offer comes in 2xx response after invite with no sdp - ACK 200, then BYE session
  • fix to UAC handling to be able to handle sending ACK then BYE when a CANCEL request crosses a 200/Inv. This fix handles the case when we don't have any formed dialogs at the time of cancel
  • fixed bug where DialogSet::ifMatch() would not work for resubscribes
  • don't tear down server subscriptions when the app sends an error response that implies either an optional retry-after, or implies application-dependent behavior
  • fixed RedirectManager Q-Value ordering function - it was looking for q-value as a uri parameter - also changed to treat no q-value as q=1.0
  • ensure auth headers are cleared out before retrying client registration
  • fixing a bug with Glare timers if we placed the call (UAC) - they were not being properly dispatched to InviteSession
  • use supported mimetype for subscriptions in NOTIFY messages instead of SUBSCRIBE messages
  • stop using UPDATE for confirmed dialogs, since it is recommended against in RFC 3311
  • fixed a bug in client subscription if AppDialogSet's are used, and a retry is attempted
  • fixed a ClientSubscription bug when retrying - not reusing profile used in original subscription setup
  • fixed a difficult to find, and long standing memory leak bug in ClientSubscriptions
  • added handling to ClientRegistration for strange border case where registrar returns an Expires header of 0 after attempting to register

repro

New features

  • some logging improvements
  • better description of defaults for command-line options
  • modification to repro so that contacts without a q-value are treated as having q=1.0
  • changes to repro to allow Registration, and Publish/Subscribe forwarding to other domains

Bug fixes

  • actual Proxy-Require support (yeah, yeah, about time, I know)
  • reject requests with a garbage next-hop Route header immediately, instead of having the stack complain when we try to forward
  • various bugfixes related to outbound
  • ignore user-part of topmost Route header if it doesn't parse as a flow-token

reTurn

New features

  • pad the content of the SOFTWARE header so that we are on a 4 byte boundary for size (prevents STUN messages from reTurn showing up in Wireshark as malformed packets)

Bug fixes

  • fix a couple of spots where we try to erase from mActiveRequestMap using an invalidated iterator
  • fixed a bug in processTurnAllocateRequest that led to reTurnServer giving "unauthorized" errors

recon

Bug fixes

  • recon memory leak fixes - thanks to Julio Cabezas
  • update to recon VS2008/2005/2003 solution files for sipXtapi rev 11413 with speex update
  • allow recon to properly reject media lines with unknown media types and protocols
  • fixup sdp direction attribute in our offers in scenarios where we are being held by the other party
  • fix UserProfile selection when receiving refer with no subscription
  • make sure our ReferTo header doesn't have tags in it