Difference between revisions of "ReSIProcate 1.2.1 Release"

From reSIProcate
Jump to: navigation, search
(Release page for resip 1.2.1)
 
(Replacing 1.2.1 release page with a link pointing to 1.2.2)
 
Line 1: Line 1:
 
{{TOCright}}
 
{{TOCright}}
= Getting the software =
 
  
== Download ==
+
This release has been removed. See the [[reSIProcate 1.2.2 Release]] instead.
 
 
* [https://www.resiprocate.org/files/pub/reSIProcate/releases Download Directory]
 
* [http://svn.resiprocate.org/rep/resiprocate/tags/resiprocate-1.2.1 Subversion Path]
 
 
 
== Subversion ==
 
 
 
This release is made from the <code>resiprocate-1.2.1</code> tag and can be checked out from the following SVN path:
 
::http://svn.resiprocate.org/rep/resiprocate/tags/resiprocate-1.2.1
 
 
 
For the ''standard'' subversion client you can fetch this with either:
 
::svn export http://svn.resiprocate.org/rep/resiprocate/tags/resiprocate-1.2.1
 
or
 
::svn checkout http://svn.resiprocate.org/rep/resiprocate/tags/resiprocate-1.2.1
 
 
 
= Release Notes v 1.2.1 =
 
 
 
==Build System==
 
===Bug fixes===
 
* Fixed a few build errors/warnings
 
* Disable cppunit doxygen build (in tfm)
 
 
 
==rutil==
 
===New features===
 
* host file lookup for A records
 
 
 
===Bug fixes===
 
* Fixed a bug in Timer under CE
 
* Better handling of dns return codes when network is not available
 
* fixed a bug in DnsUtil::getInterfaces() that occurs on 64Bit architectures, where no interface other than the local loopback is found, and therefore none is returned
 
 
 
==stack==
 
===Bug fixes===
 
* Fixed a sockets incompatibility with OS 10.5 (Leopard)
 
* Fixed bug where name-addr would be parsed as an "all-contacts" if the display name began with a '*' (ie, Contact: *bOb* <sip:bob@192.168.0.12:9645>)
 
* Fixed a bug where Contact header would have an incorrect transport param in the event of a DNS failover
 
* fix Uri:::getAor() for IPV6 hostnames
 
* fix for SdpContents::findFirstMatchingCodec - to ensure codec list is built before accessing
 
* fix a double-free bug in SipMessage::releaseContents()
 
* fix for a TLS client connection spin issue, when connection to endpoint can't be established
 
 
 
==DUM==
 
===New features===
 
* add ClientAuthExtension singleton to plug in authentication methods
 
 
 
===Bug fixes===
 
* handle cases where there is a missing Expires header in the 200 to a SUB
 
* fixed a couple of assert bugs
 
* added missing copy of mTransactionId in copy constructor of DumTimeout
 
* correctly handle some cases where application may call end() from a callback (in InviteSession)
 
* fixed a bug where ACK/200 was not being retransmitted correctly
 
 
 
==repro==
 
===Bug fixes===
 
* thread safety fixes to BerkeleyDb
 
 
 
= Release Notes v 1.2 =
 
 
 
==Build System==
 
===New features===
 
*Added support for arbitrary cross-compilation targets using the gnu toolchain
 
*Added VS 2005 build
 
*Updated XCode project files
 
 
 
===Bug fixes===
 
*Small FreeBSD fixes to build
 
*Fixed compatability issue with earlier versions of gperf
 
 
 
==rutil==
 
===New features===
 
*Added ability to configure log level on a per-component basis
 
*Logging improvements related to DNS code
 
*Allow DNS code to try DNS servers on different network when 'No such name' (reply-code of 3) is received
 
*Fixed compilation warning on FreeBSD in Socket.hxx related to FD_SETSIZE
 
*Recursive mutex support for OS X 10.2 or higher
 
*Improved logging of exceptions
 
 
 
===Bug fixes===
 
*Fixed crash bug in SysLogBuf
 
*Fix so SIOCGIFCONF works in Solaris
 
*Fixed a bug where we could switch versions of make(1) when recursing
 
*Fixed an assert bug in the DNS code caused by garbage in the host being looked up
 
 
 
==stack==
 
===New features===
 
*Added DNS Greylisting support (to contrast with DNS blacklisting)
 
*Added Uri::toString() method
 
*Add support for CN codec in SdpContents
 
*Added support for ext parameter
 
*Remote-Party-Id support
 
*Improved efficiency of handling TCP-based connections
 
*Send TransactionTerminated message when TU mistakenly CANCELs a client INVITE transaction that has not yet received a provisional
 
*ParseException is now the only exception type that is thrown due to parse errors.
 
*Better support for WWW-Authenticate in Helper::authenticateRequest() and Helper::authenticateRequestWithA1().
 
*Improved logging of exceptions
 
 
 
===Bug fixes===
 
*Fixed crash bug caused by receipt of an unreasonably large Content-Length in a connection-based transport
 
*Fixed crash bug associated with Transports that run their own process loop
 
*Fixed memory leaks caused by certain types of garbage in certain types of parameters
 
*Fixed a memory leak caused by requests with a garbage topmost Via
 
*Fixed a bug where INVITE responses would go back to the source port over UDP
 
*Fixed bug where qop-options was being tokenized incorrectly by the digest auth code
 
*Support URI entries in the x509v3 subjectAltName
 
*Fixed a bug where unknown headers that were a prefix of another unknown header would be classified as the same.
 
*Removed build warning in MsgHeaderScanner
 
 
 
==DUM==
 
===New features===
 
*Added UAC PRACK support
 
*Added asynchronous (message-passing) interface to the various subclasses of BaseUsage:
 
**ClientRegistration
 
**ClientSubscription
 
**ClientPagerMessage
 
**ClientPublication
 
**InviteSession
 
**ServerInviteSession
 
**ServerPagerMessage
 
*Allow mutex lock while in DUM's main process loop for thread safety
 
*Added MasterProfile::removeSupportedMimeType method
 
*Implemented Handle::operator<, allowing for use with set or map
 
*Changed signature of ImsAuthUri methods to accomodate a username that includes the domain
 
 
 
===Bug fixes===
 
*Fixed crash bug that could happen when a ClientSubscription re-establishes itself in a new Dialog after the other endpoint has crashed
 
*Fixed problem where ReferredBy was set to contact instead of aor - 2 cases
 
*Calling Dialog::end() will now end subscription usages
 
*Fixed bug where MergedRequestKey::mCheckRequestUri was not being initialized in c'tor
 
*Fixed bug where receiving a response other than an INVITE/487 after a CANCEL was sent would not result in an onTerminated() callback
 
*Fixed leak in InviteSession that could caused if remote endpoint got the CSeq wrong on an INVITE/200
 
*Fixed bug in ClientSubscription::removeBinding that would remove all bindings except the one passed
 
*Fixed totally broken well-formedness check in DUM's main process loop
 
*Fixed bug where InviteSession was not setting a timer on reINVITEs
 
*Fixed bug where InviteSession would fail to respond to requests received while it was waiting to terminate, causing TransactionState leaks
 
*Fixed memory leaks caused by ServerRegistration when a REGISTER request had a malformed Expires or Contact header
 
*Fixed assert bug caused by absence of a From-tag in a response from the wire
 
*Removing some unimplemented functions from DialogUsageManager.hxx
 
*Fixed an uninitialized member in Handle
 
 
 
==repro==
 
===New features===
 
*Added some help text to the web admin for AddRoute
 
*Added command line option to repro to allow parallel forking to all Targets collected from static routes
 
*Allow location of database files to be configured
 
*Allow disabling of auth-int
 
 
 
===Bug fixes===
 
*Added locking to repro Store classes that have a local cache for thread safety
 
*Order of Routes works now
 
*Fixed bug where no response was forwarded back on a NIT timeout (was also causing a memory leak)
 
*Fixed bug where responses to a proxied request with an RFC 2543 transaction identifier would not be forwarded back (also was causing a memory leak)
 
*Fixed memory leak caused when a response to a proxied request came back with a different Via stack (except the topmost Via)
 
*Fixed memory leak caused when a when a non-ACK request had the same transaction-id as a previous ACK/2xx
 
*Fixed a bug where receipt of an INVITE/2xx _after_ a CANCEL had arrived would force CANCELs to go out on all other legs, regardless of whether those legs had received a provisional response
 
*Fixed a bug where receipt of a provisional response would not prompt forwarding of a CANCEL if an INVITE/2xx had already been forwarded upstream
 
*Fixed bug where async Processor messages were not being routed to the correct Processor
 
*Fixed compilation issues with RouteStore
 
*Fixed bug where enabling q-value processing would cause static route targets to be processed after location service targets.
 
 
 
==tfm==
 
===New features===
 
*Better UPDATE support
 
*Better support for controlling option tags
 
*491 support
 
*rudimentary support for sending transaction garbage
 
*many transaction garbage test-cases
 
 
 
= Release Notes v 1.1 =
 
 
 
==General==
 
 
 
===New features===
 
*updated license blocks
 
*sipdial, a very simple dialer demo
 
 
 
==Build System==
 
===New features===
 
*shared library support for OS X
 
*location of db4 headers is now configurable (only matters when building repro/tfm)
 
*ares install path can now be configured
 
*added ability to specify a particular copy of OpenSSL to use
 
 
 
===Bug fixes===
 
*fixed shared library build on x86_64
 
*fixed install-paths for header files of stack and dum
 
*fixed spurious error messages when generating binaries
 
*made configure script work properly with stock sh
 
 
 
==rutil==
 
===New features===
 
*DNS resolver will now pay attention to host entries in the NetInfoManager (OS X)
 
*removed ATL dependencies (Windows)
 
*allow the tagging written by the logging system to be turned off
 
 
 
===Bug fixes===
 
*fixed bug where DNS resolver would assert when attempting to do a query with no network connectivity (on OS X)
 
 
 
==stack==
 
===New features===
 
*SIGCOMP (RFC 3320) support
 
*new non-INVITE transaction behavior with respect to 100 Trying (see RFC 4320)
 
*wrote LazyParser::isWellFormed() This allows exception-safe checking of whether header-field-values are well-formed or not
 
*changed handling of bad ACK/200 (ie, ACK/200 with same tid as original INVITE), previous code did not work reliably (a feature because this is an act of protocol repair)
 
*update to Identity test-case to reflect draft changes
 
*a much more thorough DNS resolver unit-test
 
*allow ServerAuthManager to be configured to challenge with 401 instead of 407
 
*added a base-class StatisticsHandler, allowing third-party code access to the statistics generated by the stack
 
*added ability to retrieve/set encodingParameters from rtpmap line for audio codecs this represents number of channels ie: a=rtpmap: 0 pcmu/8000/2  (where 2 is the encodingParameters)
 
*more readable logging of sip messages
 
*added support for AnswerMode and PrivAnswerMode headers
 
*allow codecs with no encoding parameters to be equal to a codec with an encoding parameter of "1" - ie. Note: for audio channels the encoding parameter represents the number of channels and the default is 1
 
 
 
===Bug fixes===
 
*fixed a bug where a TU sending multiple requests with the same tid (ie, ACK/200) could cause an assertion in the stack, if DNS resolution had not yet been completed
 
*fixed a bug that could corrupt a TransactionMap::iterator if the same tid was added multiple times. Also fixed another bug that was causing this bug to exhibit
 
*fixed a bug where malformed IPV6 addresses in sip uris or vias could cause the stack to assert
 
*fixed bug where lower-order bits of IPV6 addresses were chopped off (Windows)
 
*fixed a bug in SdpContents where a "u=" was not being encoded
 
*fixed bug where the TransportSelector would automatically fill in the wrong end of the Record-Route stack
 
*hardened the stack against garbage Referred-By and Record-Route headers
 
*stack now checks whether required header-field-values are not the empty-string
 
*fixed a bug that was causing CPU spin while establishing a TLS client connection
 
*major fixes to the RFC 3263 DNS logic
 
**DNS logic now pays attention to what transport types the stack supports when choosing targets (won't choose a TCP target if we don't have a TCP transport, for example)
 
**fixed an assert bug that could be triggered by the 3263 DNS logic if the stack was not running any UDP transports
 
**blacklists are now done on a Tuple+hostname basis, instead of a DNS-path basis.
 
**fixed a bug where failure in an A lookup could cause us to not pursue additional SRV records
 
**fixed a bug where NAPTRs were being selected incorrectly for sips uris
 
**blacklists actually have a duration that can be set now (ie, we pay attention to the value of Retry-After now)
 
**stack no longer breaks spec by blacklisting on 408, 500, 600, or 503 without Retry-After
 
*fixed openssl memory deallocation issue
 
*when sending responses, only use default port if no port is specified in either rport or elsewhere in topmost Via
 
*fixed a bug where non-standard settings to Uri encoding tables, if made _before_ initialization, would be lost when initialization occurred
 
*removed a default param in SipStack::addTransport that would cause an assertion if used
 
*compensated for a reentrancy issue with random() on SMP systems, when openssl wasn't built in, in Helper::computeCallId()
 
*disable DTLS test-case if USE_DTLS wasn't defined
 
*in SDP parsing, don't read TTL if connection address is IPV6
 
*in SDP parsing, fixes for ipv6 multicast ranges in connection line
 
* fix to medium::getConnections, so that it will not return session level connections, if a media level connections are present
 
*fixed escaping of headers embedded in SIP URIs
 
*fixed a compiler warning in SipStack.cxx
 
*fixed issue with truncation of blacklist durations
 
*fixed type of expires parameter (was a UInt32Parameter, is now a QuotedDataParameter)
 
*fixed bugs on Windows 2000 related to iphlpapi.dll and freaddrinfo
 
*fixed an issue in 400 message generated by TransactionState, so that proper reason text gets populated in message
 
 
 
==DUM==
 
===New features===
 
*allow configuration of whether the request-uri should be used in merged-request detection (B2BUAs and gateways need to do this)
 
*allow UPDATE to be used for a target refresh
 
*allow re-INVITES and UPDATEs to update the Peer P-Asserted-Identity
 
*added optional earlyFlag to ServerInviteSession provisional to allow caller to suppress addition of SDP answer to provisional body (after calling provideAnswer) if desired
 
 
 
===Bug fixes===
 
*fixed bug where reception of a REFER could cause a crash if no clientsubscriptionmanager is present
 
*fixed a bug where a bad in-dialog response (modified to-tag) would prompt a dialog creation, and cause a crash
 
*fixed various memory leaks caused by garbage from the wire
 
*only 2xx responses to the original request can effect the route-set
 
*fixed bug where sending a PUBLISH while a previous PUBLISH (for the same state) was pending would cause an empty PUBLISH to be sent
 
*do not create dialog state on a 180 response with no to-tag
 
*fixed two cases where the absence of an Expires header would be interpreted as an Expires of 0 (in ClientPublication)
 
*fix to make sure onSuccess is called after a timed retry on registration failure
 
*fixed a bug where mime type accessors in MasterProfile were using the subscript operator on the underlying map, potentially creating useless empty entries in the map that shouldn't be there
 
*ensure onSuccess callback is called after a successful registration following an onFailure or onRequestRetry (in ClientRegistration)
 
*added some missing states to isAccepted() (in InviteSession.cxx)
 
*fixed a bug where InviteSession would send BYE/481 if we _received_ a BYE while a BYE we _sent_ was pending. (Both sides send BYE, race-condition) Now sends a BYE/200
 
*ClientInviteSession can now handle BYE gracefully in any situation
 
*fixed an erroneous log statement for stray responses
 
*fixed some error logs in InviteSession related to bad state in provideOffer
 
*removed an assert in InviteSession::targetRefresh
 
*use consistent method for determining chalenge realm; fixes issue where challenge realm was hardcoded to requestUri host after stale nonce was received
 
*fix to make sure initial publish (no sip-if-match) arriving without a body generates a 400
 
 
 
==repro==
 
===New features===
 
*lots of hardening against garbage in sip messages (fixed a lot of leaks that could be triggered by bad sip requests)
 
*Changed the handling of ACKs completely; they no longer follow the same code path as other requests (nothing will cause us to perform location service of any kind on an ACK now)
 
*stopped using the cid Uri-parameter hack for telling the stack what connection to send a request on (no more "cid=" in the request Uri; "cid=" may appear in Route-type headers however)
 
*updated .vcproj (Windows)
 
*modified getConfig calls to avoid copies
 
 
 
===Bug fixes===
 
*if certServer is enabled, only PUBLISH and SUBSCRIBE with certificate or credential event types will be passed to dum
 
*fixed a bug where a Record-Route could be inserted with a scheme that did not match the scheme of topmost Route header, if present
 
*improved the code that determines whether we are responsible for a given Request-Uri (could run into problems while running on a non-standard port)
 
*retransmissions of ACK/200 all use the same tid now, also only a single Ack200Done message will be posted now
 
*fixed repro problem where cert server defaults to on, and cannot be disabled
 
*fixed an issue where repro would reject registrations that contain unknown Accept header values, if the cert server was enabled and MasterProfile validateAccept was enabled.
 
*fixed an issue with port checking code when running repro on a non-standard port (not 5060), and reaching it either via DNS SRV resolution or a UA outbound proxy setting
 
*UserStore - corrected naming domain->realm
 
*ConfigStore - added cache of DB
 
*UserAuthGrabber - corrected issue comparing domain to realm
 
*repro project - added missing header files
 
 
 
==tfm==
 
===New features===
 
*ipv6 support
 
*support for testing PRACK
 
*added the ability to test receiving a SUBSCRIBE as the FIRST message in response to an INVITE request. i.e. the SUBSCRIBE creates the dialog as opposed to 1xx or 2xx response
 
 
 
===Bug fixes===
 
 
 
= Release Notes v 1.0.3 =
 
 
 
*fixed a bug where malformed IPV6 addresses in sip uris or vias could cause the stack to assert
 
 
 
= Release Notes v 1.0.2 =
 
 
 
* Fixed a bug in the SRV load-leveling logic that could cause the stack to crash.
 
* Fixed race-conditions in DUM that could cause a crash if a client reused transaction ids rapidly.
 
 
 
= Release Notes v 1.0.1 =
 
 
 
* Fixed a bug that would cause the stack to crash if it received a request with a single empty Via header.
 
 
 
= Release Notes v 1.0 =
 
 
 
== General Changes ==
 
=== Overall project changes ===
 
 
 
* The resiprocate/os directory has been broken into two separate directories: rutil, and resip/stack.
 
* DUM now lives in resip/dum. repro no longer resides within the resiprocate directory.
 
** rutil consists of non-sip specific utility classes.
 
** resip/stack consists of everything else that used to reside in resiprocate/os.
 
== Build System==
 
=== New Features ===
 
* interactive configure script
 
* implemented RESIP_FIXED_POINT compilation flag
 
* added a PEDANTIC_STACK build flag that causes the stack to fully parse all incoming messages, and 400 if it finds garbage.
 
* added support for stdext::hash_map for Visual Studio .NET 2003 builds
 
* build system now handles absence of gperf gracefully
 
 
 
=== Bug fixes ===
 
* changes so that build with openSSL 0.98 works
 
* VS.NET project files - changed all C-Runtime libraries to use Multithreaded DLL - consistent with sipX projects
 
* various OS X build fixes
 
* fixed clean and distclean build system targets
 
* header files are no longer installed with mode 755 (is 644 now)
 
* ares is now installed (using shared libraries required its presence)
 
 
 
== rutil ==
 
=== New features ===
 
* synchronous A-record lookup in DnsUtil
 
* added Data::replace
 
 
 
=== Bug fixes ===
 
* fixed initialization of OpenSSL
 
* use SO_REUSEADDR for windows sockets
 
* fix to remove race condition in AbstractFifo::getNext(int ms)
 
* many openSSL memory leak fixes
 
* Fixed Data::hash for non-plaintext.
 
* Fixed a memory corruption bug in oDataStream.
 
* fixes to Data::find
 
* fixes to conversion methods in Data
 
* fixed static initialization bug in Log.cxx where we were exhausting pthread_keys
 
* fixed a memory leak in DnsStub
 
* removed a dependency on resip/stack (moved SelectInterruptor to resip/stack)
 
* OpenSSLInit no longer writes stuff to std::cerr (bypassing the logging system)
 
 
 
== Stack ==
 
=== New Features ===
 
* allow StatisticsManager to be disabled at runtime
 
* added a MasterProfile setting (allowBadRegistrationsEnabled) to allow DUM to accept Registrations that have a To: tag
 
* added getTlsPeerName method to SipMessage
 
* added clearDnsCache to SipStack (thread safe)
 
* added logDnsCache to SipStack (thread safe) - outputs DNS Cache to WarningLog for debugging
 
* modified TLS client domain name check to look through all possible peer names
 
* support for namespaces in pidf documents
 
* STUN client support (in UdpTransport class)
 
* Added capability for adding a MessageDecorator through a dum profile
 
* s/mime encryption for SDP and IM
 
* lots of new documentation
 
* added Identity strength accessor to SecurityAttributes
 
* runtime detection of ares/resip USE_IPV6 mismatch
 
* ENUM support
 
* support for privacy as per rfc3325
 
* support for service-route (IMS)
 
* added a mechanism to register for a callback just before a SipMessage is sent on the wire
 
 
 
=== Bug fixes ===
 
* fixed initialization of array that determines whether headers should be comma encoded
 
* fixed many transactionstate memory leaks
 
* fix to SdpContents for duplicate fmtp attributes
 
* fix submitted by Justin Matthews for potential invalid pointer access of mDnsResult
 
* remove trailing spaces from non-quoted display name (NameAddr)
 
* fix memory leak of SecurityAttributes
 
* SdpContents: fixed bug in Session::Time operator=
 
* some time_t use fixes so that we compatible with VS.NET 2005's default definition of time_t - which is a 64-bit integer
 
* fixed UInt64 conversion for nonce stuff - digest auth was failing
 
* fixed many transport memory leaks - the biggest one is with receiving CRLF keep alives on UDP transports
 
* made domain name cert check for Client SSL connection non-case sensitive
 
* fix for computeTag to use passed in size
 
* fix for CSeqCategory and RAckCategory to use unsigned integers for sequence numbers
 
* fix for Tuple IPV6 hash on linux platforms
 
* changed ExpiresCategory.cxx to be an UInt32 so that Expires parameter can handle up to 2^32-1 as in RFC
 
* Fixed a few assert/memory leak bugs in TransactionState caused by method mismatches between Request Line and CSeq.
 
* Fixed numerous memory leaks in TransactionState that couold be caused by certain malformed headers.
 
* TransactionState no longer 503s ACK when overloaded
 
* Major fixes to connection management in the stack (including memory corruption bugs)
 
* Fixed issue where we were sending TLS over the wrong IP version when we had TLS transports on both versions open.
 
* Fixed many integral-value overflow bugs.
 
* Fixed a few other parser bugs (for q-value, senthost in Via, branch parameter in Via)
 
* implemented auto_ptr version of SipStack::send() and SipStack::sendTo()
 
* implemented auto_ptr based SipStack::post() and postMs()
 
* Fixed handling of stray CANCELs
 
* made codec comparison case insensitive (findFirstMatchingCodec function)
 
* modified stunTest to use nonblocking socket and selectable timeout
 
* Added some missing closesocket calls to the rutil\STUN functions (note that stun has since been moved to resip/stack)
 
* removed the static "done" check in Security::Initialize(), it caused a bug when the object was instantiated a second time
 
* Corrected the Codec constructor for telephone-event and frf-dialed-event constants. A payload type of 8000 was used. (Not wrong but usually 101 is used. 8000 rather is the bandwidth)
 
* Added two more codec constants. (G723 and GSM)
 
* removed the bogus sleep stuff from stunSendTest
 
* fixed parse bug in Phone::parse
 
* fixed a bad free in Security
 
* fixed SipFrag memory corruption issue
 
* fixed nonce generation
 
* fixed a memory leak in Security
 
* fixed array overflow bug in SecurityAttributes
 
* fixed a per-key/cert leak in Security
 
* fixed a memory leak caused by malformed Content-Length over a stream-based transport (TCP or TLS)
 
* support for short version of event (o)
 
 
 
== DUM ==
 
=== New Features ===
 
* allow Initial invite without an offer (dum)
 
* added support for sending and receiving MESSAGE requests in an Invite Session
 
* added support for re-invite with no offer
 
* allow contents to be sent in acceptNit (InviteSession)
 
* added onConnectedConfirmed callback for ACK (without answer) on initial invite
 
* add rinstance parameter to registration contacts so that we can tell which contacts from the 200 response are ours (dum)
 
* added profile reset method (dum)
 
* added ability to get peer capabilities from InviteSession
 
* added store of all peer names presented in a certificate's subjectAltName list
 
** if no subjectAltName, then commonName is used
 
* implemented command pattern/target based feature handling in dum
 
* support for Allowed-Events header in DUM
 
* added new signature for makeInviteSessionFromRefer - that allows specifying the User Profile to use. (this is required when creating an Invite Session from a refer with no-subscription)
 
 
 
 
 
=== Bug fixes ===
 
* fix for shutdown assertions if outstanding invite sessions
 
* fix for receiving stray dialog/dialogset matching messages during delayed destruction
 
* fix for ending() a registration while in the process of retrying
 
* ensure all 4xx responses to invites are handled correctly in dum
 
* fix for dialogset destruction bug - cleaned up redirect logic used to destroy dialog, but keep dialogset around
 
* change ClientSubscription.cxx and ServerSubscription.cxx to send all messages via the Dialog::send interface, instead of the DialogUsageManager::send interface.  This allows requests to be tracked by the Dialog - so that it can correctly respond to Digest challenges.
 
* fixes to dum states for initiating a BYE while waiting for an ACK
 
* dum fix for setting correct reason text for NIT responses
 
* many misc. fixes to InviteSession state machine
 
* ServerPublication: fix for uninitialized mExpires in onInitial callback
 
* fix for early SDP in provisional's (dum)
 
* allow additional provisionals in EarlyProvidedAnswer state (dum)
 
* ServerAuthManager - do not challenge ACKS or CANCELs
 
* make subscription state checks non-case sensitive
 
* corrected some missing sets of mProposedRemoteSdp
 
* fixed Glare state handling in dispatchGlare
 
* fixed mProposedLocalSdp memory leaks auto_ptr::release change to auto_ptr::reset
 
* fix for getLocalSdp and getRemoteSdp if values are not yet set
 
* 2xx retransmission is now detected and handled properly - no more incorrect handler callbacks (dum)
 
* fix issue with receiving 2xx retrans when dialog is destroying - reported by Justin Matthews
 
* fixed MessageWaitingContents encoder attributes
 
* be resilient to implementations that send sdp in 200/Update event though we didn't send an offer (ie. Cisco 7960)
 
* InviteSession: separate mLastSessionRefresh into mLastLocalSessionRefresh and mLastRemoteSessionRefresh fixes bug where remote message headers could get used in outbound requests
 
* fix for calling end on a client SUBSCRIBE (or PUBLISH) dialog before any response is received
 
* ClientRegistration - use Expires header if no Contacts are present
 
* modified dum so that expiration values use UInt32 instead of int for storage
 
* fixed initialization of AppDialogSet::mIsReUsed
 
* ServerAuthManager no longer challenges ACK
 
* InviteSession now handles re-invites with late offer
 
* fixed bug where DUM was ignoring Expires in SUBSCRIBE/2xx
 
* fixed uninitialized SharedPtr in DialogSet
 
 
 
== Repro ==
 
=== New features ===
 
* Framework for better control of forking in repro.
 
* Many improvements to Processor architecture in repro (with respect to asynchronous work), with helper classes for easily setting up thread-banks for async tasks.
 
* Support for Q-Value based forking in repro.
 
* Implemented Timer C in repro.
 
* added recursive redirect support to repro
 
* support for ACL in repro
 
* rpm build for repro
 
 
 
=== Bug fixes ===
 
* Fixed an assert bug in repro's WebAdmin that would allow an unprivileged user to cause an assert.
 
* repro no longer will forward 503s
 
* fixed a stl::vector<>::front call to a (potentially) empty container
 
* repro no longer challenges ACK or BYE
 
* fixed numerous memory leaks in repro
 
* major assert sweep of repro
 
 
 
 
 
== TFM ==
 
 
 
* a functor-driven test-framework, and lots of test-cases for repro.
 

Latest revision as of 16:23, 3 December 2007

This release has been removed. See the reSIProcate 1.2.2 Release instead.