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.
You may recall that Twilio launched a "Roll-Your-Own Google Voice" campaign a while back. They took the open-source Asterisk PBX and merged it with their proprietary cloud platform to create a powerful cloud-based communications software platform with handy APIs and a slick interface. This generated a fair amount of buzz, however the costs involved (up to $0.06/minute or more) were a barrier to entry for some. Additionally, the service doesn't offer the ability to use SIP directly. Voxeo also offers a full-featured, cloud-based telecom platform with its Tropo service.
Tropo and Twilio are great services indeed. But wouldn't it be nice if there was a 100% FOSS offering that made use of FreeSWITCH? As of today there is! The gang over at the 2600hz project have released an offering they've dubbed "Whistle." It is a truly open cloud-based platform that has many features, among which are native SIP support, service configuration, and much more. Whistle leverages the power of open source: FreeSWITCH, CouchDB, RabbitMQ, Erlang. The result is a platform that can run in the cloud or on your own servers - or both. It allows you to tap into FreeSWITCH's powerful event-driven subsystems across multiple deployments of FreeSWITCH and connect those events to API-driven software, all while distributing components and servers anywhere across the Web.
The 2600hz team has evidently been busy. Not only have they produced this software, they have full API documentation on the Whistle system as well as a RESTful abstraction layer called Crossbar. They also have an automated installer that you can use if you wish to avoid the complicated manual install process. They've even built a new website with udpated blue.box documentation. All of this is released under the same OSI-approved license (MPL 1.1) that FreeSWITCH uses.
The FreeSWITCH team is happy to see others taking this soft-switch and putting it to creative use. The Whistle platform is a great example of what FreeSWITCH - and indeed all open source software - is capable of producing. It is amazing to think that just six years ago, Anthony Minessale was staring into that empty text editor, contemplating how to build a telephony engine. In just a few years, FreeSWITCH has gone from an idea to a best-of-breed software library. Like the Hemi that moves a large truck, FreeSWITCH is the VoIP engine in a growing array of products: CudaTel, Ooma, and now Whistle.
The future of open source telephony is looking good!
We have good news about FreeSWITCH: our community is growing leaps and bounds! The reason we know this is because each day we have new ones coming in and asking lots of questions. Additionally, not-so-new users are also asking lots of good questions about how to put FreeSWITCH to good use in various scenarios. However, we are finding that we just don't have enough hours in the day to help everyone. This is a good problem to have - it means that FreeSWITCH is growing beyond being the best-kept secret in open source telephony.
So, how can you help? We have several ways of helping new ones. First and foremost we have our documentation resources: the wiki and the FreeSWITCH book. (We are also slaving away on the FreeSWITCH Cookbook, but that's another story...) We are constantly in need of having our community members update the wiki. The FreeSWITCH developers are constantly adding new features. For example, see the agenda for this week's conference call - all those features were added within the past 3+ weeks, and that's not even the whole of it! As you can see, we have a real need for community members to donate time and energy in keeping our documentation updated.
Secondly, we have direct contact within our community. We have two main ways of keeping in contact: via the mailing list and by gathering together in the IRC channel. We also have the weekly conference call. The most important thing that you can do to help the community is to participate in these venues. Our two most pressing needs are: answering questions to the mailing list and answering questions in IRC. This is where your help is needed most and is also where you can have an immediate impact. If you are not subscribed to the freeswitch-users list then please join today. You don't have to read every message, but we encourage you to scan the subject lines looking for threads where you can help out. Likewise, if you have not joined IRC, please do so. Join irc.freenode.net and register a nickname, then come into #freeswitch. Set your IRC client to beep at you when certain key words are mentioned. For example, if you have experience with the event socket library, tell your IRC client to beep whenever "ESL" is mentioned in the channel. You can then scan the conversation and possibly offer your expertise.
If you look back at how you learned FreeSWITCH I think you'll have fond memories of how people helped you figure things out. I know I do. I first started asking lots of question when OpenZAP appeared in the summer of 2007. Anthony, Brian, and Mike all gave me individual attention. Even though the project has grown immensely over the past four years, they still give individual attention. But we all know that they cannot spend all day answering questions and still have time build a great project. Let's all give back by paying it forward. Pick one or more facets of the community and jump in. Even if you don't know very much you still know more than those who are just getting started. It is never too early start helping others.
Thank you to all who work to make FreeSWITCH such a great project and community. Thank you as well to all of those who read this and decide to give back by helping others. You are the ones who make open source software so rewarding.
SafiSystems has just announced that their Safi Communications Suite 1.5.5beta now has preliminary support for FreeSWITCH. Community members are encouraged to download and test drive this new version.
Safi Communications Suite (SCS) is described as "a powerful multi-platform IVR (Interactive Voice Response), call-flow, and scripting environment." Included is the SafiWorkshop IDE - a tool that allows users to "design, test, debug and deploy advanced logic and call routing applications from a single, unified development environment." SCS and the SafiWorkshop are available for free from the SafiSystems download page.
Thank you to SafiSystems for helping to grow the open source telephony environment!
After countless attempts at stability, the FreeSWICH Team has decided the only way to ensure the proper operation of FreeSWITCH is to include libc 4.1.11 and kernel 18.104.22.168 into the git repository. "Previousy, we have been plagued with countless unknowns on various distros. Now we can be sure FreeSWITCH runs properly and efficiently," says lead developer Anthony Minessale. He adds: "The decision was easy, the hard part will be porting them to Win64 but we're up for the challenge." Brian West was thrilled with the idea and is already working the new design into his mod_NEXT!! application designed to quickly hangup on clueless callers. The team hopes to have the adjustment complete in time for ClueCon 2011.
FreeSWITCH has been around for about 6 years now and this new move will be the most signifigant since the hamster wheel driven timer module designed to keep accurate asyncronous RTP timing through a series of electrodes fitted onto several peices of rodent execercise equipment.
As the video below mentions, it is indeed ClueCon season! We invite all to visit our redesigned ClueCon web site and get registered right away. We will be holding this year's conference at the Sofitel in downtown Chicago, August 9-11. Those staying at the hotel will enjoy a $300 discount off of their conference admission! We have a negotiated a fantastic rate of $155 per night.
On another note, we are also accepting new sponsors as well as proposals for speaking topics. If you would like to speak at ClueCon 2011 then please send your proposal to firstname.lastname@example.org. Keep in mind that our audience enjoys more technical presentations, so don't be afraid to really talk tech!
Looking forward to seeing you all again this August!
The FreeSWITCH team would like to announce that mod_ladspa has been added to FreeSWITCH. You may not be familiar with LADSPA, but no doubt you have heard some songs on the radio where the singer's voice is "autotuned" so that it stays on key or has a slightly techno/robotic sound. The new mod_ladspa module allows you to do this with FreeSWITCH.
How Does It Work?
First, as the L in LADSPA implies, you'll need to be on a Linux system. Secondly, you'll need to update to the latest Git HEAD as of late Thursday March 17, 2011. Finally, you'll need to install LADSPA and get at least one LADSPA plugin. The FreeSWITCH wiki has a page with instructions for CentOS 32 and 64 bit installation. There is a sample dialplan file, 00_ladspa.xml, the gets placed into the conf/dialplan/default/ directory and creates a test extension 101. Change that destination from the FreeSWITCH conference to a local extension, or better, to your friends' phone numbers so you can surprise (or scare) them with your Cher-like singing ability.
There are a lot of different things you can do with a voice stream. After following the instructions on the wiki you will have quite a number of LADSPA plugins to try if. Please report back to us with any interesting uses to which you put this module. Better yet, if you find a truly practical application then please let us know so that we can share with others.
Once again, quickly and easily adding a module like mod_ladspa demonstrates just how extensible FreeSWITCH truly is. Let's all thank Anthony Minessale and the rest of the FreeSWITCH development team for all their hard work to make such a wonderful project possible.
This article from Network World just came across my desk. It's a reminder that those of us who use VoIP - and especially those who run public-facing VoIP servers - must keep security in mind.
One thing that stood out is that malicious entities are using cloud-based computing resources to engage in brute-force password attacks. This is a good reminder not to have really simple authorization passwords in your XML directory. If you are using static XML then you have a simple tool to assist: randomize_passwords.pl - a script that will randomize the SIP auth password and/or the VM login password. The script is found in scripts/perl/ under the FreeSWITCH source directory. It is very easy to use and has a number of options. Launch the script with -h to see the various command line arguments.
Also helpful in mitigating attacks is the use of a utility like fail2ban. The fail2ban wiki page has good information about how to set this up on your Linux/Unix based system. In conjunction with iptables, this tool helps you keep malicious attackers from overwhelming your system.
What else are you doing to protect your systems? Please add your comments below.