مقدمه

اگر با سیستم‌های VoIP کار می‌کنی، بدون شک نام AMI در Asterisk را شنیده‌ای. AMI یا Asterisk Manager Interface یکی از مهم‌ترین ابزارها برای کنترل، مانیتورینگ و مدیریت تماس‌ها در لحظه است.

در این مقاله یاد می‌گیری:


AMI چیست؟ (Asterisk Manager Interface)

Asterisk Manager Interface یک رابط مدیریتی مبتنی بر TCP است که به برنامه‌نویس اجازه می‌دهد به صورت Real-Time با Asterisk ارتباط برقرار کند.

به زبان ساده:

AMI مثل یک کنترل پنل مخفی است که از طریق آن می‌توانی استریسک را برنامه‌نویسی و کنترل کنی.


کاربردهای AMI در Asterisk

با استفاده از AMI می‌توان:


نحوه اتصال به AMI با PHP

برای اتصال به AMI از پورت 5038 استفاده می‌شود.

نمونه کد PHP (نسخه ساده و کاربردی)

<?php

$socket = fsockopen("127.0.0.1", 5038, $errno, $errstr, 30);

if (!$socket) {
die("Connection failed: $errstr ($errno)");
}

fputs($socket, "Action: Login\r\n");
fputs($socket, "Username: admin\r\n");
fputs($socket, "Secret: admin123\r\n");
fputs($socket, "Events: on\r\n\r\n");

while (!feof($socket)) {
$response = fgets($socket, 4096);
echo $response;
}

?>

ارسال دستور Originate (برقراری تماس)

یکی از مهم‌ترین قابلیت‌های AMI، ایجاد تماس خودکار است.

مثال:

fputs($socket, "Action: Originate\r\n");
fputs($socket, "Channel: SIP/100\r\n");
fputs($socket, "Context: from-internal\r\n");
fputs($socket, "Exten: 200\r\n");
fputs($socket, "Priority: 1\r\n");
fputs($socket, "CallerID: 100\r\n\r\n");

دریافت وضعیت داخلی‌ها در AMI

AMI می‌تواند وضعیت داخلی‌ها را لحظه‌ای نمایش دهد:

این قابلیت در سیستم‌های کال‌سنتر بسیار مهم است، مخصوصاً در پروژه‌هایی مثل Issabel.


معماری واقعی استفاده از AMI

در پروژه‌های حرفه‌ای VoIP:

کاربر → پنل PHP → AMI → Asterisk → تماس تلفنی

یا در حالت پیشرفته‌تر:


تفاوت AMI و ARI در Asterisk

ویژگیAMIARI
سطح کنترلمدیریتیعمیق
کاربردمانیتورینگ + کنترلCall Flow پیشرفته
پیچیدگیساده‌ترپیچیده‌تر

مشکلات رایج AMI

1. اتصال برقرار نمی‌شود

2. Event دریافت نمی‌شود

3. قطع شدن اتصال


کاربرد واقعی AMI در پروژه‌ها

AMI در پروژه‌های واقعی برای موارد زیر استفاده می‌شود:


FAQ (سوالات متداول)

AMI در Asterisk چیست؟

AMI یک رابط مدیریتی برای کنترل و مانیتورینگ Asterisk در لحظه است.

آیا AMI برای PHP مناسب است؟

بله، PHP یکی از رایج‌ترین زبان‌ها برای کار با AMI است.

تفاوت AMI و SIP چیست؟

SIP برای برقراری تماس است، AMI برای کنترل و مدیریت تماس‌ها.

پورت AMI چیست؟

پورت پیش‌فرض AMI عدد 5038 است.


جمع‌بندی

Asterisk Manager Interface یکی از مهم‌ترین ابزارها در سیستم‌های VoIP است که به کمک آن می‌توان سیستم‌های حرفه‌ای مثل کال‌سنتر، CRM و پنل‌های مدیریتی ساخت.

اگر با Asterisk کار می‌کنی، یادگیری AMI برایت ضروری است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *