AMI چیست؟
AMI
Asterisk Soft Switch یکی از بهترین نرمافزارهایOpen Source است که طرفداران زیادی در عرصه ویپ VoIP دارد.
این سافت سوییچ رابط کاربری گرافیکی ندارد و برای استفاده از آن باید از یک واسط گرافیکی به همراه یک سرویس اتصال به نام AMI (Asterisk Manager Interface) استفاده کرد. این سرویس مختص اتصال به Asterisk است و با استفاده از آن قادر خواهید بود تمام رویدادها (Event) و فعالیتهای داخلیهای خود اعم از وضعیت رجیستری ، تماسها ، صفها و غیره را با مشخص کردن نوع عملیات (Action) دریافت کنید و جهت تجزیه و تحلیل در نرم افزارهای خود استفاده نمایید.
نرم افزارهایی مانندElastix ، Free PBX ، 3CX و بسیاری دیگر از سافت سوییچها GUI مخصوص خود را دارند که با استفاده از AMI با سافت سوییچ Asterisk ارتباط برقرار میکنند.
شرکت ماهان ویپ نیز برای مدیریت تماسهای نرم افزار مرکز تماس MV با استفاده از AMI به Asterisk متصل میشود.
برای اتصال به Asterisk از پروتکلهای TCP و HTTP استفاده میشود:
معمولاً ارتباط با Asterisk از طریقTelnet با پورت 5038 (TCP) انجام میشود که این روش نسبت به روشهای دیگر رایج تر است. تنظیمات مربوط به کانکشن در فایل manager.conf که در مسیر /etc/asterisk قرار دارد تعریف میشود.
برای دریافتEvent به صورت وب سرویس از پروتکل (HTTP) استفاده میشود که باید دسترسی مربوطه در فایلهای manager.conf و http.conf ایجاد گردد.
تمام بستههای AMI اعم ازManager Events و Manager Actions فرمت یکسانی دارند و به این علت که قابل خواندن(Plain Text) هستند در نرم افزارهای مختلف به آسانی قابلیت تجزیه و تحلیل دارند.
دسترسی به AMI به صورت پیش فرض درAsterisk غیر فعال است وتنظیمات مربوط به فعالسازی آن به همراه تنظیمات و دسترسیهای کاربری در فایل manager.conf قرار دارند.
برای دسترسی به تنظیمات با استفاده از ویرایشگرهای لینوکسی مانند vi / vim /nano وارد مسیر زیر شوید و فایل را ویرایش کنید.
Vim /etc/asterisk/manager.com
فعالسازی دسترسی AMI و دسترسی وب در این قسمت انجام میشود:
[general]
Enabled = yes
webenabled = yes
در این قسمت پورت پیش فرض 5038 میباشد که قابل تغییر است و آی پی مجاز به دسترسی که در حالت پیش فرض برای همه مجاز است. اگر ارتباط از خود سیستم برقرار شود میتوان فقط آدرس 127.0.0.1) یا localhost ) و یا هر آی پی دیگر را مجاز کرد.
port = 5038
bindaddr = 0.0.0.0
برای تنظیمات کاربری و سطح دسترسی آنها میتوانید به این قسمت مراجعه کنید:
[admin]
Secret=1qaz2wsx
Read = all
Write = all
displayconnects = no
تمام رویدادها در Asterisk طبقه بندی های خود را دارند و برای تخصیص دسترسی آنها به کاربران میتوان در تنظیمات فایل manager.con نام هر کدام از طبقه بندی ها را در پارامتر read , write واردکرد.
سایر پارامترهای فایل manager.conf به این شرح است:
Tlsenable
Tlsbindaddr
Tlsbindport
Tlssecretfile
Tlsprivatekey
Tlscipher
Allowmultiplelogin
Displayconnects
Timstampevents
Brokeneventsaction
Channelvars
Debug
Httptimeout
ارسال و دریافت اطلاعات در AMI در سه حالت Action) ، Event و (Response خلاصه میشود.
Action : ارسال دستور از طریق کاربر (Client) به Asterisk است که همیشه باید خط اول در بسته ارسالی باشد.
action:login
username:admin
Secret: 1qaz2wsx
به منظور مشاهده Action ها در asterisk –r دستور manager show command را وارد کنید.
Response: هر Action که به سرور ارسال میشود میتواند حداقل یک پاسخ (Response) داشته باشد. هر پاسخ به همراه هدر response میآید و نشان دهنده وضعیت Action است که میتواند Success یا Error باشد.
Event: نمایش رویدادهای در حال وقوع است و میتواند حاوی اطلاعات ورود و خروج از صف، تماسهای ورودی یک داخلی و غیره باشد.
به منظور مشاهده event ها در asterisk –r دستور manager show event را وارد کنید.
به طور مثال جهت نمایش اطلاعات تماس اپراتورها به صورت Popup میتوان از Event : State با مشخصات زیر استفاده کرد.
Privilege – 1 : مقدار دسترسی برای دریافت Event را مشخص میکند.
Channelstatdesc – 2: وضعیت تماس را در سه حالت زیر مشخص میکند
Ringing -: در حال زنگ خوردن
Up -: درحال مکالمه
Down -: آماده و در حالت آزاد
:Calleridnum – 3 شماره داخلی اپراتور
Calleridname – 4: نام و شماره قابل نمایش برای اپراتور که میتواند شماره داخلی اپراتور نیزباشد
Connectedlinenum – 5: شماره تماس گیرنده یا مشتری
Connectedlinename – 6: نام و شماره قابل نمایش مشتری
: Duration – 7 مدت زمان مکالمه
Registered – 8: مدت زمان رجیستر شدن داخلی اپراتور
Event های موجود در Asterisk را در لینک زیر مشاهده کنید:
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+AMI+Events