

How to run your own open source Skype replacement - agranig
http://www.sipwise.com/news/technical/byov-skype-replacement/

======
paulirish
Alternatively throw up an instance of apprtc[1], which is a few hundred lines
of JS using the new WebRTC APIs. NAT traversal, background noise reduction,
gain boosting, bandwidth adaptation all come for free.

[1] <http://apprtc.appspot.com/> [2] source: [http://code.google.com/p/webrtc-
samples/source/browse/trunk/...](http://code.google.com/p/webrtc-
samples/source/browse/trunk/apprtc/)

------
trotsky
the idea that it's a skype replacement while simultaneously warning the reader
about avoiding NAT is funny, 50% of the skype secret sauce is the NAT
traversal.

~~~
emillon
> 50% of the skype secret sauce is the NAT traversal

And the other 50% is the network effect.

~~~
agranig
The real secret sauce is their dead-simple way to sign up and use the client.
As you can see in the post, the setup process with the Jitsi client is still a
bit awkward, because it is supposed to be a provider-agnostic multi-protocol
client. There is still a huge potential in stream-lining this process to get a
broad end-user adoption. Flexibility really isn't key in this case, rather
than proper UX.

------
againandagain
I applaud this effort. Jitsi is nothing new and predates all the Skype hype.
My guess is it may even be true "end to end," i.e. it relies on no third party
"service" that Joe User would find a little too much hassle to run himself,
such as XMPP (or even SIP, for that matter).

But the first problem I have with Jitsi is that the source is still not open.
Looking at current website you have to be a "project member".

It's Java-based, right? I want to see that code. If the solution I'm using is
less than a few hundred lines of C (quite manageable for any security
analysis), why should I blindly (i.e. without seeing the code) switch to
Jitsi?

These p2p threads are continually entertaining because they prove time and
again how many people still think NAT traversal is some sort of "magic"
requiring special expertise (e.g., that only Skype or some other private
company has).

That might just be a myth.

Example: Proving a negative. If I can't find a piece of code to do some task
does that mean it does not exist? Maybe I just can't find it?

agranig himself mentions a couple of things that are in wide use but "little
known". Not every solution is going to be widely known. That does not mean
such solutions do not exist.

re: p2p stuff

Read the code before you read the marketing copy.

~~~
agranig
Doing a simple " svn co <https://svn.java.net/svn/jitsi~svn/trunk> jitsi"
works perfectly fine for me. Same with the source snapshots at
<https://download.jitsi.org/jitsi/nightly/src/> . We also had no issues
getting our bugfixes into their upstream while we did all the testing. I was
wondering about the "observer/member" thing they mention on the website as
well, doesn't seem to be relevant though.

~~~
againandagain
Cool. I will have a look then. Thanks again for the tutorials and fixing Jitsi
bugs. This is definitely a step in the right direction for moving beyond
Skype. Great to see it.

------
zobzu
note that it's just advertisement for a free+commercial solution based on
Asterisk (<http://www.asterisk.org/>)

It makes the setup and maintenance easy, basically.

Personally I use Asterisk with all the standard SIP clients (CSIPSimple on
Android for example)

~~~
agranig
The only thing Asterisk does in our system is acting as a voicemail server.

------
shmerl
Why make it particularly SIP and not for example Jingle based? And there is no
need to build anything. Just use regular XMPP servers infrastructure. Security
can be achieved with ZRTP and OTR, though current implementation of secure
XMPP/Jingle clients is still lacking.

------
Quequau
I have a Skype-in regular phone number. I did not see how to set that up and
without some sort of local number availability, for me at least, this is no
"Skype Replacement"

~~~
agranig
There is a "next steps" section at the bottom of the post pointing this out.
You can check the handbook at
[http://www.sipwise.com/doc/2.6/spce/ar01s04.html#_creating_p...](http://www.sipwise.com/doc/2.6/spce/ar01s04.html#_creating_peerings)
to learn how to do it.

------
kennu
A bit bold to talk about running your own server to replace Skype. You'd need
to get 32 million users to switch over.

~~~
lvh
Given this quote:

In this post, we attempt to build a free, secure, SIP based communication
system to provide encrypted voice and video communication, buddy lists,
instant messaging, presence and remote desktop sharing/control on a self-
hosted system.

I think they mean "in the context of a few private users using skype to
communicate with each other", such as a startup or maybe even a tech-happy
family.

~~~
agranig
One of our customers serves north of 1 mio overall provisioned subscribers on
two servers with this software, so it's quite scaleable vertically already.
It's easier when UDP is used though, because with TLS things add up quite
quickly.

To go big, we've horizontal scaling mechanisms using subscriber partitioning
by load-balancing SIP and provisioning requests over multiple pairs of such
servers (usually placed in blade-center servers).

The key here is to keep as much CPU heavy things like media relaying end-to-
end where possible, because the signaling part is pretty light-weight in SIP.
To scale out and keep reliability up while keeping complexity low, we have a
shared-nothing approach wherever possible. Works well for us.

------
JSadowski
I think that the most likely thing to disrupt Skype is going to be WebRTC and
getUserMedia/PeerConnection.

------
Egregore
What about android clients for this?

~~~
agranig
The Jitsi guys are currently working on an Android version, let's see what
comes out of that.

In general, the reason for the slow adoption of SIP beyond just pure voice
telephony is that the SIP/SIMPLE standard with its companions for buddy lists
etc. is really crappy, and as a result so are most clients (or the
interoperability between them). It doesn't make it better that the mobile
device/equipment vendors forked off their own OMA standards, so the situation
is pretty bad in that regards.

I still don't give up all hopes to see a proper Android/IOS SIP client
supporting voice, video presence etc. while at the same time adhering to the
standards.

------
wensheng
It appears to be based on Asterisk, with Mysql and Apache.

~~~
agranig
The real work-horses are actually Kamailio and Sems, which are quite little
known but power a LOT of your ISPs' VoIP systems.

Provisioning is built on top of Apache/Perl/Catalyst with a MySQL backend. The
billing system is in C and Perl, and the Media Relay is in C with an own
kernel module on top of iptables.

Asterisk is pretty insignificant, but it's surely the best known part in the
VoIP world.

~~~
wensheng
Thank for the info.

Have you considered of using Freeswitch to replace Asterisk and maybe even
your own media relay module?

