زمان لازم جهت مطالعه این مقاله: 7 دقیقه (1335 words)
ویژه 

کامیلیو(Kamailio) چیست؟ با غول ویپ سرورها آشنا شوید

 

 

Icons 1 Moarefi

 کامیلیو (Kamailio)، یک SIP Server  رایگان است، کامیلیو (Kamaillio) در سال های نچندان دور با نام OpenSER مطرح بود که طی تغییراتی این پروژه با نام کامیلیو (Kamailio) به راه خود ادامه می دهد.

کامیلیو (Kamilio) می تواند در مقیاس یک ثانیه هزاران تماس را مدیریت و هدایت کند، این جزء خصوصیات این SIP Proxy  است، کامیلیو (Kamailio) بر اساس لایسنس GPL ارائه می شود پس به راحتی می توانید در پروژه ها از آن استفاده کنید و یا با اعمال تغییراتی در کد، آن را برای نیاز خود آماده سازید.

کامیلیو (Kamailio) می تواند به عنوان یک برنامه مدیریت کننده تماس های ویپ، WebRTC و یا یک گیت وی برای ارتباط Media Server ها همچون استریسک یا فری سوئیچ با دنیای بیرون مورد استفاده قرار گیرد، در ادامه مقاله به امکانات بی نظیر و همچنین موارد کاربرد این برنامه اشاره خواهیم کرد.

 

تفاوت استریسک و کامیلیو (Kamailio):

شاید برای درک بهتر این برنامه بهتر است آن را با استریسک قیاس کنیم، ببینیم چه تفاوت هایی با هم دارند و هر کدام در چه جایگاهی قرار می گیرند.

همانطور که می دانیم استریسک (Asterisk) یک B2BUA است، این به این معنی است که مکالمات ویپ از دل سرور استریسک عبور می کند، همانطور که در تصویر زیر مشخص است چه هنگام تلاش برای برقراری تماس و چه حین مکالمه بسته های ویپ از دل استریسک عبور می کنند.

Kamailio A Quick Introduction 3 638

این معماری B2BUA چند خصوصیت را برای سیستم تلفنی به ارمغان می آورد، مواردی همچون، ضبط مکالمه، امکان دریافت DTMF، شنود مکالمه و ... اما از طرفی دارای ضعفی نیز هست که آن پایین آمدن ظرفیت و توان پردازش مکالمات همزمان است.

اما کامیلیو (Kamailio) یک SIP Proxy است یعنی فقط بحث مدیریت بر روی بسته ها را به عهده دارد و بسته های Media از داخل سرور عبور نمی کنند به همین دلیل این نوع سرور ها قابلیت مدیریت هزاران مکالمه در ثانیه را دارند اما از طرفی قابیت های سیستم های B2BUA را که در بالا اشاره شد را از دست می دهند.

Kamailio A Quick Introduction 4 638

درواقع مهم ترین تفاوت استریسک و  کامیلیو (Kamailio) در ساختار آنهاست که البته هر کدام را برای نوع خاصی از سیستم های تلفنی مناسب می کند.

در تصویر زیر برخی امکانات که نباید از کامیلیو (Kamailio) انتظار داشته باشید را مشاهده می نمایید، در واقع برای داشتن این ویژگی ها باید سراغ استریسک (Asterisk) بروید.

Kamailio A Quick Introduction 8 638

No کامیلیو (Kamailio) نمی تواند بر روی بسته های صوتی یا همان داده های روی پروتکل RTP نظارتی داشته باشد.

No کامیلیو (Kamailio) نمی تواند از سوی کاربران عددی دریافت کند، این اعداد همان DTMF ها هستند که به طور مثال در استریسک برای برنامه IVR مورد استفاده قرار می گیرند.

No کامیلیو (Kamailio) نمی تواند پروتکل ها را به یکدیگر تبدیل کند.

No بر روی کامیلیو (Kamailio) چیزی به عنوان انتظار پشت خط نخواهید داشت.

No کامیلیو (Kamailio) امکان برقراری کنفرانس را ندارد.

No کامیلیو (Kamailio) امکان ضبط مکالمه را نیز ندارد.

 امکانات کامیلیو (Kamailio)

اما از کامیلیو (Kamailio) برای چه پروژه هایی استفاده کنیم؟ در ادامه به برخی ویژگی های خاص این برنامه اشاره می کنیم.

Kamailio A Quick Introduction 7 638

Kamailio A Quick Introduction 17 638

