نرم افزار FreeSWITCH، یک نرم افزار تلفنی کدباز (open source) است که اولین بار در سال ۲۰۰۶ توسط یکی از برنامهنویسان Asterisk به نام Anthony Minessale ایجاد شد. او کار طراحی و پیادهسازی این سیستم تلفنی را به کمک Brian West و Michael Jerris، که آنها نیز قبل از آن از توسعهدهندگان Asterisk بودند، انجام داد. با توجه به تجربیاتی که او و همکارانش در کار با استریسک داشتند ، متوجه یک سری مشکلات در آن شدند. هدف اولیه آنها طراحی یک نرم افزار تلفنی ماژولار، گسترش پذیر، پایدار و قابل پشتیبانی بر روی سیستمعاملهای مختلف بود. نسخه ۱٫۰٫۰ FreeSWITCH در ماه می ۲۰۰۸ معرفی شد و در حال حاضر بعد از گذشت چندین سال، روزانه کاربران و توسعهدهندگان زیادی به بهبود و پیشرفت این پروژه کمک میکنند.
این سیستم تلفنی در حقیقت یک soft switch کلاس ۵ یا B2BUA (مخفف back-to-back user agent) میباشد که تحت لیسانس MPL و با زبان برنامهنویسی C پیادهسازی شده و بر روی سیستم عاملهای Mac OSX، Linux Windows، *BSD و سایر توزیعهای UNIX قابل اجرا میباشد. در طراحی و پیادهسازی FreeSWITCH سعی شده است هسته (core) آن تا حد امکان کوچک شود و تنها امکانات و قابلیتهای ضروری را شامل باشد. ضمناً در پیادهسازی آن سعی شده است تا حد امکان دوبارهکاری نشود و از کتابخانههای نرمافزاری موجود استفاده کند. بهعنوانمثال در پیادهسازی ماژول mod_sofia، از پروژه Sofia-SIP که یک پروژه کدباز تحت حمایت شرکت نوکیا استفاده شده است (sofia-sip.sourceforge.net).
نرم افزار تلفنی FreeSwitch شامل کتابخانه و یک فایل اجرایی است که این کتابخانه را بارگذاری و هسته اصلی سیستم تلفنی را اجرا میکند و کارهای مختلفی که توسط ماژولها تعریف شدهاند را انجام میدهد. بهبیاندیگر این نرم افزار یک سوییچ نرم افزاری یا نرم افزار تلفنی PBX میباشد که به اندازه نرم افزار استریسک کامل نیست اما توانایی مدیریت هزاران تماس را همزمان دارد.
در FreeSWITCH ، از تکنولوژیها و پروتکلهای ارتباطی مختلفی مانند GoogleTalk، Skype، SIP و H.323 پشتیبانی میشود که امکان برقراری ارتباطی آسان را با سیستمهای تلفنی کدباز مختلفی مانند sipXecs، Call Weaver، Bayonne، YATE و یا Asterisk را فراهم میسازد.
این سیستم تلفنی از بسیاری از ویژگیهای پیشرفته SIP مانند presence/BLF/SLA و همچنین TCP TLS و sRTP پشتیبانی میکند. همچنین بهعنوان یک پروکسی ناپیدا (transparent proxy) با و بدون media در مسیر استفاده میشود و بهعنوان یک SBC یا Session Border Controller عمل میکند.
فری سوییچ FreeSWITCH ، از کدکهای Wide Band و Narrow Band پشتیبانی میکند و راهکاری ایدهآل برای برقراری ارتباط بین دستگاههای قدیمی و تکنولوژیهای جدید میباشد. کانالهای صدا و ماژول اتصال کنفرانس میتوانند با فرکانسهای ۸،۱۲،۱۶،۲۴،۳۲ یا ۴۸ کیلوهرتزی کار کنند و حتی کانالهایی با نرخهای مختلف را به هم وصل کنند. کدک G729 تحت لیسانس تجاری هم قابل دسترسی است.
FreeSWITCH، از فکس، بر روی صدا و پروتکل T.38 پشتیبانی میکند و میتواند بین هردو روش بهعنوان مبدل عمل کند.
FreeSwitch میتواند یک تلفن نرم افزاری، سامانه PBX کد باز مانند OpenPBX، Bayonge، Yate یا Asterisk را ایجاد نماید. همچنین برای ساخت یک پلتفرم سوییچینگ ویپ برای یکپارچگی فناوریهای مختلف مانندSIP ( با استفاده از کتابخانه Nokia sofia) ، H.323، SCCP، LDAP، Zeroconf، Xmpp/jingle و غیره مورد استفاده قرار میگیرد.
FreeSwitch به زبان C نوشته شده است و میتواند از کتابخانههای نرم افزاری موجود استفاده کند. این سیستم تلفنی دارای معماری ماژولار و قابل توسعه است و عملکردهای اصلی و محدودی در هسته اصلی (libfreeswitch) به همراه ماژولهایی برای سایر کاربردها دارد. این نرم افزار نه تنها از طریق برنامه C قابل پیاده سازی است بلکه از طریق زبانهایی چون PHP، Perl و غیره نیز اجرا میشود.
فری سوییچ در پلتفرمهای ویندوز، Mac OS X، Linux، BSD، ARM قابل اجرا است و مجوز آن تحت MPL است.
ویژگیهای FreeSwitch
- قابلیت اجرا بر روی پلتفرمهای ویندوز ۳۲ بیتی، مک و لینوکس
- دارای رابط کاربری برنامه (API) برای IVR
- کانال صوتی با نرخهای ۸/۱۶/۳۲/۴۸ kHz
- قابلیت برقراری کنفرانس نرم افزاری
- SIP B2UA/SRTP/TLS
- SIP BLF/SLA/PBX features
- Event/logger engine
- Real time
- zRTP (libzrtp)
- Google Talk
- IPv4/IPv6
- ENUM/ISN
- Async audio
نرم افزار فری سوییچ FreeSwich از پروتکلهای ذیل پشتیبانی میکند:
- SIP (Sofia-SIP)
- Skinny Call Control Protocol (SCCP)
- Google Talk (dingaling)
- H.323 (OPAL) (beta)
- Skype (Skypopen)