آخرین ویرایش خرداد ۱۰, ۱۴۰۴ حامد کوه فلاح
در بسیاری از پروژههای ویپ (VoIP)، نیاز به ضبط تماسها برای اهداف آموزشی، نظارتی، یا قانونی وجود دارد. استریسک (Asterisk) بهصورت پیشفرض دو برنامه کاربردی (Application) قدرتمند برای این منظور فراهم کرده است: MixMonitor و Monitor. در این مقاله، نحوه استفاده از این دو برنامه را بهطور کامل و همراه با مثالهای کاربردی در بستر ایزابل (Issabel) بررسی خواهیم کرد.
MixMonitor چیست؟
MixMonitor برنامهای در استریسک است که برای ضبط همزمان صدای طرفین تماس استفاده میشود و فایل خروجی آن بهصورت ترکیبشده (میکسشده) ذخیره میگردد. این برنامه در اغلب سناریوهای عملیاتی ترجیح داده میشود، زیرا صدای تماس در یک فایل واحد ذخیره میشود که بررسی آن را سادهتر میکند.
ساختار استفاده از MixMonitor
[voipiranexten => 1000,1,Answer(exten => 1000,n,Set(FILENAME=/var/spool/asterisk/monitor/${UNIQUEID}.wavexten => 1000,n,MixMonitor(${FILENAME},aexten => 1000,n,Playback(welcomeexten => 1000,n,Dial(SIP/1001,20exten => 1000,n,Hangup()
در این مثال:
-
از متغیر
${UNIQUEID}برای تولید نام منحصربهفرد فایل استفاده شده. -
گزینه
aباعث میشود فایل بهصورت خودکار بعد از پایان تماس بسته شود.
توضیح گزینههای مهم MixMonitor
-
b: فقط صدای تماسگیرنده (caller) را ضبط میکند. -
B: فقط صدای پاسخدهنده (callee) را ضبط میکند. -
a: فایل را بعد از پایان تماس ببندد. -
v: حجم صدا را افزایش میدهد. -
W: ضبط را فقط زمانی شروع میکند که تماس برقرار شود.
Monitor چیست؟
برنامهی قدیمیتری است که صدای دو طرف تماس را بهصورت جداگانه در دو فایل ضبط میکند و یک فایل سوم برای ترکیب این دو تولید میشود. معمولاً در پروژههای جدید پیشنهاد نمیشود، مگر برای اهداف خاص.
ساختار استفاده از Monitor
[voipiran]exten => 2000,1,Answer()exten => 2000,n,Monitor(wav,mycall,mb)exten => 2000,n,Dial(SIP/2001,20)exten => 2000,n,Hangup()
در این مثال:
-
فایلهای ضبطشده به صورت
mycall-in.wav,mycall-out.wav, وmycall.wavذخیره میشوند. -
گزینه
mبرای میکس صدا استفاده میشود. -
گزینه
bباعث میشود ضبط پس از تماس آغاز شود.
مثال عملی – ضبط تماس داخلی به داخلی در ایزابل
اگر بخواهید تمامی تماسهای داخلی ۳۰۰۰ را ضبط کنید، کافی است در فایل extensions_custom.conf چنین چیزی بنویسید:
[voipiran]exten => 3000,1,Answer()exten => 3000,n,Set(FILENAME=/var/spool/asterisk/monitor/${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)}-${EXTEN}.wav)exten => 3000,n,MixMonitor(${FILENAME},a)exten => 3000,n,Dial(SIP/3000,30,tT)exten => 3000,n,Hangup()
یادتان باشد برای اینکه داخلیها به این context دسترسی داشته باشند، باید در فایل extensions_custom.conf این خط را نیز اضافه کنید:
[from-internal-additional]include => voipiran











