Skip to content

ReSIProcate 1.9 Release

Scott Godin edited this page Jan 7, 2022 · 4 revisions

Table of Contents

Getting the software

Download

Highlights in 1.9

  • Session/registration accounting
  • SIP over WebSocket support for WebRTC, with cookie authentication option
  • Python scripting for repro routes
  • repro dynamically-loaded routing plugins
  • UAS PRACK
  • Improvements to daemon processes for UNIX/Linux users
  • Android support
  • Multiple users in reTurn
  • Many stability/bug fixes

GIT

https://github.com/resiprocate/resiprocate.git

 Branch: resiprocate-1.9

https://github.com/resiprocate/resiprocate/tree/resiprocate-1.9

Release Notes v 1.9

1.9.11 Changes

  • resip/stack: change TLS cipher suites to use -COMPLEMENTOFDEFAULT
  • repro: change TLS cipher suites to use -COMPLEMENTOFDEFAULT
  • repro: CommonNameMappings: detect repeated common names in config file
  • resip/stack: fix buffer management bug in WebSocket transport
  • rutil: XMLCursor: support whitespace before first XML element
  • resip/stack: Helper: fix for an auth validation issue
  • reTurn: add psql-user-extract script
  • resip/dum: DialogUsage: added logic to avoid trapping if mAppDialogSet is 0
  • resip/dum: DialogSet: Added handling for non-invite dialogs
  • resip/stack: ConnectionBase: increase max headers from 256 to 1024
  • rutil/dns/ares: fix for uninitialized pointer
  • rutil/dns/ares: remove cache-sensitive logic from caching algorithm
  • rutil/stun: Qualify bind to prevent clang from using std::bind
  • resip/stack/SdpContents: add some static codec definitions and new methods

1.9.10 Changes

  • resip/stack: support for OpenSSL versions that don't have all option names
  • resip/stack: lower severity of some log messages when TLS connections close
  • resip/stack: make ensureWriteable more tolerant during TLS handshakes, resolves crashes
  • resip/stack: add support for CA root cert bundle files
  • resip/stack: use StrongestSuite as default cipher list
  • resip/dum: challenge with correct realm when from and req URI domains don't match
  • rpm: update Wants and After details in unit files

1.9.9 Changes

  • resip/stack: only support SSL_OP_SAFARI_ECDHE_ECDSA_BUG as configuration string with compatible OpenSSL versions

1.9.8 Changes

  • resip/stack: add static fields on BaseSecurity for setting OpenSSL CTX options
  • resip/stack: explicitly disable SSLv2 and SSLv3 by default when using SSLv23
  • resip/stack: allow application to provide OpenSSL certificate verification callback
  • repro: change default OpenSSL method from TLSv1_method to SSLv23_method (enables TLS v1.1 and v1.2)
  • repro: add configuration options OpenSSLCTXSetOptions and OpenSSLCTXClearOptions to control OpenSSL CTX options
  • repro: add configuration OpenSSLCipherList to manually configure the OpenSSL cipher list

1.9.7 Changes

  • rpm: Indicate that b2bua package is obsolete
  • resip/stack: TlsConnection: correctly handle OpenSSL error queue after SSL_read
  • resip/stack: fix for forced target routing in TransactionState - thanks to John Gregg for this
  • rutil: enhance command line parsing exceptions with additional details - thanks to John Gregg for initial contribution
  • rutil: if a v6 address is passed to the GenericIPAddress sockaddr constructor, ensure the entire v6 address is copied over properly. Note: sockaddr is smaller than sockaddr_in6 - Thanks to Bjorn A for this fix
  • rutil: accept case insensitive log level strings
  • resip/dum: fix obscure bug in basicClient where if we don't use a threaded stack processing does not function correctly - required PollGrp to be passed to SipStack constructor
  • resip/stack: fix for a use-after-free bug when adding multi-headers to a list that has been copied, and then one of the headers is accessed (but not necessarily parsed) - thanks to Byron Campen for this fix!
  • resip/stack: Added accessor for TransactionUser FIFO so to obtain stats
  • resip/stack: additional OpenSSL cleanup fn - reordered functions to match order used in this post: http://openssl.6102.n7.nabble.com/Cleanup-procedure-missing-some-calls-td37441.html
  • reTurn: modified asio and boost include file ordering to avoid multiply defined symbol errors on linking
  • resip/recon: remove extra sleep definitions
  • resip/stack: fix a bug with Keepalive processing that causes transaction state leakage and potential traps
  • rutil: syslog: use LOG_PID, avoid sending redundant data in log string.

