دوره آموزشی AMI (Asterisk Manager Interface) معمولاً برای برنامهنویسان و مدیران سیستم طراحی شده است تا بتوانند با استفاده از APIهای Asterisk، سیستمهای VoIP را مدیریت، کنترل و توسعه دهند. در این دوره، مفاهیم پایه تا پیشرفتهی AMI آموزش داده میشود. در زیر یک سرفصل پیشنهادی برای این دوره ارائه شده است:
بخش 1. آشنایی با Asterisk و AMI
فصل 1. مقدمهای بر VoIP و نقش Asterisk در ارتباطات
- VoIP چیست؟
- معرفی مفهوم VoIP (Voice over IP)
- مزایا و معایب VoIP
- مقایسه VoIP با سیستمهای سنتی تلفن
- نقش Asterisk در VoIP
- معرفی Asterisk به عنوان یک PBX نرمافزاری
- ویژگیهای کلیدی Asterisk
- نحوه کارکرد Asterisk در سیستمهای VoIP
- مثالهایی از کاربردهای Asterisk در صنایع مختلف
فصل 2. معرفی AMI: چیست و چه کاربردهایی دارد؟
- آشنایی با AMI (Asterisk Manager Interface)
- تعریف AMI و کاربردهای آن در Asterisk
- تفاوت AMI با سایر رابطهای Asterisk (مانند AGI، ARI)
- نحوه تعامل AMI با Asterisk
- چگونگی ارسال دستورات و دریافت رویدادها
- فرایند ارتباطات در AMI
- کاربردهای عمومی AMI
- مدیریت تماسها و کانالها
- نظارت بر سیستم Asterisk
- ایجاد اسکریپتهای خودکار برای مدیریت تماسها
فصل 3. مقایسه AMI با AGI (Asterisk Gateway Interface)
- AMI vs AGI: تفاوتها و شباهتها
- کاربرد اصلی AMI (مدیریت و نظارت) در مقایسه با AGI (اجرای اسکریپتهای کاربری)
- مقایسه نحوه ارسال دستورات و دریافت دادهها
- مزایا و معایب هر یک
- AMI برای مدیریت سیستم
- AGI برای تعامل پیچیده با تماسها
فصل 4. معماری AMI و نحوه عملکرد آن
- معماری کلی AMI
- نحوه تعامل Asterisk با AMI
- چگونگی ایجاد ارتباطات TCP/IP و استفاده از پروتکلهای مدیریتی
- نحوه اجرای دستورات AMI
- نحوه ارسال درخواستها از کلاینت به سرور Asterisk
- پردازش درخواستها توسط Asterisk و ارسال پاسخها
- نظارت و رویدادها
- سیستم اطلاعرسانی در AMI
- نحوه دریافت اطلاعات از سیستم Asterisk از طریق رویدادها
فصل 5. بررسی کاربردهای AMI
- مدیریت تماسها
- ایجاد تماسهای جدید (Originate)
- کنترل تماسهای در حال برقراری
- مدیریت خاتمه تماسها (Hangup)
- گزارشگیری و نظارت بر وضعیت
- بررسی وضعیت کانالها و صفها
- مشاهده رویدادهای تماسها و رویدادهای سیستمی
- نظارت بر رویدادها
- پیگیری رویدادها مانند شروع و پایان تماسها
- بررسی مشکلات و تحلیل ترافیک تماسها
- مانیتورینگ وضعیت SIP و دیگر پروتکلها
فصل 6. کاربردهای پیشرفته AMI در محیطهای تجاری
- استفاده از AMI در مراکز تماس
- مدیریت صفها و تماسها
- پیگیری وضعیت نمایندگان و پشتیبانی از کارایی سیستم
- اتصال AMI با سیستمهای مدیریت
- یکپارچگی AMI با سیستمهای CRM
- استفاده از AMI برای تحلیل دادههای تماس و تولید گزارشها
فصل 7. مزایای استفاده از AMI در مدیریت و توسعه VoIP
- کاربردهای اتوماسیون
- ساخت اسکریپتهای خودکار برای مدیریت تماسها
- نظارت و گزارشگیری خودکار
- کاهش نیاز به مدیریت دستی
- بهینهسازی فرآیندهای اداری و عملیاتی
- سفارشیسازی و گسترش عملکردها
- سفارشیسازی و گسترش قابلیتهای Asterisk با AMI
بخش 2. نصب و راهاندازی AMI
فصل 1. پیشنیازهای نصب AMI
- نرمافزارهای مورد نیاز:
- نسخه مناسب Asterisk
- سیستمعاملهای پشتیبانیشده (مانند Linux: CentOS، Debian، Ubuntu)
- نصب Java Runtime Environment (در صورت نیاز)
- نصب ابزارهای شبکه (مثل Telnet، Netcat)
- پیکربندی سختافزار مورد نیاز:
- نیاز به پردازنده و حافظه مناسب برای اجرای Asterisk
- تنظیمات شبکه (IP Addressing, DNS, Subnetting)
فصل 2. نصب Asterisk
- دریافت نسخه Asterisk:
- دانلود بستههای Asterisk از سایت رسمی یا استفاده از مخازن مربوطه
- نصب با استفاده از بستههای نصب شده:
- نصب از طریق پکیج منیجر سیستمعامل (مثل
apt-getبرای Ubuntu،yumبرای CentOS)
- نصب از طریق پکیج منیجر سیستمعامل (مثل
- نصب از سورس کد:
- دانلود سورس کد از GitHub یا سایت رسمی
- ساخت و نصب از طریق دستورات کامن لاین (
./configure,make,make install)
- پیکربندی Asterisk پس از نصب:
- تنظیم فایلهای پیکربندی اصلی مانند
sip.conf,extensions.conf
- تنظیم فایلهای پیکربندی اصلی مانند
فصل 3. فعالسازی و پیکربندی AMI در فایل manager.conf
- دسترسی به فایل پیکربندی:
- مکان فایل
manager.confدر Asterisk:/etc/asterisk/manager.conf
- مکان فایل
- پیکربندی دسترسیها:
- تعریف کاربران AMI و تنظیمات دسترسی آنها (نام کاربری و رمز عبور)
- تعیین سطوح دسترسی مختلف (مثلاً فقط مشاهده یا دسترسی به تغییرات)
- تنظیمات امنیتی:
- تنظیم محدودیت IP برای اتصال به AMI
- اعمال سیاستهای امنیتی مانند رمز عبور قوی و تغییرات دورهای آن
فصل 4. تعریف کاربران و دسترسیها
- تعریف کاربران:
- ایجاد کاربران برای AMI و تعیین دسترسیهای آنها (سطح دسترسی کامل، محدود یا فقط خواندن)
- تنظیم مشخصات کاربران در فایل
manager.conf
- تنظیمات دسترسی IP:
- اعمال محدودیتهای دسترسی بر اساس IPهای مشخص
- بررسی تنظیمات برای جلوگیری از حملات brute force و دسترسی غیرمجاز
فصل 5. تست اتصال به AMI با ابزارهای مختلف
- اتصال به AMI با استفاده از Telnet:
- دستور Telnet برای اتصال به سرور Asterisk
- تست اتصال با استفاده از دستورات AMI مانند
Action: Login
- استفاده از Netcat:
- ابزار Netcat برای ارتباط مستقیم و ارسال دستورات به AMI
- ارسال درخواستها و دریافت پاسخها
- ابزارهای کلاینت AMI:
- معرفی ابزارهای مفید برای تست و ارتباط با AMI:
- Asterisk Manager Client (برای Python، PHP، Node.js)
فصل 6. تنظیمات و پیکربندی پیشرفته
- فعالسازی TLS برای ارتباط امن:
- راهاندازی ارتباطات امن بین مشتری و سرور AMI با استفاده از TLS:
- تنظیم
tlsenable=yesدر فایلmanager.conf - نصب گواهینامهها (SSL/TLS)
- تنظیم
- راهاندازی ارتباطات امن بین مشتری و سرور AMI با استفاده از TLS:
- استفاده از فایروال:
- پیکربندی فایروال برای محدود کردن دسترسی به AMI:
- تنظیمات فایروال با iptables یا firewalld
- اعمال محدودیتهای IP برای امنیت بیشتر
- پیکربندی فایروال برای محدود کردن دسترسی به AMI:
- پیکربندی Fail2Ban برای جلوگیری از حملات brute force:
- نصب و پیکربندی Fail2Ban برای جلوگیری از حملات
- تعریف قوانین برای جلوگیری از تلاشهای مکرر ورود ناموفق
فصل 7. عیبیابی نصب AMI
- بررسی لاگهای Asterisk:
- چک کردن فایلهای لاگ Asterisk برای شناسایی مشکلات در اتصال AMI:
- فایلهای لاگ:
/var/log/asterisk/full
- فایلهای لاگ:
- چک کردن فایلهای لاگ Asterisk برای شناسایی مشکلات در اتصال AMI:
- نصب مجدد و رفع مشکلات معمول:
- رفع مشکلات اتصال با بررسی تنظیمات فایل
manager.conf - رفع مشکلات امنیتی مانند تنظیمات فایروال و IP
- رفع مشکلات اتصال با بررسی تنظیمات فایل
فصل 8. پیکربندی و آزمایش عملکرد AMI
- آزمایش دستورات AMI:
- آزمایش دستورات
Action: LoginوAction: Status - بررسی دریافت رویدادها با
Event: NewChannel
- آزمایش دستورات
- نظارت بر فعالیت AMI:
- بررسی فعالیتهای AMI با استفاده از ابزارهای مانند Wireshark یا tcpdump
- نظارت بر درخواستها و پاسخهای AMI در شبکه
بخش 3. ساختار دستورات و رویدادها در AMI
فصل 1. مفاهیم اولیه در AMI
- دستورات (Actions):
- توضیحی جامع دربارهی دستورات AMI
- ارسال دستورات به Asterisk از طریق AMI برای مدیریت سیستم و تماسها
- رویدادها (Events):
- توضیحی دربارهی رویدادهایی که از Asterisk به کلاینت ارسال میشود
- نحوه دریافت و پردازش رویدادها از Asterisk
- پیامها در AMI:
- مفهوم پیامهای AMI: چطور دادهها بین Asterisk و کلاینت انتقال مییابند
- تحلیل پیامها و نحوه پردازش آنها در AMI
فصل 2. ساختار پیامها در AMI
- فرمت پیامها:
- توضیح در مورد ساختار پیامهای AMI: Headers و Body
- نحوه ارسال درخواستها (Requests) و دریافت پاسخها (Responses)
- چگونگی ارسال درخواستها (Actions):
- ساختار کلی یک درخواست در AMI
- نحوه ارسال درخواستها از طریق Telnet، Python، PHP و دیگر روشها
- بررسی مثالی از درخواستهای پرکاربرد مانند
Originate،Hangup
- چگونگی دریافت رویدادها (Events):
- ساختار یک رویداد در AMI
- نحوه پردازش رویدادها و نمایش اطلاعات مربوط به تماسها یا وضعیت سیستم
فصل 3. مدیریت نشستها (Sessions) در AMI
- مفهوم نشست (Session):
- نشستها در AMI چیست و چگونه مدیریت میشوند؟
- نحوه تعامل بین کلاینت و Asterisk در طول یک نشست
- مدیریت نشستها:
- نحوه حفظ وضعیت نشستها برای دریافت رویدادها و اجرای دستورات
- مدیریت زمانهای قطع اتصال و پیوستن مجدد
- چگونگی مدیریت نشستها در اسکریپتها:
- استفاده از نشستها در اسکریپتها برای ارسال دستورات و دریافت پاسخها
فصل 4. انواع دستورات در AMI
- Actions:
- معرفی انواع مختلف دستورات AMI و کاربرد آنها
- بررسی جزئیات دستورات پرکاربرد مانند
Originate،Hangup،Redirectو غیره
- ساختار دستورات:
- بررسی پارامترها و ورودیهای دستورات
- نحوه ارسال و دریافت اطلاعات مربوط به دستورات
- مثالهای عملی از نحوه استفاده از دستورات در سیستمهای مختلف
- پیکربندی و فیلتر کردن دستورات:
- استفاده از تنظیمات پیشرفته برای مدیریت دستورات (مثل تعیین سطح دسترسی)
فصل 5. انواع رویدادها در AMI
- Events:
- معرفی رویدادهای مختلف در AMI که از Asterisk به کلاینت ارسال میشود
- رویدادهایی مانند
Dial,Hangup,NewChannelو غیره
- ساختار رویدادها:
- نحوه ساختار و پارامترهای مختلف رویدادها
- پردازش اطلاعات رویدادها در اسکریپتها و سیستمها
- پیکربندی و فیلتر کردن رویدادها:
- نحوه فیلتر کردن رویدادها برای دریافت فقط اطلاعات مهم
- استفاده از پارامترهای مختلف در درخواستها برای دریافت رویدادهای خاص
فصل 6. ارتباط بین دستورات و رویدادها
- تطبیق دستورات و رویدادها:
- چگونگی ارتباط و همزمانی دستورات و رویدادها در یک نشست
- بررسی مثالهای واقعی از تعامل بین دستورات و رویدادها
- آغاز یک عملیات و پیگیری آن:
- ارسال دستورات از کلاینت به Asterisk و دریافت رویدادها بهعنوان پاسخ
- مثالهایی از چگونگی استفاده از رویدادها برای تایید اجرای دستورات
فصل 7. تحلیل و عیبیابی دستورات و رویدادها
- مشکلات رایج در دستورات و رویدادها:
- مشکلاتی مانند قطع اتصال، تاخیر در رویدادها، و نادرست بودن دادههای دریافت شده
- ابزارهای مورد استفاده برای تحلیل:
- ابزارهایی مانند Telnet و Asterisk CLI برای تست دستورات و رویدادها
- نحوه استفاده از ابزارهای مانیتورینگ مانند Wireshark برای عیبیابی
فصل 8. استفاده از اسکریپتها برای دستورات و رویدادها
- ارسال دستورات و دریافت رویدادها در اسکریپتها:
- نحوه نوشتن اسکریپتهای اتوماسیون برای ارسال دستورات و پردازش رویدادها
- استفاده از کتابخانههای موجود در زبانهای برنامهنویسی مانند Python (py-asterisk) و PHP (PAMI)
- مثالهای عملی از اسکریپتها:
- ایجاد اسکریپت برای ارسال درخواستها و پردازش پاسخها
- نوشتن اسکریپتهایی برای نظارت بر تماسها و جمعآوری اطلاعات
بخش 4. دستورات پرکاربرد (AMI Actions)
- Originate: ایجاد تماس
- Hangup: پایان دادن به تماس
- Redirect: تغییر مسیر تماس
- Status: دریافت وضعیت کانالها
- CoreShowChannels: نمایش کانالهای فعال
- QueueAdd/QueueRemove: مدیریت صفهای تماس
- SIPPeers/SIPShowPeer: نمایش وضعیت SIP
- Voicemail: مدیریت صندوق صوتی
بخش 5. رویدادهای پرکاربرد (AMI Events)
- Dial: اطلاعات مربوط به تماسهای در حال برقراری
- Hangup: اطلاع از اتمام تماس
- NewChannel: ایجاد کانال جدید
- AgentLogin/AgentLogoff: ورود و خروج نمایندگان
- QueueEvent: رویدادهای مربوط به صف تماس
- Bridge Events: مدیریت و نظارت بر کنفرانسها
- DTMF Events: دریافت سیگنالهای DTMF
خدمات شبکه فراز نتورک | پیشرو در ارائه خدمات دیتاسنتری و کلود

نقد و بررسی وجود ندارد.