کامیلیو (Kamailio)، یک SIP Server رایگان است، کامیلیو (Kamaillio) در سال های نچندان دور با نام OpenSER مطرح بود که طی تغییراتی این پروژه با نام کامیلیو (Kamailio) به راه خود ادامه می دهد.
کامیلیو (Kamilio) می تواند در مقیاس یک ثانیه هزاران تماس را مدیریت و هدایت کند، این جزء خصوصیات این SIP Proxy است، کامیلیو (Kamailio) بر اساس لایسنس GPL ارائه می شود پس به راحتی می توانید در پروژه ها از آن استفاده کنید و یا با اعمال تغییراتی در کد، آن را برای نیاز خود آماده سازید.
کامیلیو (Kamailio) می تواند به عنوان یک برنامه مدیریت کننده تماس های ویپ، WebRTC و یا یک گیت وی برای ارتباط Media Server ها همچون استریسک یا فری سوئیچ با دنیای بیرون مورد استفاده قرار گیرد، در ادامه مقاله به امکانات بی نظیر و همچنین موارد کاربرد این برنامه اشاره خواهیم کرد.
تفاوت استریسک و کامیلیو (Kamailio):
شاید برای درک بهتر این برنامه بهتر است آن را با استریسک قیاس کنیم، ببینیم چه تفاوت هایی با هم دارند و هر کدام در چه جایگاهی قرار می گیرند.
همانطور که می دانیم استریسک (Asterisk) یک B2BUA است، این به این معنی است که مکالمات ویپ از دل سرور استریسک عبور می کند، همانطور که در تصویر زیر مشخص است چه هنگام تلاش برای برقراری تماس و چه حین مکالمه بسته های ویپ از دل استریسک عبور می کنند.
این معماری B2BUA چند خصوصیت را برای سیستم تلفنی به ارمغان می آورد، مواردی همچون، ضبط مکالمه، امکان دریافت DTMF، شنود مکالمه و … اما از طرفی دارای ضعفی نیز هست که آن پایین آمدن ظرفیت و توان پردازش مکالمات همزمان است.
اما کامیلیو (Kamailio) یک SIP Proxy است یعنی فقط بحث مدیریت بر روی بسته ها را به عهده دارد و بسته های Media از داخل سرور عبور نمی کنند به همین دلیل این نوع سرور ها قابلیت مدیریت هزاران مکالمه در ثانیه را دارند اما از طرفی قابیت های سیستم های B2BUA را که در بالا اشاره شد را از دست می دهند.
درواقع مهم ترین تفاوت استریسک و کامیلیو (Kamailio) در ساختار آنهاست که البته هر کدام را برای نوع خاصی از سیستم های تلفنی مناسب می کند.
در تصویر زیر برخی امکانات که نباید از کامیلیو (Kamailio) انتظار داشته باشید را مشاهده می نمایید، در واقع برای داشتن این ویژگی ها باید سراغ استریسک (Asterisk) بروید.
امکانات کامیلیو (Kamailio)
اما از کامیلیو (Kamailio) برای چه پروژه هایی استفاده کنیم؟ در ادامه به برخی ویژگی های خاص این برنامه اشاره می کنیم.
وقتی کامیلیو (Kamailio) را کنار استریسک استفاده می کنیم، این برنامه با امکانات بیشمار خود می تواند سیستم تلفنی ما را بینهایت پرقدرت کند، در ادامه به نقش هایی که کامیلیو (Kamailio) می تواند در یک سناریو در کنار استریسک بازی کند می پردازیم.
Load Balancing: کامیلیو (Kamailio) می تواند ورودی تماس های ویپ شما باشد و این تماس ها را بین چندین سرور استریسک پخش نماید.
کامیلیو (Kamailio) و استریسک
حال می دانیم استریسک و کامیلیو (Kamailio) هرکدام در چه جایگاهی هستند، با ترکیب این ۲ می توان از قدرت هر ۲ برای راه اندازی سیستم های مطمئن تر و پرظرفیت استفاده کرد.
با مثال چند سناریو به بررسی قرار گیری این ۲ سیستم تلفنی در کنار هم می پردازیم:
سناریو۱:
فرض کنید می خواهید برای مجموعه ای که دارای ۱۰۰۰۰ داخلی است یک سیستم تلفنی راه اندازی کنید، البته این مجموعه الزاما یکپارچه نیست، یعنی ممکن است کاربران شما همه در یک یا چند ساختمان نباشند، به طور مثال می خواهید تمامی مجموعه نقاط مربوط به شهرداری تهران را در این سیستم قرار دهید، همانطور که در تصویر می بینید از کامیلیو (Kamailio) برای مدیریت کاربران، احراز هویت و ارتباط آنها با یکدیگر استفاده کرده ایم همچنین از ۳ سرور مجزای استریسک برای ارائه خدمات صندوق صوتی، IVR و ارتباط با شهری کمک گرفته ایم.
یک سناریو کاملا حرفه ای و پرقدرت برای راه اندازی یک مخابرات کوچک با امکانات بیشمار، همین سناریو با سیستم های تجاری همچون آوایا، اریکسون و یا سیسکو بیش از یک میلیارد تومان هزینه راه اندازی خواهد داشت.
سناریو۲
این سناریو می تواند برای سیستم های کم ظرفیت تر نیز اجرا شود، فرض کنید می خواهید یک مرکز تلفن با حدود ۱۰۰۰ داخلی راه اندازی نمایید، در این الگو از کامیلیو (Kamailio) هم به عنوان رجیستر سرور و به عنوان Failover سرور می توان استفاده کرد، در تصویر شما سیستم تلفنی Freeswitch را کنار کامیلیو (Kamailio) می بینید، این فقط برای این است که نشان دهیم Freeswitch نیز می تواند کنار کامیلیو (Kamailio) کار کند.
در این سناریو شما ۲ سرور استریسکی در کنار هم خواهید داشت که به واسطه ابزار مربوطه کاملا مثل هم هستند، حال اگر سرور اصلی به هر دلیلی از دسترس خارج شود، کامیلیو (Kamailio) تماس ها را به سرور دوم هدایت می کند.
سناریو۳
الزاما کامیلیو برای پروژه های با حجم بالا استفاده نمی گردد، فرض کنید شما استریسکی دارید با ۳۰۰ داخلی، کامیلیو (Kamailio) در این مجموعه می تواند نقش پراکسی مجموعه تلفنی شما را بازی کند که مزایای بسیاری دارد، همچون: برطرف کردن مشکل NAT که همان عامل صدای یکطرفه ویا قطعی صداست. بالابردن ظرفیت مجموعه تلفنی برای پاسخگویی مکالمات همزمان، اعمال نقش کامیلیو (Kamailio) به عنوان SBC و یک فایروال ویپ.
همانطور که می دانید الستیکس نسخه جدیدی ارائه کرده است به نام ElastixMT، جالب است بدانید در این نسخه به طور پیش فرض کامیلیو (Kamailio) نیز نصب شده است.
در آینده با این غول دنیای SIP Server ها بیشتر آشنا خواهیم شد.
حامد کوه فلاح
Open Source Software نقش مهمی در توسعه نرمافزارهای SaaS (نرمافزار به عنوان سرویس) داشته است.…
SaaS چیست؟ بررسی جامع نرمافزار بهعنوان سرویس و مزایای آن در دنیای فناوری اطلاعات، مدلهای…
در دنیای ارتباطات راه دور و شبکههای VoIP، اصطلاح Softswitch یکی از مفاهیم کلیدی است. Softswitch یک سیستم نرمافزاری…
Asterisk بهعنوان یکی از محبوبترین پلتفرمهای تلفن تحت شبکه (VoIP)، ابزارهای قدرتمند و متنوعی را…
در سیستمهای تلفنی سنتی و مدرن، مفاهیمی مانند FXS و FXO نقشی کلیدی در ارتباطات آنالوگ و دیجیتال ایفا…
در دنیای پیچیده فناوری اطلاعات و برنامهنویسی، یافتن سریع اطلاعات دقیق و ابزارهای موردنیاز از…