1.9.6 Changes

  • resip/recon: fixes a bug that makes it impossible to use codecs with RTP clock rates other than 8000, makes Opus support possible
  • autotools: minor tweaks to reduce warnings during build/linking

1.9.5 Changes

  • resip/recon: do not send DTMF as inband audio, can be troublesome as sipXtapi echoes it back to caller (note: requires latest sipXtapi code with startChannelTone patch)
  • resip/recon: SipXHelper: map log entries from sipXtapi to reSIProcate logger
  • resip/recon: safety checks when using dynamic_cast with ConversationProfile
  • resip/recon: avoid changing payload IDs in the default ConversationProfile

1.9.4 Changes

  • resip/recon: ensure libraries link with sipXtapi libs
  • resip/recon: fix for case where DialogSet Profile is not an instance of ConversationProfile
  • resip/recon: per-participant tone support
  • resip/recon: clarify DTMF API: tones represented by event code, API-user durations in milliseconds

1.9.3 Changes

  • reTurn: TurnAsyncSocket: fix for sending when not using TURN
  • resip/stack: added allowed events to 489 errors
  • resip/stack: Support for dtmf-relay content parsing for SIP INFO messages
  • resip/recon: call onDtmfEvent when SIP INFO received, just as for RFC2833 DTMF
  • resip/recon: call acceptNIT()/rejectNIT() after handling INFO message
  • resip/recon: support for changing internal sample rate of sipXtapi
  • resip/recon: allow UserProfile and extension headers to be specified when creating a new remote participant

1.9.2 Changes

  • rutil/dns: fix for Windows DNS Server use. Ignore Link Local DNS Server entries.
  • rutil: add extra ParseBuffer constructor for const char*
  • rutil: Data: ust strncmp in comparisons with const char*

1.9.1 Changes

  • adapt to work with asio v1.10.1 (still works with v1.4.x too)
  • fix for spinning in DnsThread
  • ensure mPollGrp is set before accessing it in AresDnsPollItem::resetPollGrp
  • fix RegSyncClient so that it detects breaks in the socket connection to the server - by using keepalives
  • made EGAIN and EWOULDBLOCK processing the same in a few additional spots
  • add WinLeakCheck header to some new Websocket class files to aid in leak detection on windows
  • stop trying to write cert files in various places
  • repro:
    • WebAdmin: catch and log exceptions when starting
    • fix issue with CommandServerList being deleted when not newed if startup fails due to transport exception
    • fixed up StackStatistics handling for when multiple command servers are running (ie: v4 and v6 CommandServers)
    • ensure we use the ServerText config setting to set the server text headers in requests that traverse repro
  • use threadsafe variant of localtime (localtime_r) on non-windows based platforms

1.9.0 Changes since 1.8.0

Highlights

  • Session/registration accounting
  • SIP over WebSocket support for WebRTC, with cookie authentication option
  • Python scripting for repro routes
  • repro dynamically-loaded routing plugins
  • UAS PRACK
  • Improvements to daemon processes for UNIX/Linux users
  • Android support
  • Multiple users in reTurn
  • Many stability/bug fixes



General Changes

New features

  • added CAJUN (header file only library) source to contrib for JSON encoding/decoding support - now also a Debian/Ubuntu/Fedora package
  • added last release of GPLed opensigcomp project to contrib tree, since it can't be found on internet any longer
  • updated libSRTP drop to latest 1.4.4 version
  • updated to asio 1.4.8

Build system

