Welcome To FreeSWITCH
The World's First Cross-Platform Scalable FREE Multi-Protocol Soft Switch
FreeSWITCH is a scalable open source cross-platform telephony platform designed to route and interconnect popular communication protocols using audio, video, text or any other form of media. It was created in 2006 to fill the void left by proprietary commercial solutions. FreeSWITCH also provides a stable telephony platform on which many telephony applications can be developed using a wide range of free tools.
FreeSWITCH was originally designed and implemented by Anthony Minessale with the help of Brian West and Michael Jerris. All 3 are former developers of the popular Asterisk open source PBX. The project was initiated to focus on several design goals including modularity, cross-platform support, scalability and stability. Today, many more developers and users contribute to the project on a daily basis.
We support various communication technologies such as Skype, SIP, H.323 and GoogleTalk making it easy to interface with other open source PBX systems such as sipXecs, Call Weaver, Bayonne, YATE or Asterisk.
FreeSWITCH supports many advanced SIP features such as presence/BLF/SLA as well as TCP TLS and sRTP. It also can be used as a transparent proxy with and without media in the path to act as a SBC (session border controller) and proxy T.38 and other end to end protocols.
FreeSWITCH supports both wide and narrow band codecs making it an ideal solution to bridge legacy devices to the future. The voice channels and the conference bridge module all can operate at 8, 12, 16, 24, 32 or 48 kilohertz and can bridge channels of different rates. The G.729 codec is also available under a commercial license.
FreeSWITCH builds natively and runs standalone on several operating systems including Windows, Max OS X, Linux, BSD and Solaris on both 32 and 64 bit platforms.
FreeSWITCH supports FAX, both over audio and T.38, and can gateway between the two.
Our developers are heavily involved in open source and have donated code and other resources to other telephony projects including openSER, sipXecs, The Asterisk Open Source PBX and Call Weaver.
a Spec Sheet is available on our Wiki.
Oops. Skype went down today and is slowly coming back up. FierceTelecom has a story with a few tidbits. One interesting phenomenon is that all the Skypers who complained via Twitter probably caused the "Fail Whale" to rear its ugly head more than usual.
Our friends at gigaom have a story up about why Skype's response was not good enough. I tend to agree with Om Malik in principle - namely that Skype has become very important for consumers and businesses both and therefore outages are painful - however I don't know that I consider this particular outage to be as horrible as he does. Yes, it's annoying. Yes, it impacts business. No, my life does not end because Skype has a hiccup. In any event, having 2+ years without a serious outage is rather impressive. If the Skype guys can improve their network of "supernodes" and "mega-supernodes" to improve reliability then something good may even come of this. It may also cause those businesses who rely solely on Skype to consider other types of redundancy.
Of course, one man's tragedy is another man's triumph. This situation has caused a surge in "Skype alternatives" articles being highlighted around the blogosphere. Here is one that suggests six alternatives to Skype.
The FreeSWITCH team is pleased to announce that the official FreeSWITCH training classes will continue in 2011! We are going international this year, with trainings in Australia, Brazil, and France. The announced dates and locations are:
* Mascot, Sydney, Australia - January 17-19, 2011
* San Francisco, CA, USA - March 9-11, 2011
* Dallas, TX, USA - May 11-13, 2011
The official schedule and enrollment information can be found on the VoIPKB site. A special thanks goes out to Darren Schreiber, co-author of the FreeSWITCH book, and his team over at the 2600hz Project.
Suretec recently got approval from Ofcom, the U.K. communications regulator, to assign U.K. telephone numbers. Therefore, SureVoIP can assign phone numbers across the United Kingdom and Northern Ireland. The company is also authorised to supply global numbers for over 60 countries.
This is unique in the Scottish market, because other companies act as "middle-men" between clients and service providers.
SureVoIP is partnering with British Telecom (BT) through a VoIP Interconnect to offer clients added benefits. SureVoIP has also partnered with Xconnect on their Global Alliance program, as well as two other U.K. VoIP carriers.
SureVoIP also provides 24/7 emergency telephone support.
Gavin Henry, managing director of SureVoIP, and founding member of the Suretec Group, said, "Our journey to securing the approval from Ofcom has been long and complex, involving the submission of detailed business plans, demonstrating an in-depth knowledge of the Communications Act 2003, various legal requirements, help from ITSPA (we've worked so hard that we will soon be getting the ITSPA Quality Mark), documentation and a significant investment in equipment throughout the U.K. With out FreeSWITCH and the FreeSWITCH community this would not have been possible."
"Our position as an Ofcom regulated service provider will make us a preferred supplier, as we are ideally placed to offer a holistic and competitive service to clients within the North-east of Scotland and beyond," Henry said. "The applications of VoIP technology are clear and we see it being of particular interest to the oil and gas, shipping, legal and financial industries as they need to make international, reliable and cost effective communications as a basic function."
"FreeSWITCH has been instrumental in passing interoperability testing with all carriers and especially BT. It's scales so well that our hardware usage is kept to the minimum needed to power our reliable and fault tolerant core platform. We also use FreeSWITCH and FusionPBX to power our hosted platforms, oh and let's not forget OpenSIPS and PostgreSQL."
"We're all about Open Source software and it's no secret that millions of customers and consumers worldwide benefit from projects like FreeSWITCH, even if they don't know it. The community behind FreeSWITCH is always so responsive. The IRC channel is brilliant, the mailing list is brilliant as is the commercial support available from the project team, which is also second to none. It's actually quite hard to fault the project at all", says Gavin Henry.
Established in Scotland in 2003, the Suretec Group specializes in open source IT support and consultancy, open source telecoms and training in open source software. SureVoIP is the fourth division within the group, which also includes Suretec Systems, Suretec Telecoms and Suretec Training.
Those of you who were fortunate enough to attend ClueCon in 2009 may recall that our friend Kristian Kielhofner gave an interesting presentation on a little project that he calls Recqual. (Video available here.) I've had that in the back of my mind for some time but I've never really done much with it. Recently someone asked about using Recqual with FreeSWITCH and I thought it would be a simple matter to do. It turns out that it is not simple, but certainly is not impossible. I just needed a nudge in the right direction from Kristian. While the existing Recqual scripts are geared 100% toward Asterisk I realized that this was not really an issue. The most important thing is to understand the heart and soul of Recqual: Ecasound.
Ecasound is, as Kristian puts it, "like SoX on steroids, HGH, caffeine" and otherwise turbo-charged. Ecasound is a very powerful utility that allows for some very creative sound file processing. It operates on the notion of "chains" which are like proverbial audio cables. You have an input file with pipes audio through a series of one or more chains and finally to an output file. (Ecasound can also process to/from actual audio devices as well.) I looked through Krisitian's scripts and found these two lines:
nice -n21 ecasound -q -efb:1004,1 -ge:11,9,,-1 -f:s16_le,1,8000 -i:$k -f:s16_le,1,8000 -o:$POUT/$k
nice -n21 ecasound -q -efb:2500,1 -ge:11,9,,-1 -f:s16_le,1,8000 -i:$l -f:s16_le,1,8000 -o:$POUT/$l
I can see that ecasound is reading from a recorded file, passing it through SOMETHING and writing out to a new file. Elsewhere I recalled Kristian talking about sending tones in each direction. After further review I see that one leg of the call sends out a 1004 Hz tone and the other leg sends a 2500 Hz tone. So the above lines are simply testing each direction of the call. What, though is being tested? I noticed that Recqual does a check with this code:
for m in `find $POUT -size -"$ESIZE" | grep wav`; do
echo "$m does not pass size consistency check, flagging for manual analysis"
# Save the whole (original file) to output dir
mv $IDIR/$DFILE $BOUT/$DFILE
After a bit of poking around I was able to decipher the methodology. The calls to ecasound send the input audio through a "gate" and a "bandpass filter" to prevent certain parts of the audio stream from being written to the output file. In theory, if the call is "good" then virtually no audio will be excluded. Under what circumstances will audio be excluded? In two specific cases: the frequency is outside of the bandpass range or the volume drops too low. The bandpass filter is set up with this argument to ecasound:
This creates a filter 1 Hz wide whose center is 1004 Hz. In other words, it will only allow audio to pass through if it is between 1003.5 Hz and 1004.5 Hz. (Hence the name "bandpass" filter - only audio within the band will pass through.) The other direction has the filter at 2500 Hz. This accounts for the frequency of the sound passing through. What about the volume? Note this argument to ecasound:
According to the ecasound man page, this creates an audio "threshold gate." The gate is always closed at the start of analysis. The first argument (11) is the "open threshold," i.e. the volume needs to meet in order to open the gate. The second argument (9) is the "close threshold." If the volume drops below the close threshold then the gate closes and audio does not pass. The third argument, which is empty, determines the method for determining volume. Left blank it means use peak average volume, or it can be set to "rms" to use root-mean squared method. The last argument (-1) is the "re-open count." This determines how many times to re-open the gate after it has been closed. A negative number means to re-open the gate immediately. What I don't know from reading the documentation is how long the gate stays closed. At this point I'm assuming it stays closed for the current sample be analyzed and opens up for the next one. I welcome input from anyone who has any specific knowledge on this.
Now that I made it this far I felt comfortable doing some really simple tests. I installed ecasound on one of my FreeSWITCH boxes and did some simple test calls. I generated a 60 second 1004 Hz tone like this:
<action application="playback" data="tone_stream://%(1000,0,1004);loops=60"/>
I recorded the call and ran it through ecasound with this command line:
ecasound -q -efb:1004,1 -ge:11,9,,-1 -f:s16_le,1,8000 -i:tmp.wav -f:s16_le,1,8000 -o:done.wav
Where tmp.wav is the file I recorded on FreeSWITCH and done.wav is the output file from ecasound. I compared the sizes of the files and they were really close:
ls -l *wav
-rw-r--r-- 1 root root 955628 Nov 10 17:37 done.wav
-rw-r--r-- 1 root root 959724 Nov 10 17:34 tmp.wav
So now I have the basic pieces to start building a more complete solution. Recqual has lots of features, like automation, wav2png, and even HTML reporting. I would like to see all of these made available to FreeSWITCH users. If you would like to help out with this please contact me or Kristian and we will gladly put you to work!
Here is a nice article about open source VoIP that you might enjoy. It's written by Frederic Dickey, Director of Marketing and Product Management at Sangoma. This is a good article that you might want to give to someone who is contemplating a transition to VoIP, and especially an open source VoIP solution.
Thanks to our friends at Sangoma for promoting open source VoIP and supporting us with FreeSWITCH, FreeTDM, and ClueCon.
The FreeSWITCH team would like to announce that our resident Windows build expert, Jeff Lenk, has completed the necessary work that will allow us to provide FreeSWITCH Windows binaries, updated each weekend. The files can be found on files.freeswitch.org:
These are standard Windows .msi installer files. If you try them out and run into any issues please open a Jira ticket (jira.freeswitch.org) and assign to user jlenk.
Thanks again to Jeff Lenk for all of his diligent efforts to make sure that our Windows users have a working FreeSWITCH. The weekly binary installers will certainly make life easier for those wishing to try FreeSWITCH on Windows.