اگر در حوزه سیستم‌های تلفنی، VoIP یا مراکز تماس فعالیت کرده باشید، احتمالاً بارها نام استریسک (Asterisk) را شنیده‌اید. جالب است بدانید خیلی از سانترال‌های تحت شبکه، مراکز تماس (کال‌سنترها)، سامانه‌های پاسخگوی صوتی (IVR) و حتی برخی سرویس‌های تلفنی ابری، به‌نوعی بر پایه استریسک (Asterisk) ساخته شده‌اند. با این حال، هنوز خیلی‌ها نمی‌دانند استریسک (Asterisk) چیست و اصلاً چرا در سیستم‌های VoIP استفاده می‌شود...؟

یک آشنایی اولیه با ماهیت استریسک (Asterisk) داشته باشیم...

برخلاف تصور خیلی از افراد، استریسک (Asterisk) یک نرم‌افزار ساده برای برقراری تماس نیست. این پلتفرم در واقع یک موتور ارتباطی قدرتمند است که می‌تواند یک سرور معمولی را به یک مرکز تلفن حرفه‌ای تبدیل کند؛ مرکزی که قابلیت مدیریت هزاران تماس هم‌زمان، تعریف انواع سناریوهای تماس، اتصال به خطوط SIP و PSTN، ضبط مکالمات، راه‌اندازی تلفن گویای IVR، صف تماس، صندوق صوتی، کنفرانس صوتی و ده‌ها قابلیت دیگر را در اختیار سازمان‌ها قرار می‌دهد.

استریسک (Asterisk) چطور کار می‌کند؟

استریسک (Asterisk) یک نرم‌افزار متن‌باز برای ایجاد و مدیریت سیستم‌های تلفنی مبتنی برIP  (IP PBX) است. این نرم‌افزار روی سیستم‌عامل لینوکس (و در برخی نسخه‌ها روی سایر سیستم‌عامل‌ها) نصب می‌شود و یک سرور عادی را به یک مرکز تلفن کاملاً حرفه‌ای تبدیل می‌کند.

اما اگر بخواهیم کمی دقیق‌تر نگاه کنیم، استریسک (Asterisk) را نباید صرفاً یک سانترال نرم‌افزاری دانست. در واقع این نرم‌افزار یک Communication Framework است. یعنی بستری که انواع ارتباطات صوتی را مدیریت، مسیریابی، پردازش و کنترل می‌کند. به همین دلیل، توسعه‌دهندگان می‌توانند بر اساس آن، سیستم‌های تلفنی کاملاً اختصاصی طراحی کنند.

فرض کنید شخصی با شرکت شما تماس می‌گیرد. از لحظه‌ای که تماس وارد سرور می‌شود تا زمانی که به کارشناس مناسب متصل شود، استریسک (Asterisk) ده‌ها تصمیم مختلف می‌گیرد:

  • تماس از چه خطی وارد شده است؟

  • آیا تماس باید وارد IVR شود؟

  • آیا زمان اداری است؟

  • آیا اپراتور موردنظر در دسترس است؟

  • اگر پاسخ داده نشد تماس به صف منتقل شود یا صندوق صوتی؟

  • آیا تماس ضبط شود؟

  • آیا اطلاعات تماس در CRM ثبت شود؟

تمام این تصمیم‌ها توسط موتور پردازش استریسک (Asterisk) انجام می‌شود.

استریسک (Asterisk) چگونه تماس‌ها را مدیریت می‌کند؟

فهمیدیم که برای درک بهتر عملکرد استریسک (Asterisk)، باید تصور کنیم این نرم‌افزار مانند یک مدیر هوشمند در مرکز تلفن عمل می‌کند. هر تماس ورودی یا خروجی، ابتدا وارد موتور پردازش استریسک (Asterisk) می‌شود. سپس نرم‌افزار بر اساس قوانینی که مدیر سیستم تعریف کرده است، تصمیم می‌گیرد تماس چه مسیری را طی کند.

به عنوان مثال، ممکن است سناریوی زیر تعریف شده باشد:

  • تماس‌های واحد فروش به صف فروش منتقل شوند.

  • تماس‌های خارج از ساعت کاری وارد صندوق صوتی شوند.

  • مشتریان VIP مستقیماً به مدیر فروش وصل شوند.

  • تماس‌های پشتیبانی ابتدا وارد IVR شوند.

  • تماس‌ها قبل از اتصال ضبط شوند.

  • اطلاعات تماس در CRM ثبت شود.

