Fetching contributors…
Cannot retrieve contributors at this time
134 lines (67 sloc) 9.83 KB


Version 2.0.3 (released in 2016-01-29)

  • Suitable for Debian Jessie and for Ruby >= 1.9.3 and Ruby 2.X.X.

Version 2.0.0 (released in 2014-09-24)

  • (437abd4) Remove Posix Message Queue dependency. OverSIP can now run in OSX.

Version 1.4.0 (released in 2013-09-15)

  • (7befa37) RFC 6228 (199 response) implemented in Proxy#drop_response(response). The method now allows passing the OverSIP::SIP::Response instance to drop and, in case it is a [3456]XX response and the received request includes "Supported: 199" then a 199 response is sent upstream.

  • (1159607) New OverSIP::SIP::Request#ruri=(uri) method which replaces the Request URI of the request by passing an OverSIP::SIP::Uri instance or a string. Also allow passing a URI as string to UacRequest.initialize and route based on it (if no dst_host param is given to the Uac instance routing such a request). New class methods OverSIP::SIP::Uri.parse(string) and OverSIP::SIP::NameAddr.parse(string) which generate instances of those classes.

  • (a2971fc) New OverSIP::ParsingError exception which is raised when invalid data is passed to OverSIP::SIP::Uri.parse(uri) or OverSIP::SIP::NameAddr.parse(name_addr).

  • (2689e02) OverSIP::SIP::Proxy and OverSIP::SIP::Uac instances now allow setting multiple callbacks (for events like on_success_response) and all of them will be executed sequentially.

  • (4b7c47f) New method OverSIP::SIP::Uri#has_param?(param).

  • (774de3b) New instance methods clear_on_xxxxxx() and clear_callbacks() to clear existing callbacks in OverSIP::SIP::Proxy and OverSIP::SIP::Uac.

  • (e58974f) New design of OverSIP::Modules::OutboundMangling module: add_outbound_to_contact() now requires passing an OverSIP::SIP::Proxy as argument rather than a request, and it internally adds the callback to the 2XX response (for reverting the custom ;ov-ob param) so remove_outbound_from_contact() is no longer required and has been removed.

  • (31114a0) Added OverSIP::SIP::Uri#clear_params() which removes all the params from the URI.

  • (c610d90) Add advertised_ipv4 and advertised_ipv6 configuration options for running OverSIP in NAT'ed boxes.

Version 1.3.8 (released in 2013-05-16)

  • (04b0882) request.fix_nat() works now for initial requests regardless request.loose_route() is not called (thanks to Vlad Paiu for reporting).

Version 1.3.7 (released in 2013-01-28)

  • (ac18ff2) Added OverSIP.root_fiber attribute which stores the root Fiber.

Version 1.3.6 (released in 2013-01-03)

  • (0a858b1) Encode the body in UTF-8 also when received via WebSocket.

  • s/2012/2013/g.

Version 1.3.5 (released in 2012-12-17)

  • (6ee6b8c) Fixed a bug in name_addr.rb that prevents the NameAddr to be printed until some URI field is modified.

  • (9b20db3) Add via_branch_id attr reader to UacRequest to avoid a bug in OverSIP::SIP::Uac#route() method.

Version 1.3.3 (released in 2012-11-15)

Version 1.3.2 (released in 2012-11-03)

  • (3d7fa9e) Fixed a bug that writes an empty Record-Route header when an INVITE asking for incoming Outbound support comes from a TCP connection initiated by OverSIP.

Version 1.3.1 (released in 2012-10-04)

  • (042fdaf) Fixed an important bug in record-routing mechanism that makes OverSIP not to add Record-Route/Path headers.

Version 1.3.0 (released in 2012-10-04)

  • (6afa5a6) All the callbacks in server.rb are now executed within a new Fiber allowing synchronous style coding by using em-synchrony libraries.

  • (b950bba) New class OverSIP::SIP::Uacthat allows OverSIP behaving as a UAC for generating and sending SIP requests. New class OverSIP::SIP::UacRequest for generating requests to be sent via OverSIP::SIP::Uac#route method (also allows sending a received OverSIP::SIP::Request instance).

  • New methods initialize(), sip?, tel? and get_param() for OverSIP::SIP::Uri class (doc).

  • New class OverSIP::SIP::Client, parent class of OverSIP::SIP::Proxy and OverSIP::SIP::Uac. New method add_target_to_blacklist() (doc).

  • OverSIP::SIP::Client#on_error() method is now called with a third argument: a Ruby symbol trat represents the exact (internal) error code.

  • OverSIP::SIP::Client#on_target() callback is now called with a single parameter: the instance of OverSIP::SIP::RFC3263::Target (API change).

  • (7e9733e) New feature: automatic blacklists. When a destination (target) fails due to timeout, connection error or TLS validation error, the target is added to a temporal blacklist and future requests to same target are not attempted until the entry in the blacklist expires.

Version 1.2.0 (released in 2012-09-04)

  • (c921687) Added on_target() and abort_routing() methods for Proxy class.

  • (7e54d1c) Don't raise an exception if the received STUN request contains an invalid IP family (vulnerability!).

  • (f7eefd6) If request.from or (NameAddr instances) are modified before routing the request, changes are applied for the outgoing request and reverted when sending responses upstream.

  • (0f9d3ec) If NameAddr fields are modified then changes are applied in the forwarded request.

  • (df1389e) Added SystemCallbacks module for 3rd party modules to set custom callbacks when OverSIP is started, reloaded (HUP signal) or stopped.

  • (9d310d6) Added OverSIP::SIP::Uri#aor()method which returns "sip:user@domain" for a SIP/SIPS URI (no port or params) and "tel:number" for a TEL URI (no params).

  • (56e099b) Added a new method OverSIP::SystemEvents.on_initialize() useful for 3rd party modules configuration by the user.

  • (aac4bad) OverSIP::SIP::Modules::RegistrarWithoutPath renamed to OverSIP::SIP::Modules::OutboundMangling.

  • (ce48977) OverSIP::SIP::Modules::Core moved to OverSIP::SIP::Core.

  • (98e5308)OverSIP::SIP::Modules moved to OverSIP::Modules.

Version 1.1.2 (released in 2012-08-28)

  • (d91d2e4) Require EventMachine-LE >= 1.1.3 which includes the :use_tls option for selecting TLSv1 or SSLv23 (fixes #12).