Sipper 2.0.0 Released

Project : http://http://rubyforge.org/frs/?group_id=7001

Homepage : http://sipper.agnity.com

June 23, 2009

Overview

The downloads are available from Rubyforge Sipper project website for
2.0.

The downlaods are in the form of platform specific gems for RH Linux,
Windows and Solaris.

This is so because there is a native library that is not bundled as a
native extension to leverage

multi-core, multi-cpu boxes that are so prevalent in telecom labs.

If your platform is not listed above then you can check out the source
from SVN and build SipperMedia binary under /media/ and copy the
binary to /bin. Then build the gem using “gem build sipper.gemspec” or
rake task

Installation

The installation is just a gem installation. “gem install
SipperXXXX.gem” where the gem file is your platform gem file.

If you are using an older version of SIPr you can safely uninstall
older version using “gem uninstall Sipper” and also remove any Sipper
installation from windows using \programFiles\Sipper\uninstall.exe

Please refer to the latest Sipper book from
http://sipper.agnity.com/http://sipper.agnity.com/documents.php

Changes since last release

  1. Feature to pause and resume the load on Linux is added. CTRL^z is
    the key used to pause and resume the load.[June 23 2009]

  2. The default log directory for non project executables like ssmoke
    etc has been shifted to a temporary file

  3. If Session is attached to a transport, IP and Port (created using
    the right Session type and IP and Port provided e.g
    create_udp_session(ip, port)) then it (the transport/ip/port tuple) is
    used for all purposes and never changed unless user changes IP and
    Port from the controller. If the session is detached (e.g
    create_session() or create_udp_session()) then the destination is
    ascertained by normal SIP rules taking into account SIP URI, pre
    existing routes, Route headers etc and is also changed/modified as a
    result of SIP signaling like remote target update during the call
    establishment or subsequent to call establishment. [June 12 2009]

  4. Changes done to simplify SIPr installation. Now SIPr is just one
    gem install. [June 9 2009] Note the details below.

  5. For new projects after the gem install it works out of the box
    .For old projects (backwards compatibility), just copy the new
    Rakefile in the project directory root and everything should work
    fine. (To get the new Rakefile, just create a blank new project and
    copy the Rakefile).

  6. For running from the source directly. (Developers only), assuming
    no Sipper gem installed on that machine, just Rubyforge SVN checked
    out and also no sipper in windows ProgramFiles.
    .You shall need the
    SIPPER_HOME env var and point to the root of your SVN check out (one
    dir above “sipper” or “sipper_test”) .Also need to copy the
    commands in your ruby/bin or /usr/local/bin for sgen, srun, sproj and
    ssmoke. Take the example for sgen as reference "ruby
    $SIPPER_HOME/bin/sgen “$@” .Both old and new projects should work
    without any change with source installation.

  7. Fix for –n 1 in bulk. In new scheme if rate was 1, with RunLoad
    option, controller was not running. [May 24 2009]

  8. Modified SDP class. Added the ability to add media attributes other
    than “a”. So far using add_media_attribute_at() function always added
    a=xxx parameter. Now for all media attribute functions add/remove/get
    media_attribute(s)_at functions we have an optional third argument
    that takes the type of attribute, one of :m, :i, :c, :b, :k, :a. The
    default is :a. So in order to add a “b” attribute on the first media
    line (index 0) you would do - sdp.add_media_attribute_at(0,
    “AS:12600”, :b) [May 24 2009]

  9. Bug fix for #22249. Recording name now rolls over while bulk
    testing [May 24 2009]

  10. Fix for bug #23943. Added the bin dir in the gemspec. Also
    included /usr/local/bin in the search path for media (for backwards
    compatibility). [May 11 2009]

  11. If protocol compliance is set to lax then early media can even be
    established with non reliable provisional response. Of course only
    answer will work here, offer cannot be made with non-reliable
    provisional response anyway. [May 11 2009]

  12. emit_console is also made a controller directive now. So you can
    set “emit_console true” in the controller and ALL messages will be
    printed. This is useful for UAS case when setting on session could be
    done only when first message was received and so it was not printed.
    [May 11 2009]

  13. Simplified load testing without any modification to the test or
    controller. In order to run the test in bulk mode, all you need is a
    new configuration option :RunLoad set to true, or alternatively have a
    –l (minus lowercase L) flag passed on to srun. You can optionally pass
    –b or –n option to srun in
    addition to –l as before to override the number of calls or call rate,
    otherwise the defaults are picked from configuration from :NumCalls
    and :CallRate [April 13 2009]

  14. Fixed WaitForSignaling effect as the test was not exiting. [Mar 22
    2009]

  15. SIPr media API rehash to have simplified APIs for all media
    access. Also included the past work for voice activity detection. [Mar
    17 2009]

  16. Added ability to exit from srun (from within the controller code)
    using SIP::Locator[:Sipper].sipper_exit will also need to require
    ‘util/locator’ in controller. This is in addition to -rf or run
    for option from srun commandline. [Mar 17 2009]

  17. Added the ability to print messages as the test progresss. Using
    session.emit_console = true for a particular session. [Mar 17 2009]

  18. Added the ability to alter the SDP body (session-lines,
    owner-version, media-lines and media-attributes)after creating the
    offer or answer.[Mar 17 2009]

  19. Feature #24328. The ACK to non failure response is now delivered
    to controller, such that it can clean up and perhaps more importantly
    finish the test in some cases. [Mar 15 2009]

  20. Fix for bug #24327, not sending cnonce when no qop in challenge,
    also the ability to not send qop in the challenge. [Mar 12 2009]

  21. Fix for bug #24439, ProxyController::create_proxy_request doesn’t
    handle Record-Route correctly. [Mar 12 2009]

  22. Network Asserted Identity implemented as per RFC 3325. [Jan 05 2009]

  23. Support for integrated webserver provided. Now the same controller
    can also act like Webserver and handle HTTP and SIP requests. The
    association of SIP and HTTP Sessions is automatic and seamless. A
    pattern similar to SIP handling has been used to have same look and
    feel in controllers. [Dec 24 2008]

  24. Digest Server authentication added in SIPr. Earlier we just had
    Digest client support. Now users can also challenge a request from a
    UAS. Two levels of API added one purely directive based and other
    gives complete control over challenge creation and response matching.
    [Dec 21 2008]

  25. PIDF generator implemented as per RFC 3863 and example test case
    as per RFC 3856 added.