تمام این فرآیندها بدون دخالت انسان و تنها در چند میلی‌ثانیه انجام می‌شود. به همین دلیل، استریسک (Asterisk) را می‌توان موتور تصمیم‌گیری یک سیستم تلفنی دانست، نه صرفاً نرم‌افزاری برای برقراری تماس.

تفاوت استریسک (Asterisk) با یک سانترال سنتی چیست؟

در سیستم‌های سانترال قدیمی، امکاناتی که در اختیار سازمان قرار می‌گرفت تقریباً ثابت بود. اگر سازمان به قابلیت جدیدی نیاز داشت، معمولاً باید کارت سخت‌افزاری جدید خریداری می‌کرد یا حتی کل دستگاه را ارتقا می‌داد.

اما در استریسک (Asterisk) تقریباً همه چیز از طریق نرم‌افزار قابل تغییر است. برای مثال، اگر کسب‌وکار شما بخواهد:

  • یک IVR چندسطحی طراحی کند.

  • تماس‌ها را بر اساس ساعت کاری مدیریت کند.

  • تماس‌ها را به شعب مختلف هدایت کند.

  • سیستم را به CRM متصل کند.

  • گزارش‌های سفارشی از تماس‌ها تهیه کند.

  • یا حتی منطق اختصاصی برای پاسخگویی به مشتریان پیاده‌سازی کند.

در اغلب موارد نیازی به تغییر سخت‌افزار وجود ندارد و تنها با پیکربندی یا توسعه نرم‌افزار می‌توان این امکانات را ایجاد کرد. همین انعطاف‌پذیری، یکی از مهم‌ترین دلایل محبوبیت استریسک (Asterisk) در میان متخصصان VoIP است.

 چرا استریسک (Asterisk) در سیستم‌های تلفن اینترنتی VoIP این‌قدر محبوب است؟

در دنیای فناوری، نرم‌افزارهای زیادی آمده‌اند و رفته‌اند. اما استریسک (Asterisk) بیش از دو دهه است که همچنان یکی از مهم‌ترین پروژه‌های حوزه ارتباطات محسوب می‌شود. این ماندگاری اتفاقی نیست.

 استریسک (Asterisk) مجموعه‌ای از ویژگی‌ها را در کنار هم قرار داده که باعث شده هم شرکت‌های کوچک و هم سازمان‌های بزرگ بتوانند روی آن حساب کنند. در ادامه، مهم‌ترین دلایل محبوبیت این نرم‌افزار را بررسی می‌کنیم.

1-متن‌باز بودن (Open Source)

اولین و شاید مهم‌ترین مزیت استریسک (Asterisk)، متن‌باز بودن آن است. برخلاف خیلی از سانترال‌های تجاری که امکانات آن‌ها به سیاست‌های شرکت سازنده وابسته است، کد منبع استریسک (Asterisk) در دسترس توسعه‌دهندگان قرار دارد و امکان توسعه، سفارشی‌سازی و بهینه‌سازی آن وجود دارد.

این موضوع چند مزیت مهم ایجاد می‌کند:

  • وابستگی به یک فروشنده خاص (Vendor Lock-in) کاهش می‌یابد.

  • امکان توسعه قابلیت‌های اختصاصی فراهم می‌شود.

  • شرکت‌ها می‌توانند متناسب با نیاز خود، سیستم را شخصی‌سازی کنند.

  • جامعه بزرگی از توسعه‌دهندگان دائماً مشکلات را برطرف و امکانات جدید اضافه می‌کنند.

البته متن‌باز بودن به این معنا نیست که پیاده‌سازی استریسک (Asterisk) ساده است. در واقع، آزادی عمل بیشتر معمولاً به دانش فنی بیشتری نیز نیاز دارد.

2-انعطاف‌پذیری فوق‌العاده در طراحی سناریوهای تماس

تقریباً هر سناریوی تلفنی که بتوانید تصور کنید، در استریسک (Asterisk) قابل پیاده‌سازی است. برای مثال می‌توانید تعریف کنید:

  • مشتریان بر اساس شهر محل سکونت به شعبه مربوطه متصل شوند.

  • مشتریان قدیمی مستقیماً به مدیر حساب خود وصل شوند.

  • تماس‌های خارج از ساعات کاری به موبایل مدیر کشیک منتقل شوند.

  • اگر صف فروش بیش از ۱۰ نفر شد، تماس به شعبه دیگر هدایت شود.

  • مشتریانی که سه بار تماس گرفته‌اند اما پاسخی نگرفته‌اند، در اولویت قرار بگیرند.

  • هنگام تماس مشتری، اطلاعات او از CRM روی مانیتور اپراتور نمایش داده شود (Screen Pop).

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

