Enterprise-grade SIP coming to Telepathy

I've just announced the reSIProcate connection manager for the Telepathy framework on the Linux desktop.

As the announcement states, it is still a proof-of-concept. It was put together very rapidly just to see how well the reSIProcate project and its build system interacts with TelepathyQt, the Qt framework and DBus.

That said, I've been able to make calls from GNOME Empathy to Jitsi, Lumicall and Asterisk.

Why this is important

Telepathy is the default communications framework installed on many Linux desktops. Yet none of the standard connection managers offers thorough support for NAT traversal. NAT traversal is essential for calling people who are not on the same LAN, whether it is just making a call across town or across the world. The XMPP connection manager offers limited support for NAT traversal if one party in the call is using a Google account, but with Google deprecating XMPP support and not everybody wanting to use Google anyway, that is not a stable foundation for free operating systems.

The reSIProcate solution

TURN is the standard (RFC 5766) for relaying media streams when two users want to communicate across the boundaries of NAT networks. There are several TURN servers packaged on Linux now. TURN has also been adopted for WebRTC, so it is a good foundation to build on.

reSIProcate's reCon library provides a high-level telephony API supporting TURN as well as DTLS-SRTP encryption and many other enterprise-grade features.

It also has thorough support for things like DNS NAPTR and SRV records, so you can just put in your SIP address and password and it can discover the correct SIP server, port number and transport protocol from DNS queries. This helps solve another common problem, the complexity of configuring some other softphones.


A SIP buddy list isn't supported yet:

We have to use the Empathy menu to start calls (New Call...) or access account settings:

The account settings are very simple. Everything can be discovered using NAPTR and SRV queries, saving the user typing. For now, the TURN server is entered manually but that can also be discovered using an SRV query.

Placing a call from my fedrtc.org Fedora SIP account to my debian.org SIP account:

Project status and direction

More work is required to make this connection manager fully functional. It is available now for testing against other products and to get feedback about how the design should evolve.