مقدمه
یکی از برنامههای بسیار کاربردی و مهم در Dialplan استریسک، برنامه Record است که به شما امکان میدهد صدای کاربر را ضبط و ذخیره کنید. این قابلیت برای سناریوهای مختلفی مانند دریافت پیام صوتی، ضبط مکالمه یا ذخیره پیغامهای صوتی کاربران بسیار مفید است. در این مقاله با کاربردهای برنامه Record، پارامترهای آن و نمونههای عملی آشنا میشویم.
معرفی برنامه Record و کاربرد آن
برنامه Record به شما اجازه میدهد یک فایل صوتی ضبط کنید که میتواند برای اهداف مختلف مانند دریافت پیام صوتی کاربر، ثبت اطلاعات صوتی در IVR، یا حتی ضبط پیامهای تعاملی استفاده شود. این برنامه قابلیت تنظیم فرمت فایل، مدت زمان ضبط، و ویژگیهای دیگری را دارد که کنترل کامل روی ضبط را فراهم میکند.
نحوه استفاده و ساختار دستور Record در Dialplan
ساختار کلی برنامه Record به صورت زیر است:
exten => 1234,1,Answer()
same => n,Record(/var/spool/asterisk/recordings/${CALLERID(num)}-message.wav,5,30)
same => n,Playback(/var/spool/asterisk/recordings/${CALLERID(num)}-message)
same => n,Hangup()
توضیح:
-
/var/spool/asterisk/recordings/${CALLERID(num)}-message.wav
مسیر ذخیره فایل صوتی است که با شماره تماس گیرنده نامگذاری شده. -
عدد اول (مثلاً
۵
) حداقل زمان ضبط به ثانیه است. -
عدد دوم (مثلاً
۳۰
) حداکثر زمان ضبط است.
پارامترهای مهم برنامه Record
پارامتر | توضیح | مثال کاربردی |
---|---|---|
file | مسیر و نام فایل ضبط | /tmp/record-${CALLERID(num)} |
silence | تعداد ثانیه سکوت پس از آن ضبط متوقف شود | ۳ ثانیه سکوت برای پایان ضبط |
maxduration | حداکثر زمان ضبط (ثانیه) | ۲۰ ثانیه |
options | پارامترهای اضافی مانند s برای ضبط بدون سکوت اولیه | s |
مثالهای کاربردی و عملی
مثال ۱: ضبط پیام کاربر تا ۲۰ ثانیه با توقف در ۳ ثانیه سکوت
exten => 6000,1,Answer()
exten => 6000,n,Playback(beep)
exten => 6000,n,Record(/var/spool/asterisk/voipiran-recording-${CALLERID(num)}.wav,3,20,s)
exten => 6000,n,Playback(vm-thankyou)
exten => 6000,n,Hangup()
توضیح:
کاربر پس از شنیدن بوق، شروع به ضبط پیام میکند و اگر ۳ ثانیه سکوت کند یا ۲۰ ثانیه تمام شود، ضبط متوقف میشود.
مثال ۲: ضبط پیام صوتی و ارسال آن به اپراتور (از طریق صف)
exten => 7000,1,Answer()
exten => 7000,n,Playback(beep)
exten => 7000,n,Record(/var/spool/asterisk/voice_msgs/${UNIQUEID}.wav,5,60)
exten => 7000,n,Queue(support_queue,tT)
exten => 7000,n,Hangup()
نکات مهم و هشدارها
-
مسیر ذخیره فایلهای ضبط شده باید دسترسی نوشتن داشته باشد.
-
برای جلوگیری از اشغال بیش از حد فضای دیسک، فایلهای ضبط شده باید دورهای پاک یا آرشیو شوند.
-
در ایزابل، معمولا باید این Dialplanها را در کانتکست
[voipiran]
یا[from-internal-additional]
تعریف کنید تا تداخلی با مسیرهای داخلی پیشفرض نداشته باشید.
جمعبندی
برنامه Record یک ابزار قدرتمند برای ضبط صدای کاربر در استریسک است که در IVRها، دریافت پیام صوتی و پروژههای حرفهای VoIP کاربرد فراوان دارد. با تنظیم دقیق پارامترها میتوانید کنترل کاملی روی فرایند ضبط داشته باشید و تجربه کاربری بهتری فراهم کنید.
FAQ – سوالات متداول
س: چگونه ضبط را با حداکثر زمان ۳۰ ثانیه تنظیم کنم؟
ج: پارامتر سوم در برنامه Record را ۳۰ تنظیم کنید؛ مثلاً Record(filename,3,30)
س: اگر کاربر سکوت کند ضبط متوقف میشود؟
ج: بله، پارامتر دوم تعیینکننده تعداد ثانیه سکوت قبل از توقف ضبط است.