3-پشتیبانی از طیف گسترده‌ای از پروتکل‌ها و تجهیزات

یکی از دلایل محبوبیت استریسک (Asterisk) این است که خود را به یک برند یا فناوری خاص محدود نکرده است. این نرم‌افزار از پروتکل‌ها و فناوری‌های متنوعی پشتیبانی می‌کند و می‌تواند با تجهیزات مختلف ارتباط برقرار کند؛ از جمله:

این سازگاری باعث می‌شود سازمان‌ها هنگام توسعه زیرساخت خود مجبور نباشند تمام تجهیزات را تعویض کنند.

4-مقیاس‌پذیری برای کسب‌وکارهای کوچک و بزرگ

یکی دیگر از ویژگی‌های ارزشمند استریسک (Asterisk)، مقیاس‌پذیری آن است. یک شرکت نوپا ممکن است تنها به پنج داخلی نیاز داشته باشد، در حالی که یک مرکز تماس بزرگ روزانه هزاران تماس را مدیریت می‌کند. استریسک (Asterisk) می‌تواند در هر دو سناریو مورد استفاده قرار گیرد، به شرط آنکه زیرساخت سخت‌افزاری و طراحی سیستم متناسب با حجم تماس‌ها انجام شده باشد.

این موضوع باعث شده خیلی از کسب‌وکارها بدون نیاز به تغییر کامل سیستم تلفنی، همزمان با رشد سازمان، ظرفیت مرکز تماس خود را افزایش دهند.

5-جامعه کاربری بزرگ و مستندات گسترده

یکی از مزیت‌هایی که معمولاً کمتر به آن توجه می‌شود، جامعه کاربری بسیار بزرگ استریسک (Asterisk) است. از آنجا که این پروژه سال‌هاست در سطح جهانی توسعه داده می‌شود. 

شاید باورتان نشود اما هزاران مقاله، مستند، آموزش، افزونه، ماژول و انجمن تخصصی درباره آن وجود دارد. بنابراین اگر توسعه‌دهندگان یا مدیران شبکه با مشکلی روبه‌رو شوند، معمولاً راهکارهای متعددی برای آن پیدا می‌کنند.

این پشتوانه فنی باعث شده استریسک (Asterisk) حتی در پروژه‌های بزرگ و حساس نیز گزینه‌ای قابل اعتماد باشد.

6-امکان توسعه و اتوماسیون

استریسک (Asterisk) صرفاً یک سیستم تلفنی نیست؛ بلکه بستری برای ساخت راهکارهای ارتباطی هوشمند است. از طریق رابط‌هایی مانند AMI، AGI، ARI و APIهای مختلف می‌توان قابلیت‌های پیشرفته‌ای مانند موارد زیر را پیاده‌سازی کرد:

  • شماره‌گیری خودکار (Auto Dialer)

  • کمپین‌های تماس

  • سیستم‌های نظرسنجی تلفنی

  • احراز هویت صوتی

  • اتصال به هوش مصنوعی

  • تحلیل مکالمات

  • تشخیص گفتار

  • تبدیل متن به گفتار (Text-to-Speech)

  • پاسخگوی هوشمند مبتنی بر AI

به همین دلیل، خیلی از محصولات مدرن حوزه VoIP در واقع بر پایه استریسک (Asterisk) توسعه داده شده‌اند.

معماری استریسک (Asterisk) چگونه است؟ آشنایی با اجزای اصلی سیستم

برای استفاده روزمره از استریسک (Asterisk)، لازم نیست تمام جزئیات معماری آن را بدانید؛ اما اگر بخواهید یک سیستم تلفنی پایدار، امن و قابل توسعه طراحی کنید، شناخت اجزای اصلی آن ضروری است.

برخلاف سانترال‌های سنتی که بیشتر بر سخت‌افزار متکی هستند، استریسک (Asterisk) از مجموعه‌ای از ماژول‌های نرم‌افزاری تشکیل شده که هر کدام وظیفه مشخصی بر عهده دارند. در ادامه، مهم‌ترین اجزای این معماری را بررسی می‌کنیم.

عنصر اول)  Core یا هسته اصلی پردازش تماس