New features

  • VS2010 project file enhancements
    • Modified project settings to allow x86 and x64 builds in the same source tree
    • Output Directory for all projects and for all configuration/platform combinations changed to $(SolutionDir)$(Platform)\$(Configuration)\
    • Intermediate Directory for all projects changed to $(Platform)\$(Configuration)\
    • Added _CRT_SECURE_NO_WARNINGS to projects where it was still missing in order to reduce the amount of warnings. There are less than 30 warnings now, so one can concentrate on those warnings that might really matter instead of just ignoring a large warning list
    • Removed Manifest Tool Command Line additional option "validate_manifest" for [repro-x64-Debug-SSL]. This switch makes the MT.exe only parse the input but does not generate output and can lead to a build error.
    • Removed all Property Pages “Upgrade from VC 7.1”. The sole purpose of this is to introduce the preprocessor directive "_VC80_UPGRADE=0x0710" which has no practical use at all
    • There’s a bug in Visual Studio 2010 when Visual Studio 2012 is installed also. As a result, the Setup projects detect a dependency on the .NET Framework for a C++ project even if it does not use .NET. It can be cured by adding “false” to the project file. After doing so I could remove the incorrectly added LaunchCondition in the setup projects. Details can be found here: http://connect.microsoft.com/VisualStudio/feedback/details/746328/after-installing-vs-11-rc-vs-10-setup-projects-require-the-net-framework
    • Added a new file VisualStudioReadme.htm with some information about the Visual Studio build
    • reTurn: Changed boost include folder from ./contrib/boost_1_34_0 to ./contrib/boost
  • add 64-bit VS2010 project settings for reTurn
  • added configure-android.sh for building with Android NDK
  • rend: added autotools support
  • rpm: various fixes for RHEL6 and Fedora builds

rutil

New features

  • avoiding truncating the log file
  • add directory create API to rutil/FileSystem
  • WIN32 - added better logging to WinCompat::determineSourceInterfaceWithoutIPv6
  • Data: add fromHex method
  • Data: import capacity of pre-allocated buffers
  • Data: improve buffer size allocation in base64encode
  • dns/ares: add support for DNS server discovery on Android
  • add support for Android logging / logcat utility
  • add FileSystem::Exception, check stat() return value
  • FileSystem: check results of readdir calls
  • Add support for FreeRADIUS client (radiusclient-ng is deprecated but still supported for now)
  • Tuple: provide method for copying out sockaddr
  • ConfigParse: add support for reading sets
  • ConfigParse: give precedence to options on command line
  • ConfigParse: reject duplicate values from any given config source
  • ConfigParse: throw exceptions rather than immediately exiting on error
  • added preprocessor conditional compile option for Windows source interface selection to avoid using adapter addresses tagged as Transient. Transient addresses include those that are used for Virtual IP addresses and tagged with SkipAsSource (also used in Windows Clustering solutions)
  • added Sha1 implementation for when OpenSSL is not available
  • ServerProcess: change logfile and PID file ownership when dropping privileges

Bug fixes

  • WIN32 - WinCompat::determineSourceInterfaceWithoutIPv6: throw transport exception if new fails or if second call to GetIpAddrTable fails
    • have seen one case where 2nd call to GetIpAddrTable returned 232 (ERROR_NO_DATA) for some unexplained reason, and Contact and Via headers would end up getting populated with 0.0.0.0 address
  • WIN32 - WinCompat: make sure all IPHLPAPI fns are run from the runtime loaded library
  • WIN32 - WinCompat: move static Mutex outside of WinCompat::instance() fn definition to avoid race conditions
  • MD5 code: more checks for big endian environments (gcc )
  • Data::sizeEqualCaseInsensitiveTokenCompare: Fixing a goof that was causing later code to operate on unaligned data as if it were aligned, which was causing the code to malfunction on many non-x86 platforms.
  • Android cross-compile: fix compile issues
  • fix Data for big endian builds
  • DnsUtil - handle potential truncation in gethostname()
  • fix for build on GNU HURD
  • DnsUtil: support HURD net device interface names with leading slash
  • FileSystem: add support for full filename in iterator, fix problem with using stat() on relative path
  • fixed up AresDns::checkDnsChange to be able to compare IPv6 DNS servers instead of just V4 servers
  • WIN32 - ares_init: modified API used to retrieve DNS servers for Windows systems from GetNetworkParams to GetAdapterAddresses (supported on Windows XP / Server 2003 and above)
    • will fallback to GetNetworkParams if unable to retrieve servers via GetAdapterAddresses (this will happen on Windows 98 and Server 2000 machines)
    • GetNetworkParams issues:
      • does not support IPv6
      • was exhibiting a MS bug that could cause 0 DNS servers to be returned if many ares instances where init'd at the same time (ie: could happen when creating many SipStack instances at the same time)
    • more efficient lookup when ARES_FLAG_TRY_NEXT_SERVER_ON_RCODE3 ares option is used - no need to lookup the physical address of each DNS server separately
  • RADIUS: correctly distinguish access denied from server error
  • RADIUS: don't behave badly if multiple calls to init() are made