Yes SIP Server : کامیلیو (Kamailio) می تواند به تنهایی یک Sip Server برای ارتباط هزاران داخلی باشد، به طور مثال وقتی قصد دارید یک سیستمی شبیه اسکایپ یا وایبر راه اندازی کنید به سختی گزینه ای بهتر از کامیلیو (Kamailio) بتوانید پیدا کنید، با این برنامه به راحتی هزاران تماس را مدیریت خواهید کرد، البته فراموش نکنید به دلیل ساختار آن که در بالا نیز اشاره شد برخی امکانات را نخواهید داشت و در کنار آن باید از سیستم های دیگر همچون استریسک بهره ببرید.

وقتی کامیلیو (Kamailio) را کنار استریسک استفاده می کنیم، این برنامه با امکانات بیشمار خود می تواند سیستم تلفنی ما را بینهایت پرقدرت کند، در ادامه به نقش هایی که کامیلیو (Kamailio) می تواند در یک سناریو در کنار استریسک بازی کند می پردازیم.

Yes NAT Traversal: اگر ویپ کار هستید پس حتما با مشکل صدای یک طرفه آشنایی کامل دارید ! بله کامیلیو (Kamailio) می تواند مشکل NAT پروتکل SIP و RTP را بر طرف کند، قرار گیری کامیلیو (Kamailio) کنار استریسک خیال شما را از بابت مشکل NAT راحت خواهد کرد. این کار را به واسطه داشتن STUN و RTP Proxy در دل خود انجام می دهد.

 Load Balancing: کامیلیو (Kamailio) می تواند ورودی تماس های ویپ شما باشد و این تماس ها را بین چندین سرور استریسک پخش نماید.

Yes Routing Failover: به واسطه ماژول Dispatch می توان در صورتی که یک سرور استریسک از کار افتاد بلافاصله تماس های ورودی را به سرور دوم مسیر دهی کرد، با این کار سیستمی با قابلیت HA خواهید داشت که هیچگاه از کار نمی افتد.

Yes Registrar Server: کامیلیو (Kamailio) تنها با 4 گیک رم و یک سیستم متوسط می تواند 5000 تماس همزمان را در یک ثانیه مدیریت کند ! حال اگر می خواهید بر روی سیستم تلفنی خود مکالمات زیادی داشته باشید بهترین راه استفاده از کامیلیو (Kamailio) به عنوان Registrar Server است، در این حالت وظیفه بررسی و احراز هویت داخلی های با کامیلیو (Kamailio) خواهد بود و تمامی گوشی ها به جای رجیستر شدن به روی استریسک، به روی کامیلیو (Kamailio) رجیستر می شوند. این امر از طرفی باعث بالا رفتن ظرفیت سیستم شما می شود و از طرفی امنیت شما را نیز بسیار بالا خواهد برد چون جلوی بسیاری از حملات همانند DDOS و Fraud Attack ها گرفته می شود و خطری استریسک شما را تهدید نخواهد کرد.

 Yes Application Server: کامیلیو (Kamailio) این امکان را می دهد تا به راحتی بر روی آن برنامه نویسی کرده و ماژول های خاص خود را بنویسید، در حال حاضر بیش از 100 ماژول برای این SIP Server وجود دارد، کامیلیو (Kamailio) از زبان های LUA, JAVA, PYTHON برای ماژول نویسی پشتیبانی می کند.

کامیلیو (Kamailio) و استریسک

حال می دانیم استریسک و کامیلیو (Kamailio) هرکدام در چه جایگاهی هستند، با ترکیب این 2 می توان از قدرت هر 2 برای راه اندازی سیستم های مطمئن تر و پرظرفیت استفاده کرد.

با مثال چند سناریو به بررسی قرار گیری این 2 سیستم تلفنی در کنار هم می پردازیم:

سناریو1: 

Kamailio A Quick Introduction 32 638

 فرض کنید می خواهید برای مجموعه ای که دارای 10000 داخلی است یک سیستم تلفنی راه اندازی کنید، البته این مجموعه الزاما یکپارچه نیست، یعنی ممکن است کاربران شما همه در یک یا چند ساختمان نباشند، به طور مثال می خواهید تمامی مجموعه نقاط مربوط به شهرداری تهران را در این سیستم قرار دهید، همانطور که در تصویر می بینید از کامیلیو (Kamailio) برای مدیریت کاربران، احراز هویت و ارتباط آنها با یکدیگر استفاده کرده ایم همچنین از 3 سرور مجزای استریسک برای ارائه خدمات صندوق صوتی، IVR و ارتباط با شهری کمک گرفته ایم.