هسته (Core) قلب استریسک (Asterisk) است. تمام تماس‌های ورودی و خروجی ابتدا وارد این بخش می‌شوند. Core مسئول مدیریت وضعیت تماس‌ها، ایجاد کانال‌های ارتباطی، اجرای Dialplan و هماهنگی میان سایر ماژول‌هاست. در واقع، تمام قابلیت‌های سیستم تلفنی در نهایت به هسته مرکزی وابسته هستند.

عنصر دوم) Channel Driver؛ پل ارتباطی با تجهیزات مختلف

استریسک (Asterisk) باید بتواند با انواع تجهیزات و پروتکل‌ها ارتباط برقرار کند. این وظیفه بر عهده Channel Driver است. هر Driver مسئول ارتباط با یک فناوری خاص است؛ برای مثال:

  • PJSIP برای ارتباطات SIP مدرن

  • chan_sip در نسخه‌های قدیمی‌تر

  • IAX2 برای ارتباط میان سرورهای استریسک (Asterisk)

  • DAHDI برای خطوط مخابراتی سنتی

  • Local Channel برای ارتباطات داخلی سیستم

به لطف این معماری ماژولار، افزودن فناوری‌های جدید به استریسک (Asterisk) نسبتاً ساده است.

عنصر سوم) Dialplan؛ مغز تصمیم‌گیری سیستم

اگر Core را قلب استریسک (Asterisk) بدانیم، Dialplan مغز آن است. دیال‌پلن مجموعه قوانینی است که مشخص می‌کند هر تماس چه مسیری را طی کند. برای مثال:

  • تماس به کدام داخلی منتقل شود؟

  • ابتدا پیام خوشامدگویی پخش شود یا خیر؟

  • اگر اپراتور پاسخ نداد چه اتفاقی بیفتد؟

  • تماس ضبط شود؟

  • تماس به صف برود؟

  • تماس به شماره موبایل انتقال یابد؟

تقریباً تمام منطق کسب‌وکار در سیستم تلفنی داخل Dialplan تعریف می‌شود. هرچه طراحی دیال‌پلن حرفه‌ای‌تر باشد، تجربه تماس مشتری نیز بهتر خواهد بود.

عنصر چهارم) Applications؛ مجموعه قابلیت‌های اجرایی

استریسک (Asterisk) صدها Application داخلی دارد که هر کدام عملیاتی خاص انجام می‌دهند. برای مثال:

  • Answer برای پاسخ دادن به تماس

  • Playback برای پخش فایل صوتی

  • Queue برای ورود به صف تماس

  • Dial برای شماره‌گیری

  • VoiceMail برای صندوق صوتی

  • Record برای ضبط مکالمه

  • Hangup برای پایان تماس

مدیر سیستم می‌تواند این Applicationها را مانند قطعات لگو کنار هم قرار دهد و سناریوهای پیچیده‌ای ایجاد کند.

عنصر پنجم) Codecها؛ مدیریت کیفیت و پهنای باند تماس

یکی از بخش‌های مهم هر سیستم VoIP، Codecها هستند. Codec مشخص می‌کند صدا چگونه فشرده، ارسال و بازسازی شود. استریسک (Asterisk) از Codecهای متعددی پشتیبانی می‌کند که هر کدام ویژگی‌های متفاوتی دارند؛ از جمله:

  • G.711 برای کیفیت بالا در شبکه‌های داخلی

  • G.729 برای مصرف کمتر پهنای باند

  • Opus برای کیفیت بسیار بالا در ارتباطات اینترنتی

  • GSM برای برخی کاربردهای خاص

انتخاب Codec مناسب تأثیر مستقیمی بر کیفیت مکالمه، مصرف اینترنت و بار پردازشی سرور دارد.

عنصر ششم) ماژول‌های امنیتی

از آنجا که استریسک (Asterisk) معمولاً از طریق اینترنت در دسترس است، امنیت اهمیت بسیار زیادی دارد. به همین دلیل، این نرم‌افزار از مکانیزم‌های مختلفی برای افزایش امنیت استفاده می‌کند؛ مانند:

  • احراز هویت کاربران

  • محدودسازی IPها

  • رمزنگاری تماس‌ها با TLS و SRTP

  • محدود کردن تعداد درخواست‌ها

  • ثبت لاگ‌های امنیتی

  • اتصال به ابزارهایی مانند Fail2Ban برای مقابله با حملات Brute Force

با این حال، امنیت نهایی به نحوه پیکربندی سیستم نیز بستگی دارد و تنظیمات نادرست می‌تواند سازمان را در معرض سوءاستفاده قرار دهد.