stack

New features

  • added WS (WebSocket) and WSS (Secure WebSocket) transport support for WebRTC compatibility
    • added WebSocket handshake cookie parsing and validation
  • added build-in "cause" parameter parsing for Reason header (RFC3326) parsing
  • added missing header parameters for RFC4244 and RFC4244-bis (index, rc, mp, and np)
  • define max message size in a variable, allow compile time default with RESIP_SIP_MSG_MAX_BYTES and runtime config setting
  • SipMessage: range check on addHeader
  • added a MD5 hash comparison equals operator to Content class - needed by upcoming UAS Prack implementation
  • TcpBaseTransport: ensure outgoing TCP-based connections originate from configured interface address
  • DTLS support for certificate chains
  • TLS: more verbose certificate errors
  • add support for more aggressive garbage collection, MinimumGcHeadroom
  • added option to control if the DNS resolver will allow sip:<ip-address></ip-address> to resolve to UDP, TCP, or TLS, in that order of priority (existing behaviour) - vs - UDP only

Bug fixes

  • Helper::getClientPublicAddress and isClientBehindNAT - don't create a Tuple out of a hostname if it isn't an IP address - can trap
  • don't assert in Tuple constructors that take printable addresses, since these addresses can come from the wire or from configuration
  • SigComp - fix memory leak in ConnectionBase: use delete[] for arrays
  • ensure we can send a 100 Trying for NonInviteTransaction retransmissions after one has already been sent - previously an assert would be triggered
  • Fixed issues with pre-mature TCP socket teardown: treat EGAIN and EWOULDBLOCK the same
  • fixed incorrect placement of #ifndef RESIP_USE_STIL_STREAMS
  • If TimerCleanup fires before Timer D for a cancelled ClientInvite transaction then we try to log out mNextTransmission regardless of the transaction state. However the transaction state may have advanced to the Completed state and mNextTransmission will be null, so we shouldn't be trying to log it
  • Tuple: fix mask comparison for some platforms with 64 bit long
  • remove use of RSA_generate_key for newer OpenSSL versions
  • Android cross-compile: fix compile issues / fcntl.h
  • fix an issue with TCP connections on Windows when TCP socket buffer fills up. Connection would have been terminated before - we were not properly handling WSAWOULDBLOCK response. We were relying on errno / getErrno to be accurate a number of calls after the write failure.
  • fix support for intermediate certificate chains
  • fix some potential mem leaks found by coverity in DtlsTransport::_read

DUM

