More info about Linphone.
[tails-test.git] / wiki / src / blueprint / VoIP_support.mdwn
blob5cad22af81a40947a75e9c6c195291b25e1eb7dc
1 Ticket: [[!tails_ticket 5709]]
3 We need to find out how VoIP can be usable in the context of Tails.
5 Preliminary testing showed
6 [OnionCat](http://www.cypherpunk.at/onioncat/) +
7 [Mumble](http://mumble.sourceforge.net/) to be a working and
8 relatively easy to setup Tor-enabled VoIP solution; the 1/2s - 1s
9 delay is only slightly annoying.
11 As it was pointed out in the ["Adding voip to torchat"
12 thread](http://archives.seul.org/or/talk/Dec-2010/msg00143.html) on
13 or-talk, OnionCat before r555 provides no bidirectional
14 authentication: the caller
15 has (limited) certainty to be talking to the call receiver, but the
16 reverse is not true. So this shall be used in combination with zRTP or
17 similar, unless the new unidirectional mode is good enough.
19 [[!toc levels=2]]
21 Roadmap
22 =======
24 It looks like Linphone 3.5.1 or newer has everything Tails need, so it
25 would be good to test it (probably with OnionCat).
27 The new OnionCat unidirectional mode (default since r555) should be
28 tested for VoIP.
30 Technologies
31 ============
33 Encryption and authentication
34 -----------------------------
36 **Note**: these are relatively old notes that should be updated and
37 further researched.
39 On the UI side, something similar to Pidgin's OTR would be perfect.
41 ### DTLS + SRTP
43 - IETF chose DTLS+SRTP over zRTP
44 - a PKI is needed to authenticate peers :/
46 ### OTR
48 <http://google-opensource.blogspot.com/2009/09/sip-communicators-summer-of-code.html>
50 ### SRTP2 (SIPv4)
52 <http://tools.ietf.org/id/draft-kaplan-sip-four-oh-00.txt>
54 ### zRTP
56 User-friendly peer authentication with a voice-based "short
57 authentication string". How strong is this?
59 Conferencing
60 ------------
62 ### RFC 4353
64 [[!rfc 4353]]: three-peers SIP conferencing, using one of them as a
65 central mixer.
67 ### RFC 4575
69 [[!rfc 4575]]: N-peers SIP conference rooms, using one of the peers as
70 a central mixer. One can see who is saying what.
72 ### Mixer-to-client Audio Level Indication
74 - [Latest IETF draft](http://tools.ietf.org/html/draft-ivov-avt-slic-03)
75 as of 20110111.
77 A mechanism for RTP-level mixers in audio conferences to deliver
78 information about the audio level of the individual participants
79 => helps detecting where bad noise comes from.
81 VoIP software
82 =============
84 **Last updated**: 20121122
86 Ekiga
87 -----
89 - in Debian Squeeze and Wheezy
90 - supposed to support zRTP... some day:
91  * [their TODO item](https://bugzilla.gnome.org/show_bug.cgi?id=335594)
92  * [last
93    update](http://mail.gnome.org/archives/ekiga-devel-list/2009-April/msg00036.html)
94    as of 200904
95 - supports IPv6 in 3.3.x (Debian experimental only, as of 20121129)
96   but not before ([[!debbug 375056]], [upstream
97   bug](https://bugzilla.gnome.org/show_bug.cgi?id=331041))
99 Empathy
100 -------
102 - [homepage](http://live.gnome.org/Empathy)
103 - SIP account => insists to connect to SIP server => impossible to
104   setup a p2p voice call between onioncat IPv6 addresses, at least
105   without registering SIP accounts.
106 - cannot connect to a XMPP server running behind a hidden service (2.30.3-3)
107 - Link-local XMPP connection manager ([[!debpkg telepathy-salut]]
108   0.5.0-3) does not support voice calls
110 Jingle
111 ------
113 - [[!wikipedia Jingle (protocol) desc="wikipedia page"]]
114 - Google Talk's XMPP extension
116 Jitsi
117 -----
119 - (previously known as SIP Communicator)
120 - [homepage](http://jitsi.org/),  [[!wikipedia Jitsi desc="wikipedia page"]]
121 - LGPL, written in Java
122 - in Debian Jessie
123 - supports IPv6, SIP, XMPP
124 - supports zRTP for key negotiation, SRTP for voice encryption, and
125   TLS for signaling encryption
126 - supports audio SIP and XMPP conference calls; what conferencing protocol?
127 - supports OTR for text IM
128 - reported to work over Tor
129 - we're told it supports Jingle
131 Linphone
132 --------
134 - [homepage](http://www.linphone.org/), [[!wikipedia Linphone desc="wikipedia page"]]
135 - in Debian Wheezy
136 - supports SIP over TCP and TLS
137 - supports IPv6
138 - supports zRTP since version 3.5.1, but it's not enabled in the
139   Wheezy package ([[!debbug 671815]])
140 - test results: 5-10s lag but one of us was using a really bad
141   Internet connection
142 - [successfully
143   tested](https://www.whonix.org/forum/index.php/topic,407.msg3360.html#msg3360)
144   over OnionCat by Whonix folks; see the "Why OnionCat + Mumble - why
145   not just Mumble?" thread on tails-dev@ (August, 2014) for details.
146 - audio conferencing since 3.5.0
148 Mumble
149 ------
151 - [homepage](http://mumble.sourceforge.net/), [[!wikipedia
152   Mumble_(software) desc="wikipedia page"]]
153 - in Debian Squeeze
154 - primary engineering effort targeted at low-latency
155 - successfully tested in combination with OnionCat
156 - TLS and OCB-AES128; seems to depend on a PKI for peer authentication
157 - supports IPv6
158 - Tor project's (mttp and Phoul) [guide on using Mumble with
159   Tor](https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/Mumble)
161 SFLphone
162 --------
164 - [homepage](http://www.sflphone.org/), [[!wikipedia
165   SFLphone desc="wikipedia page"]]
166 - in Debian Squeeze and Wheezy
167 - SIP
168 - Multiple audio conferencing
169 - TLS and zRTP
170 - doesn't seem to support IPv6:
171   * [task #2863](https://projects.savoirfairelinux.com/issues/2863)
173 Twinkle
174 -------
176 - [homepage](http://www.twinklephone.com/)
177 - in Debian Squeeze but it has been **removed from Wheezy**: *ROM; dead
178   upstream, obsolete components (KDE3/ QT3/ libccrtp1)*.
179 - was included in Incognito
180 - supports SIP, zRTP and SRTP
181 - IPv6 is on the roadmap
182 - Qt application, but does not depend on KDE libs
183 - no release between 20090225 and 20110429 => asked on 20110510 for
184   their plans; no answer so far
185 - it's the [client advised by GNU Telephony](http://www.gnutelephony.org/index.php/Secure_Call)
187 Zfone
188 -----
190 - [homepage](http://zfone.com/)
191 - allows to use zRTP on other VoIP software
192 - supposed to work with Ekiga
193 - some packages in Debian: libzrtpcpp-1.6-0, is that enough?
194 - last release was a public beta, out in March 2009
195 - license seems inadequate: according to [[!wikipedia Zfone]],
196   "only the libZRTP SDK libraries are provided under the AGPL. The
197   parts of Zfone that are not part of the libZRTP SDK libraries are
198   not licensed under the AGPL or any other open source license.
199   Although the source code of those components is published for peer
200   review, they remain proprietary. The Zfone proprietary license also
201   contains a time bomb provision."
203 homebrew
204 --------
206 - [setting up a phone line by using TOR hidden services](http://pastebin.com/raw.php?i=YBQ9vLZk)
208 Resources
209 =========
211 * [VoIP software comparison](https://wiki.debian.org/UnifiedCommunications/ClientSoftwareComparison)
212   on the Debian wiki.
213 * The [SIP clients page](https://we.riseup.net/debian/sip-clients) on
214   Riseup's Debian Grimoire.
215 * [[!tor_bug 5700]]: Make/modify VoIP applications to work better on
216   Tor
217 * [[!tor_bug 5699]]: Make Tor able to handle VoIP applications people
218   already want to use
219 * [Whonix about Voip](https://www.whonix.org/wiki/Voip)