یک سناریو کاملا حرفه ای و پرقدرت برای راه اندازی یک مخابرات کوچک با امکانات بیشمار، همین سناریو با سیستم های تجاری همچون آوایا، اریکسون و یا سیسکو بیش از یک میلیارد تومان هزینه راه اندازی خواهد داشت.

سناریو2

Kamailio A Quick Introduction 34 638

این سناریو می تواند برای سیستم های کم ظرفیت تر نیز اجرا شود، فرض کنید می خواهید یک مرکز تلفن با حدود 1000 داخلی راه اندازی نمایید، در این الگو از کامیلیو (Kamailio) هم به عنوان رجیستر سرور و به عنوان Failover سرور می توان استفاده کرد، در تصویر شما سیستم تلفنی Freeswitch را کنار کامیلیو (Kamailio) می بینید، این فقط برای این است که نشان دهیم Freeswitch نیز می تواند کنار کامیلیو (Kamailio) کار کند.

در این سناریو شما 2 سرور استریسکی در کنار هم خواهید داشت که به واسطه ابزار مربوطه کاملا مثل هم هستند، حال اگر سرور اصلی به هر دلیلی از دسترس خارج شود،  کامیلیو (Kamailio) تماس ها را به سرور دوم هدایت می کند.

سناریو3

Kamailio A Quick Introduction 35 638

 الزاما کامیلیو برای پروژه های با حجم بالا استفاده نمی گردد، فرض کنید شما استریسکی دارید با 300 داخلی، کامیلیو (Kamailio) در این مجموعه می تواند نقش پراکسی مجموعه تلفنی شما را بازی کند که مزایای بسیاری دارد، همچون: برطرف کردن مشکل NAT که همان عامل صدای یکطرفه ویا قطعی صداست. بالابردن ظرفیت مجموعه تلفنی برای پاسخگویی مکالمات همزمان، اعمال نقش کامیلیو (Kamailio) به عنوان SBC و یک فایروال ویپ.

همانطور که می دانید الستیکس نسخه جدیدی ارائه کرده است به نام ElastixMT، جالب است بدانید در این نسخه به طور پیش فرض کامیلیو (Kamailio) نیز نصب شده است.

در آینده با این غول دنیای SIP Server ها  بیشتر آشنا خواهیم شد.

حامد کوه فلاح

یازده نکته طلائی برای امنیت استریسک، ایزابل
راهنمای نصب و تنظیم مایکروسافت لینک، قسمت اول (وید...

مطالب مرتبط

آرشیو مقالات

2023
دی
اسفند
ارديبهشت
خرداد
مرداد
شهریور
مهر
آبان
آذر
2014
دی
بهمن
اسفند
فروردين
ارديبهشت
خرداد
تیر
مرداد
شهریور
مهر
آبان
آذر
2013
اسفند
فروردين
ارديبهشت
خرداد
تیر
شهریور
مهر
آبان
آذر
2012
دی
بهمن
فروردين
ارديبهشت
خرداد
تیر
مرداد
مهر
آبان
آذر
2011
دی
بهمن
اسفند
فروردين
ارديبهشت
آبان
آذر
2010
بهمن
فروردين
ارديبهشت
خرداد
تیر
مرداد
مهر
آبان
آذر
2009
دی
اسفند
فروردين
ارديبهشت
خرداد
تیر
مرداد
شهریور
مهر
آبان
آذر

محبوب ترین مقالات

تنظیمات سیپ ترانک مخابراتاگر بخواهیم ساده ترین تعریف را داشته باشیم باید بگوییم SIP Trunk ، یک لینک ...
SIP TRUNK چیست؟سیپ ترانک در واقع یک روشی است که سیستم تلفنی های تجاری میتوانند از خطوط اینترنتی بجای...
چرا NATNAT  یا Network Address Translation راهکاری برای تبدیل آدرس های شبکه Local یا  Private به آدر...
کاربرد جهت مدل های  4104/4108 در این آموزش شما با نحوه تنظیم گیت وی های شهری برند گرنداستریم (Grands...
شرکت شاتل یکی از شرکت های دارنده مجوز FCP است که اقدام به ارائه خطوط ویپ با نام ShatelTalk کرده است،...
پورت های FXO و FXS به چه معناست؟ و کاربرد آنها چیست؟اگر شما در حال تحقیق جهت آشنایی بیشتر و ارتقای س...
راهنمای اتصال Gateway NewRock به سرور ایزابلدر گیتوی های برند Newrock برای اتصال به دستگاه و انجام م...