New features

  • Added full support for PRACK - previously only supported UAC PRACK, UAS PRACK Support is added in this release
  • added in support for UAC Prack to be able to send an offer in the first PRACK response (must call provideOffer from onAnswer callback)
  • TlsPeerAuthManager: add support for statically configured mappings of TLS common names to permitted From: addresses
  • ServerAuthManager: add new option to not challenge third parties ("From" header not a local domain)
  • add additional accessor to ClientPagerMessage to retrieve the stored request message as a SharedPtr instead of a reference. This allows the caller to adorn the message and then call DialogUsageManager::send safely (if queueing and/or message bodies are not desired when sending a SIP MESSAGE request)
  • resip ClientPagerMessage - modified to allow onSuccess and onFailure callbacks even if queue of message contents is not used - allows you to call ClientPagerMessage::getMessageRequest, build the request yourself (even one without a body), send using DUM::send and still have your callbacks invoked
  • Added ServerSubscriptionHandler::onNotifyAccepted callback.
  • Profile: allow AllowEvents to be an advertised capability
  • remove randomized addition of time to stale call timer - not sure why this was there in the first place
  • RADIUSServerAuthManager: allow RADIUS client configuration file to be specified
  • Deprecated addTransport on DialogUsageManager object: SipStack has the exact same interface
  • dum/test/basicClient - use stack in multi-threaded mode
  • dum/test/basicClient - use EventStackThread instead of InterruptableStackThread - enables Epoll support on platforms that support it
  • dum/test/basicClient - enabled UAS PRACK
  • add support for statically configured auth realm

Bug fixes

  • InviteSession: fixed recursive calls to refer (w/ sessionToReplace) when using referCommand and InviteSessionReferExCommand.
  • TlsPeerAuthManager: explicitly skip authorization logic if TLS mode is optional or transport is not TLS
  • ClientRegistration: modified whenExpires to return the number of seconds when the registration will actually expire, as opposed to the number seconds until our next refresh message is supposed to go out
  • ClientRegistration: ensure that we don't try to unregister if ClientRegistration::end is called and we never successfully registered (or all current registrations are currently expired)
    • also includes case where we need to wait for an operation to finish before we can end
  • ClientRegistration: no-op subsequent calls to ClientRegistration::end after initial call
  • fixed issue with over active 1xx retransmissions
  • ClientRegistration: If we are unregistering all contacts as the initial registration message then don't bother storing in mMyContacts - allows add Binding to be called later to add a registration
  • fixed update glare handling for UAC prack
  • fixed missing break in ClientInviteSession::dispatchReceivedUpdateEarly
  • RADIUSServerAuthManager: cease mangling usernames passed to RADIUS
  • Security: stop trying to write PEM file in addDomainCertPEM
  • dum/test/basicClient - ensure shutdown works if initial registration attempt is in progress
  • fixed some transaction state memory leaks in DUM - resulting from race conditions in DUM Cancel handling
    • Race#1 - DialogSet.cxx - if Dialogset is still around, but dialog is gone (potentially BYE'd). Need to respond to CANCEL in order for transaction in stack to go away
    • Race#2 - ServerAuthManager - if we are waiting for an async user auth info to arrive on an INVITE with credentials when a CANCEL arrives, we did not correctly respond to the CANCEL
      • DialogUsageManager - needed a change to handle the User Auth info arriving after destroying the feature chain due to a CANCEL

repro

