Asterisk
معرفی Asterisk: قدرت ارتباطات متنباز را در دستان خود بگیرید
یکی از نامهایی است که در دنیای مخابرات و پروژههای متنباز زیاد شنیده میشود. اما Asterisk دقیقاً چیست و چرا تا این حد مورد توجه قرار گرفته است؟ در این مقاله قصد داریم اصول اولیه Asterisk، معماری آن، Dial Plan و قابلیتهای گستردهای که ارائه میدهد را بررسی کنیم. اگر به دنبال درک مفاهیم پایهای Asterisk هستید، جای درستی آمدهاید.
مشاهده ویدئو بر روی بستر یوتوب
متن ویدئو
Asterisk چیست؟
بسیاری Asterisk را بهعنوان یک PBX (Private Branch Exchange) میشناسند، اما این تعریف تنها بخش کوچکی از قابلیتهای آن را نشان میدهد. Asterisk یک پلتفرم ارتباطی متنباز است، به این معنا که کد منبع آن در دسترس عموم قرار دارد و امکان تغییر و توزیع مجدد آن برای همه فراهم است. برخلاف نرمافزارهای تجاری که تحت مالکیت یک شرکت خاص هستند و هزینههای بالایی برای سفارشیسازی دارند، Asterisk با پشتیبانی از جامعهای گسترده از توسعهدهندگان، امکان بهبود و توسعهی مداوم را فراهم میکند.
Asterisk در سال ۱۹۹۹ توسط “Mark Spencer” توسعه یافت و از سال ۲۰۰۴ تاکنون، نسخههای جدید آن بهصورت مداوم منتشر شدهاند. این پلتفرم از کاربردهای مختلفی مانند تماسهای صوتی، کنفرانسهای ویدیویی و پیامرسانی پشتیبانی میکند و ابزاری قدرتمند برای ایجاد راهکارهای سفارشی ارتباطی محسوب میشود.
معماری Asterisk
درک معماری Asterisk برای افرادی که قصد توسعه یا مدیریت یک سیستم مبتنی بر Asterisk را دارند، بسیار مهم است. این معماری بهصورت ماژولار طراحی شده است، مشابه سیستمعامل لینوکس، بهطوری که هستهی اصلی تنها وظایف اساسی را مدیریت میکند و قابلیتهای اضافی از طریق ماژولها اضافه میشوند.
عملکردهای اصلی
هستهی Asterisk وظایف زیر را بر عهده دارد:
- مدیریت ماژولها: بارگذاری و حذف ماژولهای مختلف
- خواندن فایلهای تنظیمات: پردازش و اعمال تنظیمات از فایلهای پیکربندی
- مدیریت تایمینگ و کانالها: هماهنگی و مدیریت کانالهای ارتباطی
ماژولها
ماژولها قابلیتهای مختلفی را به سیستم Asterisk اضافه میکنند. این ماژولها شامل درایورهای کانال (مانند sip و pjsip) و برنامههایی برای ویژگیهایی مانند صندوق صوتی و صف تماس هستند. هر ماژول یک فایل اجرایی مستقل است که میتواند بهصورت پویا بارگذاری یا حذف شود و این امر امکان سفارشیسازی بالایی را فراهم میکند.
فایلهای پیکربندی
Asterisk از فایلهای متنی ساده برای تنظیمات استفاده میکند که معمولاً در مسیر /etc/asterisk
قرار دارند. برخی از فایلهای مهم عبارتند از:
- extensions.conf: برای تنظیم Dial Plan
- pjsip.conf: برای تعریف نقاط پایانی SIP
- chan_dahdi.conf: برای مدیریت کارتهای آنالوگ و دیجیتال
هر فایل شامل بخشهایی با نام مشخص، کلیدها و مقادیر مربوطه است که به سادگی قابل درک و تغییر هستند.
نصب Asterisk
Asterisk را میتوان از طریق سورس کد، مخازن بستهها یا توزیعهای از پیش پیکربندی شده نصب کرد.
نصب از سورس کد
این روش بیشترین انعطافپذیری را ارائه میدهد و امکان سفارشیسازی بالا را فراهم میکند.
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
tar -xzf asterisk-16-current.tar.gz
cd asterisk-16.*
./configure
make
make install
نصب از مخازن بستهها
این روش نصب را سادهتر میکند و از طریق مدیر بستههای apt
یا yum
انجام میشود.
sudo apt-get update
sudo apt-get install asterisk
استفاده از توزیعهای آماده
برخی از توزیعها مانند FreePBX و Elastix همراه با Asterisk از پیش نصبشده عرضه میشوند و تنظیمات پیشفرض را برای کاربران فراهم میکنند.
پیکربندی Endpoints در Asterisk
پس از نصب Asterisk، مرحلهی بعدی پیکربندی نقاط پایانی (Endpoints) است که میتوانند شامل تلفنهای سختافزاری SIP یا کلاینتهای نرمافزاری باشند. در Asterisk، pjsip
جایگزین chan_sip
بهعنوان درایور اصلی SIP شده است.
تنظیمات اولیه pjsip
در فایل pjsip.conf
میتوان نقاط پایانی، احراز هویت و تنظیمات ارتباطی را مشخص کرد:
[transport-udp] type=transport protocol=udp bind=0.0.0.0 [۶۰۰۱] type=endpoint context=from-internal disallow=all allow=ulaw auth=6001 aors=6001 [۶۰۰۱] type=auth auth_type=userpass password=your_password username=6001 [۶۰۰۱] type=aor max_contacts=1
ایجاد یک Dial Plan ساده
Dial Plan هستهی اصلی مدیریت تماسها در Asterisk است و در فایل extensions.conf
پیکربندی میشود.
مثال ساده
[default] exten => 100,1,Answer() same => n,Wait(1) same => n,Playback(hello-world) same => n,Hangup()
این Dial Plan تماسهای ورودی به داخلی ۱۰۰ را پاسخ داده، پس از یک ثانیه فایل صوتی “hello-world” را پخش کرده و سپس تماس را قطع میکند.
کاربردهای Asterisk در دنیای واقعی
Asterisk بهدلیل انعطافپذیری بالای خود در سناریوهای مختلفی مورد استفاده قرار میگیرد:
- سیستمهای تلفنی کسبوکارهای کوچک و متوسط
- کاهش هزینهی تماس بین دفاتر مختلف (Toll Bypass)
- سرور ویژگیهای پیشرفته برای PBXهای سنتی
جمعبندی
Asterisk یک پلتفرم ارتباطی متنباز قدرتمند است که امکانات گستردهای برای سفارشیسازی سیستمهای ارتباطی فراهم میکند. چه یک کسبوکار کوچک باشید و چه یک سازمان بزرگ، Asterisk ابزاری منعطف و مقرونبهصرفه برای ساخت سیستمهای ارتباطی پیشرفته است.