...

افزونه، آموزش کامل شنود تماس‌ با حالت‌های حرفه‌ای در Asterisk و Issabel

شنود در ایزابل و استریسک و

فهرست مطالب

زمان مطالعه: 2 دقیقه

🧭 مقدمه

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

  • فقط شنود (Listen)

  • صحبت فقط با یکی از طرفین (Whisper)

  • ورود کامل به تماس (Barge-in)

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


🔧 ابزار اصلی: برنامه ChanSpy در Asterisk

ChanSpy() برنامه‌ای داخلی در Asterisk است که امکان مانیتور کردن کانال‌های فعال را با ویژگی‌های مختلف فراهم می‌کند:

پارامتر عملکرد
q بدون صدا هنگام شروع شنود
w نجوا به یک سمت تماس
W نجوا بدون شنیدن صدای طرف مقابل
B ورود کامل به تماس
d تغییر حالت شنود با DTMF
o شنود یک‌طرفه فقط صدای خروجی
E فیلتر فقط کانال‌های خاص مانند SIP

🛠 سناریو و شماره‌گیری

ما چندین داخلی خاص ایجاد می‌کنیم که مدیر می‌تواند با شماره‌گیری آنها تماس‌ها را شنود کند:

شماره‌گیری حالت شنود مثال
۳۰۱۰۰۱ شنود کامل شنود تماس داخلی ۱۰۰۱
۳۱۱۰۰۱ فقط صدای خروجی شنود فقط صدای خروجی داخلی ۱۰۰۱
۳۲۱۰۰۱ Whisper صحبت فقط با یکی از طرفین تماس
۳۳۱۰۰۱ Private Whisper صحبت بدون شنیدن صدا
۳۴۱۰۰۱ Barge-in ورود به تماس دو طرفه
۳۵۱۰۰۱ تغییر حالت شنود با DTMF ۴:شنود، ۵:Whisper و…

📄 پیاده‌سازی گام‌به‌گام در Issabel

🔹 ۱. ویرایش فایل Dialplan

nano /etc/asterisk/extensions_custom.conf

🔹 ۲. اضافه کردن include در بخش اصلی

[from-internal-custom]
include => voipiran-monitor

🔹 ۳. اضافه کردن Dialplan شنود حرفه‌ای

[voipiran-monitor]

; شنود کامل تماس

exten => _30X.,1,ChanSpy(SIP/${EXTEN:2},Eq)

exten => _30X.,n,Hangup()

; شنود فقط خروجی تماس (یک‌طرفه)

exten => _31X.,1,ChanSpy(SIP/${EXTEN:2},Eqo)

exten => _31X.,n,Hangup()

; Whisper (صحبت با یکی از طرفین)

exten => _32X.,1,ChanSpy(SIP/${EXTEN:2},Eqw)

exten => _32X.,n,Hangup()

; Private Whisper (نجوا بدون شنود صدای طرف)

exten => _33X.,1,ChanSpy(SIP/${EXTEN:2},EqW)

exten => _33X.,n,Hangup()

; Barge-in (ورود کامل به تماس)

exten => _34X.,1,ChanSpy(SIP/${EXTEN:2},EqB)

exten => _34X.,n,Hangup()

; تغییر حالت در حین شنود با DTMF

exten => _35X.,1,ChanSpy(SIP/${EXTEN:2},Eqd)
exten => _35X.,n,Hangup()

✅ اگر از PJSIP استفاده می‌کنید: SIP/ را با PJSIP/ جایگزین کنید.


▶️ تست نهایی در Issabel

  1. دو داخلی ایجاد کنید (مثلاً ۱۰۰۱ و ۱۰۰۲).

  2. با داخلی ۱۰۰۱ به ۱۰۰۲ تماس بگیرید.

  3. با داخلی مدیر شماره‌گیری کنید: ۳۰۱۰۰۱ یا ۳۲۱۰۰۱.

  4. حالت شنود موردنظر فعال می‌شود.


📌 نکات مهم و حرفه‌ای

  • استفاده از پیشوندهای ۳۰ تا ۳۵ برای انواع شنود

  • امکان اضافه کردن شرط‌های بیشتر مثل محدودیت زمان، سطح دسترسی و…

  • استفاده از Hangup() در پایان برای قطع خودکار شنود


🔁 مقالات مرتبط


❓ FAQ – سوالات متداول

🔹 آیا این روش فقط روی SIP کار می‌کند؟

خیر، با تغییر SIP/ به PJSIP/ در صورتی که داخلی‌ها روی PJSIP باشند، قابل استفاده است.

🔹 آیا می‌توان به جای شماره داخلی از Channel ID استفاده کرد؟

بله، ولی باید ChanSpy را برای کانال خاصی با فیلتر دقیق اجرا کرد که پیچیده‌تر است.

🔹 آیا امکان محدودسازی شنود به ادمین وجود دارد؟

بله، با استفاده از تابع CallerID یا CheckGroup می‌توان سطح دسترسی ایجاد کرد.


🧩 نتیجه‌گیری

این مقاله یک ابزار شنود کامل و حرفه‌ای در Asterisk و Issabel ارائه کرد که می‌توان آن را در پروژه‌های واقعی استفاده کرد. پیشنهاد می‌کنم آن را تست کرده و در سناریوهای واقعی‌تان پیاده‌سازی کنید.

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از

0 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها