Merge remote-tracking branch 'origin/master' into feature/better_task_manager
[besstails.git] / wiki / src / todo / VoIP_support.mdwn
blob8e80203f1d569db6abaec99965ff34b395bd4f05
1 [[!tag todo/easy]]
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 [[!taglink todo/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 - not in Debian, but trying to ([[!debbug 627362 desc="ITP"]],
123   [[!debbug 695588 desc="RFS"]]); they ship binary Debian packages.
124   The binary packages used to bundle more than 100 JAR files which
125   probably made packaging it for Debian a nightmare, but apparently
126   things are different nowadays. [Packaging
127   source](http://java.net/projects/jitsi/sources/svn/show/trunk/resources/install/debian)
128   is available.
129 - supports IPv6, SIP, XMPP
130 - supports zRTP for key negotiation, SRTP for voice encryption, and
131   TLS for signaling encryption
132 - supports audio SIP and XMPP conference calls; what conferencing protocol?
133 - supports OTR for text IM
134 - reported to work over Tor
136 Linphone
137 --------
139 - [homepage](http://www.linphone.org/), [[!wikipedia Linphone desc="wikipedia page"]]
140 - in Debian Squeeze and Wheezy
141 - supports SIP over TCP and TLS
142 - supports IPv6
143 - supports zRTP since version 3.5.1. Unfortunately, this is only available in
144   Debian experimental at the moment, see [[!debbug 671815]].
145 - test results: 5-10s lag but one of us was using a really bad
146   Internet connection
147 - audio conferencing since 3.5.0
149 Mumble
150 ------
152 - [homepage](http://mumble.sourceforge.net/), [[!wikipedia
153   Mumble_(software) desc="wikipedia page"]]
154 - in Debian Squeeze
155 - primary engineering effort targeted at low-latency
156 - successfully tested in combination with OnionCat
157 - TLS and OCB-AES128; seems to depend on a PKI for peer authentication
158 - supports IPv6
160 SFLphone
161 --------
163 - [homepage](http://www.sflphone.org/), [[!wikipedia
164   SFLphone desc="wikipedia page"]]
165 - in Debian Squeeze and Wheezy
166 - SIP
167 - Multiple audio conferencing
168 - TLS and zRTP
169 - doesn't seem to support IPv6:
170   * [task #2863](https://projects.savoirfairelinux.com/issues/2863)
172 Twinkle
173 -------
175 - [homepage](http://www.twinklephone.com/)
176 - in Debian Squeeze but it has been **removed from Wheezy**: *ROM; dead
177   upstream, obsolete components (KDE3/ QT3/ libccrtp1)*.
178 - was included in Incognito
179 - supports SIP, zRTP and SRTP
180 - IPv6 is on the roadmap
181 - Qt application, but does not depend on KDE libs
182 - no release between 20090225 and 20110429 => asked on 20110510 for
183   their plans; no answer so far
184 - it's the [client advised by GNU Telephony](http://www.gnutelephony.org/index.php/Secure_Call)
186 Zfone
187 -----
189 - [homepage](http://zfone.com/)
190 - allows to use zRTP on other VoIP software
191 - supposed to work with Ekiga
192 - some packages in Debian: libzrtpcpp-1.6-0, is that enough?
193 - last release was a public beta, out in March 2009
194 - license seems inadequate: according to [[!wikipedia Zfone]],
195   "only the libZRTP SDK libraries are provided under the AGPL. The
196   parts of Zfone that are not part of the libZRTP SDK libraries are
197   not licensed under the AGPL or any other open source license.
198   Although the source code of those components is published for peer
199   review, they remain proprietary. The Zfone proprietary license also
200   contains a time bomb provision."
202 homebrew
203 --------
205 - [setting up a phone line by using TOR hidden services](http://pastebin.com/raw.php?i=YBQ9vLZk)
207 Resources
208 =========
210 * The [SIP clients page](https://we.riseup.net/debian/sip-clients) on
211   Riseup's Debian Grimoire.
212 * [[!tor_bug 5700]]: Make/modify VoIP applications to work better on
213   Tor
214 * [[!tor_bug 5699]]: Make Tor able to handle VoIP applications people
215   already want to use
216 * [Whonix about Voip](https://sourceforge.net/p/whonix/wiki/Voip/)
218 [[!tag priority/normal]]