آخرین ویرایش نوامبر 8, 2026 حامد کوه فلاح
انتشار Asterisk 24.0.0؛ بررسی قابلیتهای جدید، بهبودهای فنی و تغییرات مهم
نسخه Asterisk 24.0.0 در تاریخ ۵ نوامبر ۲۰۲۶ منتشر شد. این انتشار شامل قابلیتهای جدید در مدیریت جریان صوت، ارتباطات مبتنی بر WebSocket، مانیتورینگ Prometheus، مدیریت کنفرانسها و بهبودهای PJSIP است.
در کنار قابلیتهای جدید، تعدادی از مشکلات هسته Asterisk نیز برطرف شدهاند. بر اساس ChangeLog رسمی، این نسخه شامل ۴۳ کامیت و ۳۲ Issue حلشده است.
در این مقاله، مهمترین تغییرات Asterisk 24 را از دیدگاه فنی بررسی میکنیم و توضیح میدهیم این قابلیتها چه تأثیری بر توسعه سیستمهای تلفنی، مراکز تماس و راهکارهای ارتباطی مبتنی بر Asterisk دارند.
Asterisk 24 چیست و چه جایگاهی در مسیر توسعه Asterisk دارد؟
Asterisk یک فریمورک متنباز برای ساخت سیستمهای تلفنی، مراکز تماس و زیرساختهای ارتباطی مبتنی بر VoIP است. این پروژه قابلیتهایی مانند SIP، مدیریت تماس، صفهای انتظار، IVR، ضبط مکالمات، کنفرانس صوتی و APIهای توسعه را در اختیار متخصصان قرار میدهد.
نسخه 24 یکی از شاخههای اصلی جدید Asterisk است که در تاریخ ۵ نوامبر ۲۰۲۶ با شماره نسخه 24.0.0 منتشر شد.
این نسخه علاوه بر اصلاح مشکلات قبلی، امکانات جدیدی برای توسعهدهندگان و مدیران سیستم فراهم میکند؛ بهخصوص در حوزه ارتباطات Real-time، یکپارچهسازی با اپلیکیشنهای خارجی و مدیریت منابع سیستم.
مهمترین قابلیتهای جدید Asterisk 24
۱. پشتیبانی از Unbuffered Mode در WebSocket
یکی از تغییرات مهم Asterisk 24، اضافهشدن حالت جدید unbuffered به ماژول chan_websocket است.
این قابلیت برای توسعهدهندگانی اهمیت دارد که از WebSocket برای تبادل جریان صوتی بین Asterisk و اپلیکیشنهای خارجی استفاده میکنند.
در حالت Unbuffered، فریمهای صوتی بهمحض دریافت از WebSocket به هسته Asterisk منتقل میشوند؛ به این ترتیب، اپلیکیشن کنترل بیشتری بر زمانبندی و نحوه ارسال فریمهای صوتی خواهد داشت.
مزیت فنی این قابلیت چیست؟
در برخی معماریها، اپلیکیشن خارجی خودش فریمهای صوتی را با زمانبندی مناسب تولید میکند. در چنین شرایطی، استفاده از بافرینگ اضافی ممکن است باعث افزایش تأخیر یا ایجاد صف غیرضروری در مسیر پردازش صوت شود.
حالت Unbuffered برای این سناریوها طراحی شده است.
نکته جالب اینکه این حالت همچنان امکان استفاده از دستورات زیر را فراهم میکند:
START_MEDIA_BUFFERINGSTOP_MEDIA_BUFFERING
با استفاده از این دستورات، اپلیکیشن میتواند در شرایط موردنیاز، ارسال گروهی دادههای صوتی را فعال کند و پس از پایان آن دوباره به حالت Unbuffered برگردد.
برای فعالسازی این حالت، گزینه u به Dial String اضافه میشود.
کاربرد در پروژههای Voice AI:
این قابلیت میتواند برای توسعه ارتباط صوتی بین Asterisk و سرویسهای هوش مصنوعی، موتورهای پردازش گفتار و اپلیکیشنهای مبتنی بر WebSocket مفید باشد.
برای مثال، در معماری یک Voice AI Agent ممکن است مسیر صوت به شکل زیر باشد:
Caller → Asterisk → WebSocket → AI Voice Application
در این معماری، کنترل دقیقتر روی انتقال فریمهای صوتی میتواند به طراحی بهتر مسیر Media کمک کند.
البته Unbuffered به معنی حذف تمام تأخیرهای ارتباطی نیست؛ زمانبندی فریمها، Codec، شبکه و نحوه پردازش اپلیکیشن همچنان اهمیت دارند. همچنین برخی Codecها مانند Opus، Speex و G.729 محدودیتهایی در استفاده از قابلیت Buffering دارند.
۲. کنترل دقیقتر متریکهای Prometheus
در نسخه جدید، تنظیمات بیشتری برای کنترل خروجی متریکهای Prometheus اضافه شده است.
Prometheus یکی از ابزارهای پرکاربرد برای مانیتورینگ زیرساختهای نرمافزاری است و Asterisk نیز از طریق ماژول res_prometheus امکان ارائه متریکهای مرتبط با وضعیت سیستم را فراهم میکند.
در Asterisk 24 دو گزینه جدید برای کنترل متریکهای جزئی اضافه شدهاند:
گزینه اول:
channels_detail_metrics_enabled=yes این گزینه خروجی دو متریک زیر را کنترل میکند:
asterisk_channels_stateasterisk_channels_duration_seconds
با غیرفعالکردن آن، این متریکهای جزئی مربوط به وضعیت و مدتزمان کانالها صادر نمیشوند.
گزینه دوم:
bridges_detail_metrics_enabled=yes این گزینه متریک زیر را کنترل میکند:
asterisk_bridges_channels_count
هر دو گزینه بهصورت پیشفرض روی yes قرار دارند تا رفتار قبلی حفظ شود.
چرا این تغییر مهم است؟
در سیستمهایی با تعداد زیاد تماس همزمان، تعداد Channelها و Bridgeها میتواند بالا باشد. در چنین شرایطی، تولید متریکهای جزئی ممکن است حجم دادههای مانیتورینگ را افزایش دهد.
اکنون مدیر سیستم میتواند با توجه به نیاز مانیتورینگ، بخشی از این متریکها را غیرفعال کند.
این قابلیت برای زیرساختهایی که از ترکیب Asterisk، Prometheus و Grafana استفاده میکنند، اهمیت دارد.
نکته مهم: غیرفعالکردن این گزینهها به معنی غیرفعالشدن کامل Prometheus نیست؛ فقط متریکهای مشخصشده را تحت تأثیر قرار میدهد.
۳. بهینهسازی مصرف منابع در ConfBridge
یکی دیگر از تغییرات کاربردی Asterisk 24 مربوط به ماژول app_confbridge است.
در نسخه جدید، گزینهای به نام announcements به Bridge Profile اضافه شده است.
این گزینه امکان غیرفعالکردن اعلانهای عمومی کنفرانس را فراهم میکند.
برای مثال، در یک کنفرانس تلفنی ممکن است سیستم هنگام ورود یا خروج کاربران، پیام صوتی پخش کند یا تعداد شرکتکنندگان را اعلام کند.
در برخی سناریوها، مدیر سیستم به این اعلانها نیازی ندارد.
در نسخه جدید میتوان با تنظیم زیر این قابلیت را غیرفعال کرد:
announcements=no وقتی این گزینه غیرفعال باشد:
- کانال اختصاصی پخش اعلان عمومی ایجاد نمیشود.
- Thread مربوط به پردازش اعلانهای عمومی ایجاد نمیشود.
- صداهای ورود و خروج عمومی پخش نمیشوند.
- اعلام تعداد شرکتکنندگان برای همه اعضا متوقف میشود.
تأثیر بر مصرف منابع
در نسخههای قبلی، برای هر کنفرانس یک کانال Announcer و یک Taskprocessor Thread ایجاد میشد؛ حتی اگر هیچ اعلانی موردنیاز نبود.
با غیرفعالکردن این قابلیت، یک Channel و یک Thread به ازای هر کنفرانس صرفهجویی میشود.
این موضوع در سیستمهایی که تعداد زیادی کنفرانس همزمان دارند میتواند اهمیت قابل توجهی داشته باشد.
نکته: این تنظیم روی اعلانهای عمومی کنفرانس تأثیر میگذارد و پیامهایی که فقط برای یک شرکتکننده پخش میشوند، همچنان میتوانند فعال باشند.
۴. بهبود PJSIP در بررسی دسترسپذیری مقصدهای DNS
در Asterisk 24 نحوه بررسی دسترسپذیری Contactهایی که از طریق DNS شناسایی میشوند، بهبود یافته است.
در ساختارهای مبتنی بر PJSIP، ممکن است یک مقصد SIP از طریق DNS و رکوردهای مختلفی مانند موارد زیر مشخص شود:
- SRV
- A
- AAAA
در برخی شرایط، ممکن است یک سرویس SIP چند مقصد مختلف داشته باشد. بررسی تنها یکی از مقصدهای انتخابشده میتواند باعث شود Contact به اشتباه Unreachable تشخیص داده شود؛ درحالیکه مقصدهای دیگر همچنان در دسترس هستند.
در نسخه جدید، Asterisk تمام مقصدهای Resolve شده را برای Qualification بررسی میکند.
در نتیجه، اگر هرکدام از مقصدهای معتبر پاسخ مناسب ارائه دهند، Contact میتواند Reachable در نظر گرفته شود.
این تغییر برای چه سناریوهایی مفید است؟
- ارتباط با سرویسدهندگان SIP دارای چند Gateway
- استفاده از DNS SRV برای توزیع تماس
- زیرساختهای دارای چند نقطه ورود SIP
- سناریوهای Failover و افزونگی ارتباطی
این تغییر میتواند دقت تشخیص وضعیت Trunkها و مقصدهای SIP را بهبود دهد.
۵. حفظ دقت میکروثانیه در Queue Log
یکی از تغییرات مهم برای مدیران مراکز تماس، اصلاح ساختار ذخیرهسازی زمان در جدول queue_log است.
Asterisk در زمان ثبت رویدادهای صف انتظار، امکان تولید Timestamp با دقت میکروثانیه را دارد؛ اما در برخی نصبها، ساختار ستون زمان در MySQL و MariaDB فقط از نوع DATETIME بوده و دقت اعشاری ثانیه را ذخیره نمیکرد.
این مسئله میتوانست باعث شود چند رویداد مرتبط با یک تماس در یک ثانیه ثبت شوند یا ترتیب زمانی آنها بهدرستی حفظ نشود.
در نسخه جدید، نوع ستون زمان از:
DATETIME به:
DATETIME(6) تغییر میکند.
عدد ۶ نشاندهنده ذخیره شش رقم اعشار ثانیه است؛ یعنی دقت میکروثانیه.
چرا این تغییر برای مراکز تماس مهم است؟
در سیستمهای Call Center، ممکن است برای یک تماس چندین رویداد در فاصله زمانی بسیار کوتاه ثبت شود؛ مانند:
- ورود تماس به صف
- تغییر وضعیت تماس
- پاسخ اپراتور
- انتقال تماس
- پایان مکالمه
حفظ دقت زمانی این رویدادها میتواند در تحلیل دقیقتر Queue Log و مقایسه آن با اطلاعات CDR و CEL مفید باشد.
این تغییر برای پایگاههای داده MySQL و MariaDB اعمال میشود و PostgreSQL تحت تأثیر این تغییر ساختاری قرار نمیگیرد.
هشدار مهم برای ارتقا:
تغییر ساختار ستون در MySQL و MariaDB ممکن است باعث بازنویسی جدول شود. این عملیات برای جدولهای بزرگ میتواند زمانبر باشد و در مدت اجرای آن، نوشتن اطلاعات در Queue Log متوقف شود.
بنابراین پیش از ارتقا، حجم جدول، فضای ذخیرهسازی، نسخه پشتیبان و زمان مناسب برای Maintenance را بررسی کنید.
۶. بهبود مدیریت Timeout در WebSocket و ARI
در نسخه 24، مدیریت عملیات غیرمسدودکننده و Timeout در بخشهای زیر نیز بهبود یافته است:
- ARI
chan_websocketres_websocket_client
یکی از مشکلاتی که در ارتباطات WebSocket ممکن است رخ دهد، توقف یا کندشدن دریافت داده در سمت مقابل است.
اگر سرویس مقصد دیگر دادههای TCP را دریافت نکند، با پرشدن بافرهای شبکه، عملیات ارسال داده نیز ممکن است مسدود شود. این وضعیت در بعضی شرایط میتواند باعث ایجاد زنجیرهای از Lockها و اختلال در پردازش شود.
برای کنترل بهتر این شرایط، پارامتر write_timeout اضافه شده است.
این پارامتر حداکثر زمان مجاز برای عملیات نوشتن روی WebSocket را مشخص میکند. اگر عملیات در بازه تعیینشده انجام نشود، خطا برگردانده میشود.
این تغییر بهویژه برای ارتباطات طولانیمدت بین Asterisk و اپلیکیشنهای خارجی اهمیت دارد.
۷. بهروزرسانی مثالهای PJSIP Wizard برای IP Authentication و TLS
در فایل نمونه pjsip_wizard.conf.sample نیز مثالهای جدیدی اضافه شده است.
این مثالها شامل دو سناریوی مهم هستند:
سناریوی اول: احراز هویت Trunk بر اساس IP
بعضی سرویسدهندگان SIP بهجای Registration و احراز هویت Digest، تماسها را بر اساس آدرس IP مبدأ شناسایی میکنند.
در این سناریو ممکن است سرویسدهنده چند Gateway برای دریافت تماس داشته باشد و برای تماس خروجی نیز از Gateway دیگری استفاده کند.
مثالهای جدید به درک بهتر تنظیمات remote_hosts و تفکیک مسیرهای ورودی و خروجی کمک میکنند.
سناریوی دوم: Trunk مبتنی بر TLS و SRTP
مثال دیگری برای پیکربندی Trunk با TLS و رمزنگاری Media از طریق SRTP اضافه شده است.
این تغییر قابلیت جدیدی در پروتکل TLS یا SRTP ایجاد نمیکند، بلکه مستندات نمونه را برای پیادهسازی این سناریوها کاملتر میکند.
سایر اصلاحات و بهبودهای Asterisk 24
علاوه بر موارد بالا، تعدادی از مشکلات فنی نیز در این نسخه اصلاح شدهاند:
- رفع مشکل Hang در بارگذاری همزمان Named ACLها در PJSIP Config Wizard
- اصلاح مشکلات مربوط به WebSocket و صف فریمهای صوتی
- رفع برخی مشکلات مرتبط با ChanSpy و Bridge
- بهبود مدیریت وضعیت دستگاههای DAHDI
- اصلاح مشکلات مربوط به محاسبه RTT و Jitter در آمار RTP
- رفع برخی مشکلات حافظه و همزمانی در Audiohook و Speex
- اصلاح خطاهای مرتبط با Geolocation و ساخت جداول دیتابیس
- بهبود ثبت خطاهای مربوط به DNS Resolver
طبق ChangeLog رسمی، در این انتشار ۳۲ Issue حل شده و موردی از Security Advisory در فهرست اصلاحات این نسخه ثبت نشده است.
مقایسه قابلیتهای مهم Asterisk 24
| بخش | تغییر اصلی | کاربرد |
|---|---|---|
| WebSocket | Unbuffered Mode | کنترل بهتر جریان Media |
| Prometheus | تنظیم متریکهای جزئی | مدیریت حجم دادههای مانیتورینگ |
| ConfBridge | غیرفعالکردن Announcements | کاهش مصرف منابع |
| PJSIP | بررسی تمام مقصدهای DNS | تشخیص دقیقتر دسترسپذیری |
| Queue Log | ذخیره زمان با دقت میکروثانیه | تحلیل دقیقتر رویدادهای صف |
| ARI و WebSocket | پارامتر write_timeout | کنترل عملیات مسدودشونده |
| PJSIP Wizard | مثالهای IP Auth و TLS | تسهیل پیکربندی Trunk |
آیا Asterisk 24 برای توسعه Voice AI Agentها مناسب است؟
یکی از حوزههایی که تغییرات Asterisk 24 میتواند در آن کاربرد داشته باشد، توسعه Voice AI Agentها است.
در معماریهای جدید Voice AI، معمولاً Asterisk وظیفه مدیریت تماس تلفنی و ارتباط با شبکه مخابراتی را بر عهده دارد و پردازش گفتار، تشخیص صدا، تولید پاسخ و منطق مکالمه در یک اپلیکیشن خارجی انجام میشود.
در چنین معماریای، WebSocket میتواند مسیر انتقال Media بین Asterisk و اپلیکیشن هوش مصنوعی باشد.
قابلیت Unbuffered Mode در Asterisk 24 برای توسعهدهندگانی که کنترل زمانبندی فریمهای صوتی را در اپلیکیشن خود مدیریت میکنند، ارزشمند است.
برای مثال، یک معماری ساده میتواند به شکل زیر باشد:
Caller
|
v
Asterisk 24
|
v
chan_websocket
|
v
Voice AI Application
|
+---- ASR
|
+---- LLM
|
+---- TTS در این معماری:
- ASR وظیفه تبدیل گفتار به متن را دارد.
- LLM منطق مکالمه و تولید پاسخ را مدیریت میکند.
- TTS پاسخ متنی را به صوت تبدیل میکند.
- Asterisk مدیریت تماس و ارتباط با شبکه تلفنی را انجام میدهد.
البته استفاده از Unbuffered Mode بهتنهایی یک Voice AI Agent آماده ایجاد نمیکند. طراحی پروتکل Media، مدیریت Codec، کنترل تأخیر، مدیریت قطع و وصل تماس و هماهنگی بین اجزای ASR، LLM و TTS همچنان بر عهده توسعهدهنده است.
وضعیت Asterisk 24 در Issabel 5
این موضوع برای کاربران Issabel اهمیت زیادی دارد.
در ISO جدید Issabel 5 که پیشتر در ویپایران معرفی کردیم، از Asterisk 20 استفاده شده است.
بنابراین انتشار Asterisk 24 به معنی آن نیست که کاربران Issabel 5 میتوانند بدون تغییرات دیگر، نسخه Asterisk خود را مستقیماً به 24 ارتقا دهند.
Issabel فقط خود Asterisk نیست؛ مجموعهای از ماژولها، رابط مدیریتی، تنظیمات، وابستگیهای نرمافزاری و ابزارهای جانبی دارد که باید با نسخه موتور تلفنی سازگار باشند.
پیش از هرگونه ارتقا باید موارد زیر بررسی شوند:
- سازگاری Issabel Framework با Asterisk 24
- سازگاری ماژولهای PBX و Call Center
- سازگاری نسخه PJSIP و کتابخانههای وابسته
- وضعیت تنظیمات و فایلهای Dialplan
- سازگاری ماژولهای سفارشی و تجاری
- وضعیت دیتابیس و ساختار Queue Log
- امکان بازگشت به نسخه قبلی در صورت بروز مشکل
پیشنهاد ویپایران: برای سرورهای عملیاتی Issabel 5 فعلاً از نسخه Asterisk ارائهشده و سازگار با همان ISO استفاده کنید. Asterisk 24 را ابتدا در محیط آزمایشگاهی بررسی کنید و پس از اطمینان از سازگاری تمام اجزا، درباره مهاجرت تصمیم بگیرید.
دانلود Asterisk 24.0.0
برای دریافت سورس کد و بررسی فایلهای انتشار میتوانید از منابع رسمی استفاده کنید:
پیش از کامپایل یا نصب، وابستگیهای سیستمعامل و کتابخانههای موردنیاز را بررسی کنید. همچنین برای سرور عملیاتی، تهیه نسخه پشتیبان و اجرای تست در محیط آزمایشگاهی ضروری است.
جمعبندی
Asterisk 24.0.0 یک انتشار مهم برای توسعهدهندگان و متخصصان زیرساختهای VoIP است.
در این نسخه، بهبودهای قابل توجهی در ارتباطات WebSocket، مدیریت منابع ConfBridge، مانیتورینگ Prometheus، تشخیص دسترسپذیری مقصدهای PJSIP و دقت ثبت رویدادهای Queue Log ارائه شده است.
از نگاه توسعهدهندگان، اضافهشدن Unbuffered Mode در WebSocket و بهبود مدیریت Timeout میتواند در طراحی ارتباطات Real-time و یکپارچهسازی Asterisk با اپلیکیشنهای خارجی مفید باشد.
از نگاه مدیران مراکز تماس نیز بهبود دقت Queue Log و امکان کنترل منابع ConfBridge اهمیت زیادی دارد.
بااینحال، برای کاربران Issabel باید تفاوت میان انتشار مستقل Asterisk و نسخه سازگار با توزیع Issabel را در نظر گرفت. استفاده از Asterisk 24 در محیط عملیاتی نیازمند بررسی سازگاری کامل اجزای سیستم است.
نویسنده: حامد کوهفلاح | VOIPIRAN
ویپایران تلاش میکند جدیدترین تغییرات دنیای Asterisk، Issabel و فناوری VoIP را از نگاه فنی و کاربردی بررسی کند تا متخصصان بتوانند از قابلیتهای جدید در پروژههای واقعی استفاده کنند.
منابع رسمی برای استناد
- انتشار رسمی Asterisk 24 در ۵ نوامبر ۲۰۲۶: Asterisk News
- جزئیات فنی و فهرست تغییرات: Asterisk 24.0.0 ChangeLog
- فایلهای انتشار و نسخههای شاخههای دیگر: Asterisk Downloads.












