SIP Witch is an official package of the GNU Project as of August 10th 2007.
GNU SIP Witch is also part of GNU Telephony & the GNU Telecom subsystem. The
server directory includes some basic example server configurations.
The goal of this package is to operate as a pure SIP based office telephone
call server supporting generic phone system features like call forwarding, hunt
groups and call distribution, call coverage and ring groups, holding and call
transfer, as well as offering SIP specific capabilities such as presence and
messaging. Support for using secure telephone extensions, for placing and
receiving b2b calls directly over the internet, and intercept/decrypt-free
peer-to-peer audio is also being incorporated into the sipwitch design.
GNU SIP Witch is a call and registration server for the SIP protocol. As a call
server it services call registration for SIP devices and destination routing
through SIP gateways. GNU SIP Witch does not perform codec operations or media
proxying and thereby enables SIP endpoints to directly peer negotiate call
setting and process peer to peer media streaming even when 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 capture. This also means GNU SIP Witch can act as a secure
calling server where all peers directly maintain peer encrypted sessions
without central supervision of keys or central decryption of media traffic.
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 multi-protocol telephone server or IP-PBX, and does not
try to address the same things like asterisk, freeswitch, yate, all of which
require direct media processing. Instead, GNU SIP Witch focuses on doing one
thing as a pure SIP call server, and is being developed specifically to do
that one thing very well. Our goal is to focus on achieving a network scalable
telephone architecture that can be deeply embedded, which can support secure
calling nodes, and that can integrate well with other SIP based/standards
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.
Resources for supporting GNU SIP Witch will be consolidated and handled
principally through Savannah using the existing GNU Telecom subsystem project
found there (https://savannah.gnu.org/projects/gnucomm) as a central point of
contact. This sub-project is being reorganized for this purpose.
GNU SIP Witch depends on the UCommon library, which may merge with and become
GNU Common C++ 2.0 later this year or early next year. CVS for and new
distributions of UCommon will be found in the GNU Telecom project on an interim
basis until then. GNU SIP Witch also uses libeXosip2 and GNU oSIP, and these
may be found at their respective sites. GNU SIP Witch is licensed under the
GNU General Public License Version 3 or later.