From Fedora Project Wiki


Features/SIP Witch Domain Telephony

Summary

This feature allows users to construct and participate directly in an autonomously generated public VoIP network for voice, video, and instant messaging which requires no central service provider to maintain or perform user lookup nor proprietary protocols. This is done by running GNU SIP Witch as a domain service for the SIP protocol in a manner analogous to what sendmail does for the SMTP protocol (or Jabber does with xmpp), and thereby allows users of any standard-compliant SIP softphone or device to directly peer calls to remote users using SIP uri's and DNS lookup alone. This same service allows the user's local SIP capable devices to be managed as a local phone system as well. By peering calls directly, user agents which support secure media protocols, such as zfone, Twinkle, and SIP communicator, can create entirely secure peer to peer calls between users easily. The long-term goal is to replace solutions like Skype with entirely free software using standard protocols.

Owner

Current status

  • Targeted release: Fedora13
  • Last updated: 2009-10-10
  • Percentage of completion: 10%

Detailed Description

GNU SIP Witch can be used to offer a means to create scalable and secure VoIP services usable by everyone. This is done by using SIP Witch as a "domain" service for the SIP protocol, much like how Sendmail or Postfix do so for SMTP.

Since SIP Witch only mitigates SIP and will soon offer media packet forward RTP for SIP devices behind a NAT, while still establishing direct peer-to-peer communication between endpoints, it has very little overhead and no issues with patent encumbered codecs. Because peer to peer media connections are used between endpoints, sipwitch can operate directly with, manage, and scale "Social Key Verification" systems such as ZRTP. Since all users can use direct URI dialing to contact users at other locations there is no need for a central "service provider" or directory.

The primary feature is being able to run a SIP Witch "service". This is already completed with general availability of GNU SIP Witch which has initially been packaged since Fedora 10. Exposing this service to management, that is, making it possible for ordinary human beings to in some even basic manner configure a SIP Witch installation for this specific mission at minimum without hand editing config files, and the completion of packet forward integration in the daemon itself, are the only two features proposed for the Fedora 13 timeline.

Benefit to Fedora

Offering a means to create and deploy scalable, secure, and publicly controlled alternative to Skype architecture as well as secure VoIP solutions for workgroups and other entities using entirely free software and ANY standard's compliant SIP client, many of which are already packaged for Fedora.

Scope

What is already done:

  • sipwitch packaged for fedora
  • plugable architecture
  • server interfaces for statistics and running state
  • xml based configuration files
  • swig interfaces to server for perl and python.

What is minimally required:

  • sipwitch packet forward (0.6 release planned)
  • something basic to easily create a configuration file
  • documentation explaining how to use above

What is desired (maybe F14):

  • mysql or sqlite plugin to read local extension info from a database
  • call detail collection saved into said database
  • A more complete front-end which utilizes said database
  • A python tray application that can get server stats via xmlrpc
  • Documentation for setting up a site

How To Test

install sipwitch service

$ yum install sipwitch*

start the daemon (as root)

# /etc/init.d/sipwitch start

test registration

Configure test SIP client such as Twinkle...to be added....

test local calling

Dial extension number of test client. You should receive busy.

Dial an unknown extension number like 999. You should receive not found.

test domain configuration

Some instructions on domain setup...

Dial your email address as a uri. If reverse config is correct, you should get your call appearing as a new inbound call on the second line in Twinkle.

User Experience

If the sipwitch daemon crashes, all active calls still remain active. Since packet filtering is used to form proxy forward, even calls behind NAT will continue.

Dependencies

ucommon swig

Contingency Plan

Revert to current package, at minimum we should have sipwitch 0.6 by fedora13 which will have media proxy for NAT. It can also be bumped to Fedora14 ;).

Documentation

Existing documentation:

Release Notes

The initial release of SIP Witch Domain Telephony will allow you to create and deploy scalable secure VoIP solutions both for managing a local SIP based telephone system and to call remote users over the public Internet without the need of a service provider or central directory service. This offers the freedom to organize and communicate freely and securely, and also free as in cost, too!

Comments and Discussion