PHPackages                             pejman-aslani/asterisk-toolkit - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. pejman-aslani/asterisk-toolkit

ActiveLibrary[Framework](/categories/framework)

pejman-aslani/asterisk-toolkit
==============================

A comprehensive, asynchronous, and event-driven PHP framework for Asterisk, providing tools for AGI, AMI, and more.

02PHP

Since Aug 2Pushed 9mo agoCompare

[ Source](https://github.com/pejman-aslani/pejman-asterisk-toolkit)[ Packagist](https://packagist.org/packages/pejman-aslani/asterisk-toolkit)[ RSS](/packages/pejman-aslani-asterisk-toolkit/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Pejman Aslani Asterisk Toolkit
==============================

[](#pejman-aslani-asterisk-toolkit)

یک فریم‌ورک جامع، مدرن و حرفه‌ای برای PHP که تعامل با استریسک را از طریق رابط‌های AGI (FastAGI) و AMI ساده و لذت‌بخش می‌کند. این فریم‌ورک با معماری رویدادمحور (Event-driven) و غیرهمزمان (Asynchronous) ساخته شده تا بالاترین سطح از کارایی و انعطاف‌پذیری را ارائه دهد.

### ✨ قابلیت‌های کلیدی

[](#-قابلیت‌های-کلیدی)

- **ماژول FastAGI قدرتمند:** برای ساخت IVR های پیچیده و تعاملی با عملکرد بالا.
- **کلاینت AMI مدرن:** مبتنی بر ReactPHP برای مانیتورینگ زنده و کنترل کامل استریسک.
- **معماری رویدادمحور:** به راحتی به رویدادهای زنده استریسک (تماس جدید، قطع تماس، وضعیت داخلی‌ها و...) گوش دهید.
- **مبتنی بر Promise:** ارسال دستورات به AMI و دریافت پاسخ آن‌ها به صورت غیرهمزمان و بدون بلاک کردن برنامه.
- **کتابخانه توابع کمکی (Helpers):** شامل ابزارهای سطح بالا مانند `Menu` و `Authentication` برای AGI و توابع ساده برای دستورات رایج AMI.
- **پشتیبانی از PSR-3 Logger:** قابلیت تزریق هر نوع لاگر استاندارد (مانند Monolog) برای لاگ‌نویسی حرفه‌ای.
- **مدیریت تنظیمات آسان:** با استفاده از فایل `.env` برای جداسازی کامل تنظیمات از کد.
- **اتصال مجدد خودکار:** کلاینت AMI به صورت خودکار در صورت قطع شدن ارتباط، تلاش برای اتصال مجدد می‌کند.

---

🏁 شروع سریع
-----------

[](#-شروع-سریع)

### نیازمندی‌ها

[](#نیازمندی‌ها)

- PHP 8.2 یا بالاتر
- Composer
- دسترسی به یک سرور Asterisk
- فعال بودن رابط‌های Manager (AMI) و AGI در استریسک

### ۱. نصب

[](#۱-نصب)

این فریم‌ورک را از طریق Composer به پروژه خود اضافه کنید:

```
composer require pejman-aslani/asterisk-toolkit
```

### ۲. تنظیمات

[](#۲-تنظیمات)

یک فایل `.env` در ریشه پروژه خود بسازید و تنظیمات مربوط به AGI و AMI را در آن وارد کنید. می‌توانید از فایل `.env.example` به عنوان الگو استفاده کنید.

**.env**

```
# --- FastAGI Server Configuration ---
AGI_LISTEN_ADDRESS="tcp://127.0.0.1:4573"

# --- AMI Client Configuration ---
AMI_HOST="127.0.0.1"
AMI_PORT=5038
AMI_USER="your_ami_user"
AMI_SECRET="your_ami_secret"

# --- General Configuration ---
LOG_LEVEL="INFO"
```

---

📞 ماژول AGI (برای ساخت IVR)
---------------------------

[](#-ماژول-agi-برای-ساخت-ivr)

ماژول AGI برای مدیریت منطق تماس‌های ورودی و ساخت منوهای صوتی تعاملی (IVR) طراحی شده است. این ماژول از طریق یک سرور دائمی FastAGI کار می‌کند که بالاترین عملکرد را تضمین می‌کند.

### راه‌اندازی سرور FastAGI

[](#راه‌اندازی-سرور-fastagi)

یک فایل اجرایی (مثلاً `bin/fastagi-server.php`) بسازید. این سرور به تماس‌های ورودی از استریسک گوش می‌دهد و آن‌ها را به اپلیکیشن IVR شما تحویل می‌دهد.

**`bin/fastagi-server.php`**

```
#!/usr/bin/php -q
