FreeSWITCH
From Wikipbx
Contents |
About FreeSWITCH
As a great backgrounder on why the FreeSWITCH project was started in the first place, see An Interview with the Creator of FreeSWITCH - O'Reilly Emerging Telephony.
Why WikiPBX is based on FreeSWITCH
Clean codebase and design
FreeSWITCH was written from scratch to keep the codebase as small, lean and modular as possible. The codebase is also extremely consistent. For example, the ability to play an MP3 file from a URL is provided by a particular module (mod_shout), and once this module is plugged in, MP3's can be played from anywhere in the application: from the dialplan, from IVR scripts, into live calls or conferences.
Fundamentally reliable and scalable
Due to the clean codebase and design, FreeSWITCH will prove to be both more reliable and scalable than other similar products.
Leverages other successful 3rd party open source projects
Rather than re-inventing the wheel and re-implementing existing libraries internally, FreeSWITCH leverages quite a few 3rd party open source libraries.
- Apache APR (Apache Portable Runtime)
- Sofia SIP Stack (Project Sponsored by Nokia)
- Libsndfile
- Curl
- Etc
Written from scratch with a lot of insight from other projects
FreeSWITCH is more recent than other similar projects such as Asterisk and Yate -- and thus has the advantage of hindsight. The FreeSWITCH developers looked at the "pain points" of other projects and kept these in mind during the design phase.
Clean configuration syntax
FreeSWITCH uses
- Standard XML for all configuration, whether it be static or live
- Perl-compatible Regular Expressions for dialplan matching
Written with on-the-fly configuration management in mind
In addition to static XML files, all configuration can be served to FreeSWITCH on demand from a webserver. This allows many things:
- Dynamic configuration management
- Configuration can be served from a database or any persistent other storage medium
- Centralized configuration server that handles many FreeSWITCH instances
This was not slapped on as an afterthough either, it was designed this way from the beginning, and this feature is completely integrated into the FreeSWITCH core.