pidfdata = XmlDoc::PidfTuple.new(“open”, “sip:[email protected]”,
“0.2”, “Welcome to SIPr World !!”)

r.content = session.create_pidf_doc(“sip:[email protected]”,pidfdata,
“Registration done !!”).to_s

[Dec 19 2008]

  1. SIP Registration Event - API to generate reginfo doc and example
    test case as per RFC 3680.

r.content= session.create_reginfo_doc(‘sip:[email protected]’,0).to_s

[Dec 18 2008]

  1. Private header extensions implemented as per RFC 3455 [Dec 11 2008]

  2. Privacy mechanism implemented as per RFC 3323, 3325 & 4244. One
    can apply the complete privacy service by calling a simple API called
    “apply_privacy()” in SIPr b2bua_controller.

request = apply_privacy(request)

[Dec 11 2008]

  1. Sipper Load balancer - a SIP UDP load balancer to scale up the
    Sipper load, implemented as external process [Dec 10 2008]

  2. Included support for TCP transport according to RFC 3261 [Dec 03
    2008]

  3. Improved interface for verify_call_flow(), the direction is now
    optional [Dec 03 2008]

[released as patch - 1.1.3.2 Sipper-1.1.3.2.gem Nov 11]

  1. Handling of new headers for PUBLISH method and example test case
    as per RFC-3903. [Nov 13 2008]

  2. Fix to speed up the recvfrom_nonblock read from UDP socket on
    Windows platform. [Nov 11 2008]

  3. Service-Route Header implemented as Address Type header. Example
    test case as per RFC-3608 added. [Nov 11 2008]

  4. Helper methods for Replaces header creation and finding session
    based on Replaces Header value. Rejection of improper Request with
    replaces header as per RFC-3891 in strict mode. To create a replaces
    header for a session and find the session from the replaces header.

request.replaces = session1.create_replaces_header

session1 = session2.find_session_from_replaces

[Nov 10 2008]

  1. Session recorder file name fix to read the files in order of
    creation in platform independent way.[Nov 9 2008]

  2. Support for PATH Header (RFC-3327) [Nov 9 2008]

  3. Support for Media keepalive to keep NAT binding open for media
    channel when SDP negotiated to Inactive or RecvOnly state. [Nov 7
    2008]

  4. NAT discovery and traversal code based on config and/or controller
    directive or session config, helper method for REGISTER [Nov 7 2008]

  5. Enhanced HTTP API to support - Basic authentication, PUT request,
    addition of custom header, arbitrary body [Nov 3 2008]

[released as patch - 1.1.3.1 Sipper-1.1.3.gem Oct 21]

  1. Fix to add an empty header (without value) to a SIP message [Oct 21
    2008]

On 24 Jun 2009, at 03:48, Nasir K. wrote:

for 2.0.
from SVN and build SipperMedia binary under /media/ and copy the
binary to /bin. Then build the gem using “gem build sipper.gemspec” or
rake task

The overview would be more helpful if it started with a description of
what sipper is :slight_smile:

Ellie

Eleanor McHugh
Games With Brains
http://slides.games-with-brains.net

raise ArgumentError unless @reality.responds_to? :reason