Hacker News new | ask | show | jobs
by jsgoecke 5660 days ago
Yes, to date Twilio has used Asterisk along with OpenSER. Asterisk has its place, as I was personally involved in Adhearsion (http://adhearsion.com) and now Voxeo Labs sponsors the project. The place for Asterisk today is not for providing large scale distributed telephony services. Simply the wrong tool for that, which Twilio has learned the hard way.

This is why Digium has created a new project: Asterisk Scalable Communications Framework (SCF - http://www.asterisk.org/asterisk/scf). Although Asterisk SCF is still in prototype stage and 12-18 months from a fully baked alpha. An interesting approach, but not here yet.

Folks from Twilio have confirmed they are trying to move away from Asterisk, I suspect to Freeswitch. While Freeswitch has better scale, it suffers from some of the same fundamental architectural issues Asterisk has for large distributed telephony applications.

Full disclosure, I am the VP of Innovation at Voxeo Labs, the group responsible for Tropo. Further, I was invited by Digium and attended their closed discussion and launch of the Asterisk SCF platform in Huntsville last spring.

1 comments

>Simply the wrong tool for that, which Twilio has learned the hard way.

Citation from something they said, or just deducting this the same way I did? (experience with Asterisk...)

>While Freeswitch has better scale, it suffers from some of the same fundamental architectural issues Asterisk has for large distributed telephony applications.

What are the same 'fundamental' architectural issues? They've seem to taken quite a different approach, or do you just feel C is the wrong way to go for a highly concurrent, scalable system?

Well, I shared a taxi from Astricon to the airport in Phoenix in 2009 with two founders of Twilio. This was after their presentation on Asterisk at Astricon:

http://www.slideshare.net/twilio/reinventing-the-dialplan-sl...

Plus they have said publicly in other places that they built upon Asterisk.

As for Freeswitch. It is a great platform. Both Freeswitch and Asterisk may be made to scale, but it is not trivial and takes a fair amount of time and resources to do so and then to maintain over time. The issue for both of them is that the applications and media services tend to run in the same process. Digium's answer to this is SCF which is now under active development.

The approach we take (and others like Oracle, JBoss, Avaya, etc) is to deploy apps in SIP Servlet containers (Java) and your media in dedicated media servers (C/C++ for example). Employing a clear demarcation between application logic and media processing using MRCP (http://bit.ly/32Bnpu) between them.

Now, of course Freeswitch does have 'Mod unimrcp' (http://bit.ly/hmqvdq) which may be used to talk to our media servers (http://bit.ly/f9lUH3) and turn Freeswitch into an application platform. But when most people think of Freeswitch, they think of the equivalent of Asterisk and deploy that way.

>The approach we take (and others like Oracle, JBoss, Avaya, etc) is to deploy apps in SIP Servlet containers (Java) and your media in dedicated media servers (C/C++ for example).

Which makes sense for IVR or other media heavy applications. However, Twilio seems to get a lot of people using it for call tracking and click to call...shouldn't touch a media server unless (and I have heard of people doing this) they use media to conference two people....

But, perhaps those aren't the kinds of applications leading to scaling problems...

I can not speak to the use of conferencing for that scenario.

But, if you are allowing flow to happen after you have dialed a user in Asterisk ('g' option on the Dial command in Asterisk - http://bit.ly/575c6) and the dialed party hangs up, I believe you must be in the media stream.