در این مقاله، توضیحات مختصری در باره این دو سیستم تلفنی متن باز و رایگان مناسب برای مجموعه های متوسط و بالا ارائه خواهیم کرد تا با توجه به مزایا و معایب هر یک، در هنگام راه اندازی سیستم نلفنی مورد نظرمان بهترین انتخاب را انجام دهیم.
Freeswitch سیستم تلفنی است که توسط گروهی از توسعه دهندگان استریک به رهبری Anthony Minessale تولید شد.
هر دو سیستم تلفنی بصورت رایگان و متن باز منتشر شده اند و دارای محبوبیت زیادی در بین سایر سیستم های تلفنی موجود هستند. Asterisk دارای قدمتی به مراتب بیشتر از Freeswitch است بصورتی که Freeswitch در سال 2006 و با الگوبرداری از کدهای هسته Asterisk متولد شد.
امکانات مشابه بسیاری در این دو به چشم میخورد، امکاناتی مانند امکان برقراری و فرمان به هر دو از راه Socket
هر دو روی سیستم های لینوکسی نصب میشوند و هر دو از تعاریف مشخص و یکسانی برای قسمت های مختلف خود استفاده میکنند.
تعابیر IVR و Dialplan و Callcenter و ده ها بخش دیگر، دقیقا بصورت یکسان تعریف شده اند. ولی بدیلیل تازگی جدیدتر بودن سیستم Freeswitch ، بسیاری از اشکالات اساسی موجود در Asterisk رفع شده و نقاط قوت بسیاری به آن افزوده شده است. مانند ضرب المثل معروف: ادب از که آموختی/ از بی ادبان!
طبق تجربه کاری با هر دو سیستم تلفنی، سیستم Asterisk نهایتا از 150 تماس همزمان بصورت بدون اشکال و صحیح پشتیبانی میکند، این در صورتی است که این مقدار برای Freesitch حداقل 1000 تماس همزمان است و طبق تجربیات سایر کاربران، در صورت تنظیم درست سیستم و بهره گیری از پهنای باند و سرور مناسب، امکان افزایش هر چه بیشتر این عدد نیز موجود است.
همچنین باگ ها و نقاط ضعف امنیتی و ساختاری بسیار زیادی در Asterisk وجود دارد که بدلیل نوع طراحی هسته آن، همچنان بدون راه حل هستند. برای مثال در بسیاری موارد، بعد از قطع تماس، سیستم کانال مورد استفاده را تخلیه نکرده و همچنان اشغال نگه میدارد که باعث سرریز شدن و از کار افتادن کل سیستم در ساعاتی از روز میشوند. بهترین و تنها راه حل موجود در حال حاضر، ری استارت دستی Asterisk می باشد!
مشکل اصلی در Asterisk در نوع ارتباط هسته برنامه با ماژول ها و برنامه های جانبی است. بعبارتی هسته Asterisk به برخی از ماژول های زیرمجموعه خود وابسته است! و اختلال یا عدم کارکرد صحیح آن ها باعث اختلال در کارکرد هسته اصلی خواهد شد! ولی در Freeswitch این ارتباط به شکل صحیح طراحی شده است.یعنی یک هسته مرکزی دارای ماژول های زیرمجموعه ای وابسته به خود است.شکل زیر دید ذهنی مناسبی از این امر ارائه می دهد:
فایلهای مدیریت و تنظیمات:
فایلهای مدیریت و تنظیمات Freeswitch تماما بصورت استاندارد XML بوده و از این نظر نیز در مقایسه با ساختار نوشتاری نامنظم Asterisk بسیار قابل فهم تر و برای توسعه و برنامه نویسی و دسترسی به آنها بسیار مناسب و خواناتر هستند.
نمونه دیال پلن در asterisk:
نمونه دایل پلن در freeswitch:
از جهت نصب و راه اندازی، مدیریت و تنظیمات، هر دو نرم افزار در یک رده بسیار مناسب قرار دارند. همچنین از نظر میزان مستندات، Asterisk بدلیل سابقه طولانی تر از وضعیت بهترین در مقایسه با Freeswitch برخوردار است.
رابط های گرافیکی مدیریت قدرتمندی برای هر دو نرم افزار موحود است. Elastix برای Asterisk و BluePBX و FusionPBX برای Freeswitch ، امکانات مناسبی را برای کاربر برای مدیریت و راه اندازی سیستم های دلخواه فراهم نموده اند.
بعبارت بهتر، در صورتی که تعداد تماس های همزمان مجموعه پایین تر از 100 تماس بوده و بین اپراتورهای مجموعه، صبر و شکیبایی مناسب جهت رفع و یا تحمل باگ های Asterisk موجود است، Asterisk را انتخاب نمایید! و برای مجموعه های بزرگتر با درخواست درجه اطمینان و اتکای بالاتر، Freeswitch از گزینه های مناسب است.
نویسنده : امیرحسین تیموری
Freeswitch سیستم تلفنی است که توسط گروهی از توسعه دهندگان استریک به رهبری Anthony Minessale تولید شد.
هر دو سیستم تلفنی بصورت رایگان و متن باز منتشر شده اند و دارای محبوبیت زیادی در بین سایر سیستم های تلفنی موجود هستند. Asterisk دارای قدمتی به مراتب بیشتر از Freeswitch است بصورتی که Freeswitch در سال 2006 و با الگوبرداری از کدهای هسته Asterisk متولد شد.
امکانات مشابه بسیاری در این دو به چشم میخورد، امکاناتی مانند امکان برقراری و فرمان به هر دو از راه Socket
هر دو روی سیستم های لینوکسی نصب میشوند و هر دو از تعاریف مشخص و یکسانی برای قسمت های مختلف خود استفاده میکنند.
تعابیر IVR و Dialplan و Callcenter و ده ها بخش دیگر، دقیقا بصورت یکسان تعریف شده اند. ولی بدیلیل تازگی جدیدتر بودن سیستم Freeswitch ، بسیاری از اشکالات اساسی موجود در Asterisk رفع شده و نقاط قوت بسیاری به آن افزوده شده است. مانند ضرب المثل معروف: ادب از که آموختی/ از بی ادبان!
طبق تجربه کاری با هر دو سیستم تلفنی، سیستم Asterisk نهایتا از 150 تماس همزمان بصورت بدون اشکال و صحیح پشتیبانی میکند، این در صورتی است که این مقدار برای Freesitch حداقل 1000 تماس همزمان است و طبق تجربیات سایر کاربران، در صورت تنظیم درست سیستم و بهره گیری از پهنای باند و سرور مناسب، امکان افزایش هر چه بیشتر این عدد نیز موجود است.
همچنین باگ ها و نقاط ضعف امنیتی و ساختاری بسیار زیادی در Asterisk وجود دارد که بدلیل نوع طراحی هسته آن، همچنان بدون راه حل هستند. برای مثال در بسیاری موارد، بعد از قطع تماس، سیستم کانال مورد استفاده را تخلیه نکرده و همچنان اشغال نگه میدارد که باعث سرریز شدن و از کار افتادن کل سیستم در ساعاتی از روز میشوند. بهترین و تنها راه حل موجود در حال حاضر، ری استارت دستی Asterisk می باشد!
مشکل اصلی در Asterisk در نوع ارتباط هسته برنامه با ماژول ها و برنامه های جانبی است. بعبارتی هسته Asterisk به برخی از ماژول های زیرمجموعه خود وابسته است! و اختلال یا عدم کارکرد صحیح آن ها باعث اختلال در کارکرد هسته اصلی خواهد شد! ولی در Freeswitch این ارتباط به شکل صحیح طراحی شده است.یعنی یک هسته مرکزی دارای ماژول های زیرمجموعه ای وابسته به خود است.شکل زیر دید ذهنی مناسبی از این امر ارائه می دهد:
فایلهای مدیریت و تنظیمات:
فایلهای مدیریت و تنظیمات Freeswitch تماما بصورت استاندارد XML بوده و از این نظر نیز در مقایسه با ساختار نوشتاری نامنظم Asterisk بسیار قابل فهم تر و برای توسعه و برنامه نویسی و دسترسی به آنها بسیار مناسب و خواناتر هستند.
نمونه دیال پلن در asterisk:
کد PHP:
<span style="color: #333399;">exten => 1,1,Set(step2count=0)
same => n,Background(${which})
same => n,Goto(s,step2)
exten => 2,1,Set(step2count=0)
same => n,Playback(prompt-waitforbeep)
same => n,Record(${CHANNEL(uniqueid)}.wav)
same => n(listen),Playback(${CHANNEL(uniqueid)})
same => n,Set(step3count=0)
same => n,Read(saveornot,prompt-1tolisten-2tosave-3todiscard,1)
same => n,GotoIf($["${saveornot}" = "1"]?listen)
same => n,GotoIf($["${saveornot}" = "2"]?saveit)
same => n,System(rm -f /var/lib/asterisk/sounds/${CHANNEL(uniqueid)}.wav)
same => n,Goto(s,beginning)
</span>
کد PHP:
<span style="color: #333399;"><span class="sc3"><span class="de1"><extension</span> <span class="re0">name</span>=<span class="st0">"501"</span><span class="re2">></span></span>
<span class="sc3"><span class="re1"><condition</span> <span class="re0">field</span>=<span class="st0">"destination_number"</span> <span class="re0">expression</span>=<span class="st0">"501"</span><span class="re2">> </span></span>
<span class="sc3"><span class="re1"><action</span> <span class="re0">application</span>=<span class="st0">"bridge"</span> <span class="re0">data</span>=<span class="st0">"user/501"</span><span class="re2">/> </span></span>
<span class="sc3"><span class="re1"><action</span> <span class="re0">application</span>=<span class="st0">"answer"</span><span class="re2">/> </span></span>
<span class="sc3"><span class="re1"><action</span> <span class="re0">application</span>=<span class="st0">"sleep"</span> <span class="re0">data</span>=<span class="st0">"1000"</span><span class="re2">/> </span></span>
<span class="sc3"><span class="re2"><action application="hangup" /> </span></span>
<span class="sc3"><span class="re1"></condition<span class="re2">> </span></span></span>
<span class="sc3"><span class="re1"></extension<span class="re2">></span></span></span></span>
رابط های گرافیکی مدیریت قدرتمندی برای هر دو نرم افزار موحود است. Elastix برای Asterisk و BluePBX و FusionPBX برای Freeswitch ، امکانات مناسبی را برای کاربر برای مدیریت و راه اندازی سیستم های دلخواه فراهم نموده اند.
بعبارت بهتر، در صورتی که تعداد تماس های همزمان مجموعه پایین تر از 100 تماس بوده و بین اپراتورهای مجموعه، صبر و شکیبایی مناسب جهت رفع و یا تحمل باگ های Asterisk موجود است، Asterisk را انتخاب نمایید! و برای مجموعه های بزرگتر با درخواست درجه اطمینان و اتکای بالاتر، Freeswitch از گزینه های مناسب است.
نویسنده : امیرحسین تیموری