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.
This week we added an optional jitter buffer to the RTP stack that
you can turn on with a channel variable from your dialplan.
On an inbound call for use on the inbound channel:
(setting this before the call is answered is mandatory)
<action application="set" data="jitterbuffer_msec=180"/>
Or to set it on the subsequent outbound call:
export sets a variable on both the current channel and on
any channels it creates, the 'nolocal:' disables setting it on the
current channel and only sets it on the subsequent outbound channels
<action application="export" data="nolocal:jitterbuffer_msec=180"/>
<action application="bridge" data="firstname.lastname@example.org"/>
I recently read Roman Shaposhnik's blog entry about static linking:
We sure can relate to this here at the FreeSWITCH camp so I thought I’d chime in.
I can provide a different perspective to this whole issue. Our project (FreeSWITCH) has much of its own code as well as a hefty list of dependency libraries for various add-on modules. Now as Roman said in his article in a *perfect* world where there was only 1 operating system and one entity managing the exact same environment I could simply demand that you have these various libraries installed on your system to use our software.
Well, one day after announcing the ability to converse with an N800 over mod_dingaling we can now actually *run* freeswitch on the N800.
If you want to try it out here is a binary snapshot: http://www.freeswitch.org/downloads/n800/
We now have the initial interop complete for the Nokia N800 It can now be used to call mod_dingaling on FreeSWITCH.
There was a nice breakdown of several popular open source VoIP apps posted on digg.com Today. Check it out.
I just completed a new module called mod_shout.
Using mod_shout you can do the following:
- Record to an icecast stream anywhere you can normally record a file using a URL e.g. shout://login:email@example.com/mount.mp3
- Play a stream or remote file anywhere you can normally play a file with a URL e.g. shout://host.com/mount.mp3
- play and record .mp3 files to the local disk with the traditional file syntax e.g. local_file.mp3
It's hot off the press so it probably needs some testing so give it a shout ..err shot!
The FreeSWITCH™ IRC Channel can be accessed by connecting to irc.freenode.net and joining #freeswitch.
These are the applications that have been contributed by members of the FreeSWITCH™ community have donated back to the Asterisk community, where many of them originated from. Most of these modules were written by the head FreeSWITCH™ developer, Anthony.
Asterisk 1.2 Applications
app_dynagoto Dynamic goto. This will load a config off disk if its changed. Useful for larger installations where you load smaller bits of config when needed.
app_confcall [config] Multi-Feature conference application (rewrite of app_meetme)
For now we just have a link to the wiki page. I will embed it shortly to see how it looks. If it looks terrible then we keep the simple link to the wiki.
We had a chance to play around on an Amazon Elastic Compute Cloud so we checked out a copy of FreeSWITCH then compiled and ran a conference on it. And it WORKED!
Amazon's EC2 is a web platform the can expand it's computational power on-the-fly to meet the load required using a clustering technology.
It's good to know that our "bend, but don't break" philosophy is paying off!