GNU SIP Witch

Description

GNU SIP Witch is a secure peer-to-peer VoIP server that uses the SIP protocol. Calls can be made peer-to-peer behind NAT firewalls, and without needing a service provider. GNU SIP Witch does not perform codec operations and thereby enables SIP endpoints to directly peer negotiate call setting and process peer to peer media streaming even when multiple SIP Witch call nodes at multiple locations are involved. This means GNU SIP Witch operates without introducing additional media latency or offering a central point for media intercept or capture. GNU SIP Witch can be used to build secure and intercept-free telephone systems that can operate over the public Internet.

GNU SIP Witch is designed to support network scaling of telephony services, rather than the heavily compute-bound solutions we find in use today. This means a call node has a local authentication/registration database, and this will be mirrored, so that any active call node in a cluster will be able to accept and service a call. This allows for the possibility of live failover support in the future as well.

GNU SIP Witch is not a SIP “router,” and does not try to address the same things as a project like Iptel “Ser.” GNU SIP Witch is being designed to create on-premise SIP telephone systems, telecenter servers, and Internet-hosted SIP telephone systems. One important feature will include use of URI routing to support direct peer-to-peer calls between service domains over the public internet without needing mediation of an intermediary “service provider,” so that people can publish and call sip: URI's unconstrained. GNU SIP Witch is about freedom to communicate and the removal of artifical barriers and constraints, whether imposed by monopoly service providers or by governments (see the Free Call project).

GNU SIP Witch can also be used to construct embedded telephony services as part of GNU Telephony Open Embedded.

GNU SIP Witch depends on GNU uCommon, which optionally offers a complete runtime C++ library environment for developing deeply embedded targets without requiring the use of the ANSI C++ standard library, RTTI, exception handling, or STL templates. GNU SIP Witch will build with all versions of GCC from 2.95 through 4.4, and with many other C++ compilers as well, as on most platforms including GNU/Linux, xBSD systems, MacOS X, and Microsoft Windows.

Development

[2017] The latest version is SIP Witch 1.9.15.

[2011] Current goals include improving usability in the desktop mediation role, and as a local SIP telephone server.

Downloading

GNU SIP Witch may be found at ftp.gnu.org or, preferably, one of its mirrors via the generic URL http://ftpmirror.gnu.org/gnu/sipwitch. GNU SIP Witch requires GNU Common C++/uCommon, the GNU oSIP library, and the eXosip extension library for GNU oSIP. GNU SIP Witch may optionally use libgcrypt for alternate authentication digest algorithms, as well as either openSSL or GNU TLS for TLS support over SIP. GNU SIP Witch is licensed under the GNU General Public License Version 3 or later.

Development sources are available through the Sipwitch project on Savannah.

For other packages that you may need to set up your installation, please refer to the GNU Telephony Download page.

Documentation

Support and Other Resources

To simplify management and bug tracking for the different packages I currently maintain, I have consolidated management of GNU SIP Witch, related GNU Common C++ packages, and GNU Telephony projects including GNU Bayonne. These are being managed through the GNU Telephone subsystem on Savannah.

The SIP Witch mailing list is <[email protected]>. It has a web interface for subscribing, modifying subscription options and searching the list archives. Feel free to send any bug reports, patches, and questions to this list.

Contact Information

The current maintainer for this package is <dyfet at gnu dot org>.


The existing page was completed with additional info retrieved from the Wayback Machine archive of the GNU Telephony website (licensed under the Free Documentation License 1.3).