-
Notifications
You must be signed in to change notification settings - Fork 300
reSIProcate 1.1 Release
Scott Godin edited this page Jan 7, 2022
·
2 revisions
This release is made from the resiprocate-1.1
tag and can be checked out from the following SVN path:
https
.
- updated license blocks
- sipdial, a very simple dialer demo
- 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
- 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
- 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
- fixed bug where DNS resolver would assert when attempting to do a query with no network connectivity (on OS X)
- 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
- 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
- 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
- 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
- allow ServerAuthManager to be configured to challenge with 401 instead of 407
- added optional earlyFlag to ServerInviteSession provisional to allow caller to suppress addition of SDP answer to provisional body (after calling provideAnswer) if desired
- 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
- 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
- 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
- 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
- Navigation
- Developers
- Packages
- Community