New features

  • added WS (WebSocket) and WSS (Secure WebSocket) transport support for WebRTC compatibility
    • add specific support for authenticating users based on HTTP cookies authenticated by a shared secret/HMAC scheme
  • Add registration and call/session accounting
    • configured/enabled via configuration file
    • Session Accounting - When enabled resiprocate will push a JSON formatted events for sip session related messaging that the proxy receives, to a persistent message queue that uses berkeleydb backed storage.
    • The following call events are logged:
      • SessionCreated - INVITE passing authentiation was received
      • SessionRouted - received INVITE was forward to a target
      • SessionRedirected - session was 3xx redirected or REFERed
      • SessionEstablished - there was 2xx answer to an INVITE (only generate for first 2xx)
      • SessionCancelled - CANCEL was received
      • SessionEnded - BYE was received from either end
      • SessionError - a 4xx, 5xx, or 6xx response was sent to invitor
    • Registration Accounting - When enabled resiprocate will push a JSON formatted events for every registration, re-registration, and unregistration message received to a persistent message queue that uses berkeleydb backed storage.
    • The following registration events are logged:
      • RegistrationAdded - initial registration received
      • RegistrationRefreshed - registration refresh received / re-register
      • RegistrationRemoved - registration removed by client / un-register
      • RegistrationRemovedAll - all contacts registration remove / unregister received
    • Consuming Accounting Events: Users must ensure that the message queues are consumed, or they will grow without bound. A queuetostream consumer process is provided, that will consume the events from the message queue and stream them to stdout. This output stream can be consumed by linux scripting tools and converted to database records or some other relevant representation of the data.
  • add plugin DSO support (non-Windows platforms only)
  • add support for using Python scripts to perform routing
  • made static instance of the GeoIP library
    • allows static geoIPLookup method for other components of repro to access geoip library
    • reduces memory in cases where multiple instances of GeoProximityTargetSorter are needed (take care if creating multiple instances since static initialization is not mutexed)
  • print MaxMind GeoIP database information to resip logs
  • StaticRoute: allow routing of messages when CertificateAuthenticator passed
  • CertificateAuthenticator: add support for statically configured mappings of TLS common names to permitted From: addresses
    • add CommonNameMappings config option to load CN mappings from a text file
  • Added options to disable DIGEST challenge of third parties in DUM auth when mutual TLS in use
  • added support for WebAdmin and CommandServer binding to specific IP addresses
  • enable IPv6 by default
  • allow specification of arbitrary domain cert/key PEM files
  • make the CertificatePath optional with no default
  • WIN32 -delay load libmysql.dll so that it is not required unless MySQL is enabled in repro
  • config: support non-consecutive transport numbering in advanced transport spec
  • move authenticator creation code into a common factory class
  • add TlsTrustedPeers config option
  • send an alert to syslog when config parsing fails
  • configure User-Agent header for registrar, set default value with PACKAGE_VERSION
  • add TCPConnectionGCAge config option for garbage collection
  • add support for TCPMinimumGCHeadroom
  • add RADIUS support
  • add config option ChallengeThirdPartiesCallingLocalDomains
  • add StaticRealm config option to always challenge using a specified realm value
  • reset logger / rotate log files when HUP received
  • added ability to change log level from web admin
  • take HttpAdminPassword out of repro.config, use a htdigest file
  • rpm: configure repro and reTurn not to fork under systemd in Fedora

Bug fixes

  • move TLS client auth feature/monkey after DIGEST, so that TLS client auth can know if the peer passed DIGEST
  • CertificateAuthenticator: explicitly skip authorization logic if TLS mode is optional or transport is not TLS
  • fixed CommandServer being created even though listener bind failed
  • fix bug that causes assert if you try to configure repro registrar and authentication disabled
  • don't strip authorization headers if the request is going to spiral / loop back to us, only strip if routing outside our domain
  • if we receive a response that has messed with the vias and we don't have a stored bestResponse then send a 500
  • make sure multiple RegSync Servers can be added and dispatched to -fixes repro bug when starting both IPv4 and IPv6 regsync servers
  • fixup reprocmd so that it works properly for commands with arguments ie: SetCongestionTolerances - now requires a '/' in front of the actual command
  • respond with an error code when invalid pages requested



reTurn

New features

  • reTurn Server: improved diagnostics in RequestHandler - print senders tuple with errors
  • reTurn Server: detect port in use errors when creating relay
  • reTurn Server: TurnAllocation/UdpRelayServer - added flags so that some errors only log a Warning level once, then will log at Debug level after - this helps to avoid flooding logs with Warning level messages
  • reTurn Server: track allocations per connection - reduces map sizes and lookups when TCP/TLS client connections are used
  • reTurn Server: read user/password data from a file specified by UserDatabaseFile
  • reTurn Server: optimization to not calculateHmacKey multiple times
  • reTurn Server: if return config file location contains a base path, then append this path to other filename settings if an absolute path isn't already specified
  • reTurn Server: short term authentication makes no sense for a TURN server, since credential information needs to be exchanged out of band (ie. as with ICE) - remove short term auth option from return server - Long Term authentication is enabled by default
  • reTurn Server: listen on IPv6 as well as IPv4
  • reTurn Server: more verbose warning when user or realm unrecognised
  • reTurn Server: add support for TLS private key in standalone file
  • reTurn Server: periodically check for updates to the user database file
  • reTurn Server: support for hashed passwords in user database file
  • reTurn Server: add support for configuring software name header in STUN packets
  • reTurn Server: reload users.txt and reset logger on HUP signal
  • reTurn Client API enhancements
    • upped receive buffer size from 2048 to 4096
    • OS level Udp socket receive buffer size set to 66560
    • TurnAsyncSocketBase - use dispatch instead of post for send API for increased efficiency
    • TurnAsyncSocket - new client side APIs
      • setLocalPassword for checking integrity of incoming STUN messages
      • connectivityCheck for ICE connectivity checks
      • setOnBeforeSocketClosedFp for QOS cleanup (windows)
      • send API now split into send(To)Framed and send(To)Unframed
      • Queue of guards modified to use a weak functor template instead
      • onBindFailure and onBindSuccess now return the Tuple that failed or succeeded
      • onChannelBindRequestSent - new
      • onChannelBindSuccess - new
      • onChannelBindFailure - new
    • DataBuffer improvements
    • StunMessage - added ice attributes
  • TestRtpLoad change to use OS selected port for relay port instead of hardcoded 2000

