Release Notes for 0.9.0

From reSIProcate
Jump to navigation Jump to search

Resiprocate 0.9.0 Release Notes[edit]

2005-07-06 RjS <at> (editor)
2006-07-11 alan.resiprocate <at> (wiki editor)
Summary of changes between the 0.4.0 release and the 0.9.0 release

Changes/ Deprecated Things[edit]

  • Renamed h_CallId to h_CallID
  • TuIM and Dialog (renamed to DeprecatedDialog) are deprecated
  • Removed all references to Preparser
  • Removed many unused files
  • Reorganized ParserCategories into seperate files for each ParserCategory
  • Renamed Log::CERR to Log::Cerr (similar for DEBUG->Debug, etc)
  • Removed Executive
  • Changed the branch parameter encoding (fixed many bugs)
  • Used HashMap instead of map in many places
  • Used vector instead of list in many places
  • Used vector instead of map in many places
  • Fifo changed to use deque instead of list
  • Complete reimplementation (and refactoring) of Security
  • Changed use of windows Mutex to CriticalSection for efficiency
  • Added IpVersion enum to transports replacing a bool for v4/v6
  • Increased bits in transaction-id from 31 to 64

New Things[edit]

  • Created a StackThread to run SipStack in its own thread
  • Added DUM
  • Added DTLS Transport
  • Added support for draft-sip-identity
  • Added auth-int support
  • Added Transport abstraction to allow plugging in external transports which may share the process/select/buildfdset of the SipStack or directly insert into the TuFifo
  • Added abstract connection class to facilitate working with external streaming transports
  • Added a StackLog logging level
  • Added Windows memory leak detection mechanism
  • Implemented a TuSelector to allow more than one TU to reside above a single instance of a SipStack
  • Added ExternalLogger to permit custom logging
  • Added Statistics Collection for SIP Messaging (StatisticsManager)
  • Added a pluggable DNS interface
  • Generalized Data's sharing to {Share, Borrow, Take} (read/write overlay)
  • Added URL encoding/decoding to Data
  • Added helper methods to perform DIGEST with A1 instead of password
  • Added helper methods to build responses on a provided SipMessage object instead of having the helper build a new one on the heap
  • Improved backpressure support at the transaction layer (503 if too busy)
  • Added TimeLimitFifo to aid with backpressure
  • Added a pluggable keep-alive manager (focusing on NAT issues)
  • Allowed for non-busy, non-blocking wait handshakes with TLS
  • Included hostname in Call-ID
  • Added CNAME support to DNS resolution
  • Added v6 support to DNS resolution (both using DNS over v6 and supporting AAAA records
  • Added v6 ntop and pton support
  • Created an application accessible timer queue
  • Added SipStack::postMS interface to allow application messages to be posted with subsecond timing requirements
  • Added project files for 7.0, 7.1, 8.0
  • Tweaked things to allow compilation with gcc 3.4 and 4.0
  • Added support for google-perftools and google-malloc
  • Added a merge interface to Pidf
  • Added support for message/external-body
  • Added several test programs (particularly around security objects)
  • Added Headers:
Accept-Contact ContentId Identity Identity-Info Join
Min-SE P-Asserted-Identity P-Associated-URI P-Called-Party-ID P-Media-Authorization
P-Preferred-Identity Path Privacy RAck Reason
Refer-To Referred-By Reject-Contact Request-Disposition RSeq
Service-Route Session-Expires SIP-ETag SIP-IfMatch Target-Dialog
r - Compact form of Refer-To b - Compact form of Referred-By
  • Added parameters:
+sip.instance actor app-id application control
description document early-only effective-by events
extensions gruu isfocus language methods
model network-user priority profile-type refresher
schemes text type url vendor
version video

Fixed Things[edit]

  • Fixed several memory leaks (TransactionState, SdpContents, others)
  • Fixed retransmit timers
  • Fixed several flaws in XMLCursor (simple xml parser)
  • Fixed mismatched cancel problem with 481 in TransactionState
  • Improved graceful shutdown logic in transaction layer
  • Generalized TimerQueue code
  • Fixed IPv6 handling errors througout code - tested IPv6 at SIPIts (both windows and *nix)
  • Fixed problem with TimerF producing a 408 to the TU when not in Calling state
  • Fixed problem with TransportSelector messing with route headers
  • Fixed bug in TransactionState where transmissions were being delivered to TU
  • Fixed assertion bug when trying to retransmit something that hasn't been transmitted yet
  • Fixed incompatibilities with earlier versions of windows in TransportSelector::determineSourceInterface
  • Fixed windows use of udp sendto
  • Corrected use of sip:/sips: and their effect on DNS lookups (3263)
  • Corrected use of resolver to do appropriate things for the currently available transports (per interface)
  • Fixed a SipFrag encoding problem
  • Added a Warning header to 503 responses
  • Improved robustness of QuotedDataParameter (will accept unquoted arguments and automatically add the needed quotes)
  • Fixed many S/MIME issues (and tested the results at SIPIts)
  • Throws when no Via appears in a message (instead of asserting)
  • Improved robustness of SDP parser (survives lack of final \r\n,survives lack of m lines, better e and p line parsing)
  • Reworked ThreadIf
  • Fixed a nasty bug in Condition::wait that was passing an incorrectly rounded value of tv_nsec into pthread_cond_timedwait and causing an assertion in some versions of linux
  • Removed unnecessary recomputations of 2543 transaction ids
  • Fixed socket leak in ares (close vs socketclose on windows)
  • Several fixes (particularly around USE_IPV6) to keep objects from changing size depending on stack configuration
  • Many fixes to TLS (tested at SIPITs) - In particular, fixed checks of subjectaltname/cname during TLS setup