What is it ?
sipsak is a small comand line tool for developers and administrators of Session
Initiation Protocol (SIP)
applications. It can be used for some simple tests on SIP applications and
devices.
Features
- sends OPTIONS request
- sends text files (which should contain SIP requests)
- traceroute (see section 11 in RFC3261)
- user location test
- flooding test
- random character trashed test
- interpret and react on response
- authentication with qop supported
- short notation supported for receiving (not for sending)
- string replacement in files
- can simulate calls in usrloc mode
- uses symmetric signaling and thus should work behind NAT
- can upload any given contact to a registrar
- send messages to any SIP destination
- Nagios compliant return codes
- search for strings in reply with regluar expression
- use multiple processes to create more server load
- read SIP message from STDIN (e.g. from a pipe '|')
- supports DNS SRV through c-ares or libruli
- supports UDP and TCP transport
For more details read the man page.
(Note: the online man-page matches only the options available in the
latest release but not with new features which may be available in the
CVS.)
Mailing List
There is mailing list for discussing everything which is related to sipsak.
Please use the webinterface to subscribe to it or browse through the archive.
Supported operating-systems
- Linux -
Should work on all modern Linux distribution.
- Gentoo Linux has sipsak since version 0.8.6 in its portage tree (see Install for details).
- Debian GNU/Linux has sipsak 0.8.11 binaries in stable (3.1 aka "sarge"). For all versions and Debian GNU/Hurd see Debian's package page.
- BSD -
FreeBSD and NetBSD should work fine since version 0.7.6.
Note: 0.8.6 is broken on FreeBSD but the CVS version is allready fixed.
If i interpret this right their is also an OpenBSD port available.
- Mac OS X - compiles and runs fine on Panther (10.3) and Tiger (10.4).
- Solaris -
the latest verions of sipsak should compile and run fine on Solaris if you have installed the GNU utilities.
- Windows -
To run sipsak under Windows you need ether the cygwin1.dll and the executable or have to install CygWin
(which is always a good choise ;). Further the name resolving over DNS
have to be activated. Otherwise the determination of the hostname
(necessary for the Via and Contact header for example) returns only the
Windows name which may not be routeable.
- You can just download the precompiled executable and the cygwin1.dll from our ftp server here.
If you place the DLL in your Windows System directory, the sipsak
executable should be runnable from every location at the Windows
command line prompt. The source of the cygwin1.dll can be obtained from
the CygWin homepage.
- If you want to build sipsak under CygWin on your own you have to install CygWin and the gcc from the CygWin setup.
Download
Download the latest tarball (version 0.9.5) from here.
Download an old Windows/CygWin executable from here.
For the latest version use the anonymous Subversion at the development page.
Attention: I switched from CVS to Subversion. The code in the CVS will not be maintained any more!
If you are interested in the latest code please use the following command:
'svn checkout svn://svn.berlios.de/sipsak/trunk/sipsak'
If you are intested in older releases look at the release download section.
You can download the CTD example script down at the example section.
Gentoo Linux
- Just tpye 'ACCEPT_KEYWORDS="~x86" emerge sipsak' to download, compile and install the latest available sipsak version.
- If you just use 'emerge sipsak' you will get an older version (e.g. 0.8.6).
Debian GNU/Linux
- Just type 'apt-get sipsak' to download and install the sipsak binaries. For older versions then 3.1 please follow the 'All others' section.
BSD's
- As far as I know there are ports available for some of the BSD's, but I dont verify that regularly.
All others
- Untar the downloaded tarball with 'tar xvzf sipsak-x.x.x.tar.gz'
- Change into the new sipsak-x.x.x directory 'cd sipsak-x.x.x'
- Run the configure script from the current directory './configure'.
Note: there are two configure options (--enable-retrys and
--enable-timeouts) to change the number of retrys and the maximum
timeout value for waiting on responses.
- Compile the source with 'make' to get a sipsak executable
Note: on some systems (e.g. BSD's) you have to call 'gmake' instead of 'make'.
- An optional 'make install' will install the sipsak binary and the man page (by default in /usr/bin and /usr/share/man/man1).
Documentation and examples
The only real documentation for now is the man page here online or within the tarball. If that is not enough then you are unfortunately left with the help message and source code.
Waclaw Sierek contributed this CTD perl script,
which uses sipsak to call a UA and transfer it immediately to another
target. It could be used for click to dial implementations.
Usage examples
Send an OPTIONS request to nobody@foo.bar and display received replies:
sipsak -vv -s sip:nobody@foo.bar
Trace the SIP path to nobody@foo.bar:
sipsak -T -s sip:nobody@foo.bar
Insert a forwarding contact for myself at work to me at home for one hour and authenticated with password if required:
sipsak -U -C sip:me@home -x 3600 -a password -s sip:myself@company
Query the currently registered bindings for myself at work and authenticate with password if required:
sipsak -I -C empty -a password -s sip:myself@work
Send the instant message "Lunch time!" to the colleague and show result:
sipsak -M -v -s sip:colleaue@work -B "Lunch time!"
Contact
For bug reports and feature requests look at the development page or contact the author directly per mail.
Here are some links to other SIP test tools if sipsak does not fit your requirements:
- SIPp an open source SIP traffic generator sponsored by HP
- SFTF a testing framework which implements tests for the common known pitfalls in RFC3261 sponsored by the SIP Forum