Bug fixes

  • reTurn Server: fix bugs with port allocation logic
    • properly detect wrap around when end of range is max ushort = 65535
    • properly allocate even or odd port after wrap around from end of range
  • TCP/TLS Server classes - ensure we try to accept future connections if we receive an error indicating we ran out of file descriptors
  • TLS/UDP Servers classes - throw on errors in constructor
  • fixup stunTestVectors.cxx now that ice parameters are parsed
  • Client API: fix for requestTimeout - handle case where close is called in handlers and it is invalidated
  • stunTestVectors: correct test case for network byte order
  • reTurn Server: only try to start TLS transport when port is non-zero

recon

New features

  • modified recon/reflow DtlsSocket to work with DTLS-SRTP from OpenSSL 1.0.1 - patched version of OpenSSL no longer required
  • modified DTLS-SRTP fingerprint to be SHA-256 instead of SHA-1 for better web-rtc interop
  • recon: look for dynamic codec modules in default location if none are statically linked
  • improved error logging in RemoteParticipant::adjustRTPStreams
  • reflow: emit warning when socket is not available

Bug fixes

  • reflow: ensure proper initialization of policy structure

tfm (repro)

New features

  • added VS2010 project files
  • added ability for tfm repro to be run in interactive mode with a -i command line option
  • added ability for tfm repro to be able to disable digest authentication if required for some test cases
  • enabled over 60 additional tfm repro test cases that required digest auth to be disabled
  • enabled record routing on repro test instance in tfm repro and tfm dum
  • modified tfm/Sequence and tfm/SequenceSet to support newer versions of boost
  • disable Invite loop test since all platforms will fail when record-routing is enabled - it causes the message size to exceed 8k

Bug fixes

  • update root CA cert and domain cert used in tfm repro TLS testing - old ones had expired
  • fixup some test cases testAttendedExtensionToExtensionTransfer, testBlindTransferExtensionToExtensionHangupImmediately, testConferenceConferencorHangup
  • fix for testAck200ReflectedAsInvite test case - reflected INVITE wasn't tracked and it would use first request in map - which would sometime be the wrong invite

tfm (dum)

New features

  • added VS2010 project files
  • added 24 new tests cases to tfm dum for PRACK testing (dumTests.cxx)
  • modified tfm dum TestSipEndPoint::Prack to be able to send PRACKS from TestSipEndpoint
  • modified tfm dum TestSipEndPoint::Invite to be able to enable PRACK on outbound invites
  • modified tfm dum to be able to store relrespinfo on 18xrel for generating PRACKs
  • added interactive mode (-i) flag to tfmdum so that tests can be run either automated or with a test selector menu

Bug fixes

  • fixed up TFM DUM test cases that required digest to be disabled and ones that required record-routing to be turned on, and ones that were looking for rinstance parameter (instance id is now used)

nICEr

Bug fixes

  • Fix some 32/64 issues and an edge case where no ICE attributes are provided
  • Numerous improvements and fixes from Mozilla WebRTC project
Clone this wiki locally