استریسک (Asterisk) چه تفاوتی با FreePBX، Issabel و سایر سیستم‌های تلفنی دارد؟

یکی از رایج‌ترین سؤالات مدیران IT و صاحبان کسب‌وکار این است که استریسک (Asterisk)، FreePBX و Issabel چه تفاوتی با یکدیگر دارند؟ خیلی تصور می‌کنند این‌ها رقیب هم هستند، در حالی که واقعیت کمی متفاوت است.

برای درک بهتر این تفاوت، تصور کنید استریسک (Asterisk) مانند موتور یک خودرو باشد. موتور به‌تنهایی قدرت لازم برای حرکت را تولید می‌کند، اما برای استفاده روزمره به فرمان، داشبورد، گیربکس، صندلی و سایر اجزا نیز نیاز است. FreePBX و Issabel دقیقاً چنین نقشی دارند؛ آن‌ها روی استریسک (Asterisk) ساخته شده‌اند و مدیریت آن را برای کاربران ساده‌تر می‌کنند.

به عبارت دیگر، در خیلی از موارد استریسک (Asterisk) هسته پردازش تماس است و FreePBX یا Issabel نقش رابط مدیریتی و ابزارهای جانبی را ایفا می‌کنند.

تفاوت استریسک (Asterisk) با سانترال‌های سخت‌افزاری

یکی دیگر از مقایسه‌های مهم، تفاوت استریسک (Asterisk) با سانترال‌های سنتی برندهایی مانند Panasonic، NEC یا Siemens است. در سانترال‌های سخت‌افزاری معمولاً امکانات از پیش تعیین شده‌اند و توسعه آن‌ها وابسته به ماژول‌ها و کارت‌های سخت‌افزاری است.

اما در استریسک (Asterisk) خیلی از قابلیت‌ها از طریق نرم‌افزار پیاده‌سازی می‌شوند. به همین دلیل، افزودن امکانات جدید معمولاً سریع‌تر، ارزان‌تر و منعطف‌تر انجام می‌شود. البته در مقابل، مسئولیت نگهداری، امنیت، به‌روزرسانی و پشتیبانی نیز بر عهده تیم فنی سازمان خواهد بود.

محدودیت‌ها و چالش‌های استریسک (Asterisk) چیست؟

در کنار تمام مزایا، استفاده از استریسک (Asterisk) بدون چالش نیست. نیاز به دانش تخصصی و مسئولیت کامل نگهداری جزو این چالش‌هاست. وقتی استریسک (Asterisk) را روی سرور خود نصب می‌کنید، مسئولیت همه چیز نیز با شماست. از جمله:

  • به‌روزرسانی‌ها

  • تهیه نسخه پشتیبان

  • مانیتورینگ

  • امنیت

  • رفع خطاها

  • مدیریت منابع سرور

در سازمان‌های بزرگ این موضوع طبیعی است، اما برای خیلی از شرکت‌های کوچک می‌تواند بار مدیریتی قابل توجهی ایجاد کند. هم‌چنین توجه داشته باشید که اگر تنظیمات امنیتی به‌درستی انجام نشود، سرور ممکن است در معرض حملاتی قرار بگیرد.

به همین دلیل، پیشنهاد می‌کنیم برای پیاده‌سازی سیاست‌های امنیتی، استفاده از فایروال، محدودسازی IPها، رمزنگاری ارتباطات و مانیتورینگ مداوم از خدمات مشاوره شرکت تلفنچی استفاده نمایید.

جمع‌بندی

استریسک (Asterisk) را می‌توان یکی از تأثیرگذارترین پروژه‌های تاریخ ارتباطات مبتنی بر IP دانست. این نرم‌افزار متن‌باز طی بیش از بیست سال گذشته، زیرساخت هزاران مرکز تماس ابری، سانترال IP و سامانه ارتباطی را در سراسر جهان شکل داده و همچنان به‌دلیل انعطاف‌پذیری، توسعه‌پذیری و جامعه کاربری گسترده، جایگاه خود را حفظ کرده است.

با این حال، قدرت بالای استریسک (Asterisk) همواره با مسئولیت بیشتر همراه است. طراحی صحیح معماری، تأمین امنیت، نگهداری مداوم و به‌روزرسانی سیستم، همگی به دانش و تجربه تخصصی نیاز دارند. به همین دلیل، پیش از انتخاب این راهکار، باید علاوه بر امکانات فنی، توان سازمان برای مدیریت و پشتیبانی آن نیز به‌دقت ارزیابی شود.