سلام دوستان،
میخواهیم در Asterisk چند داخلی رو داخل صف (Queue) قرار بدم و اولویت پاسخگویی رو مشخص کنم که ابتدا تماس به داخلیهای مهمتر وصل بشه. بهترین راه برای این کار استفاده از Penalty در تنظیمات صف هست.
مراحل انجام کار
۱. ویرایش queues.conf
و تعریف صف
ابتدا فایل queues.conf
رو باز کنید:
nano /etc/asterisk/queues.conf
حالا یک صف با تنظیمات زیر ایجاد کنید:
[support]
musicclass = default
strategy = rrmemory
timeout = 15
retry = 5
wrapuptime = 10
maxlen = 0
joinempty = yes
leavewhenempty = no
ringinuse = no
member = Local/1001@from-internal,penalty=1
member = Local/1002@from-internal,penalty=2
member = Local/1003@from-internal,penalty=3
در مرکز تماس سیموتل سه خط آخر متن بالا را در قسمت more options صف باید وارد نمایید و تمام تظیمات صف در سیموتل در قسمت ویرایش صف است و نیاز به مراجعه به queues.conf نیست.
در این مثال:
1001
باpenalty=1
اولین اولویت را دارد و تماس ابتدا به این داخلی متصل میشود.1002
باpenalty=2
اگر1001
مشغول یا در دسترس نباشد، زنگ میخورد.1003
باpenalty=3
در نهایت اگر دو داخلی اول پاسخ ندادند، تماس به این داخلی میرسد.
۲. ذخیره و بارگذاری مجدد تنظیمات
بعد از ذخیره فایل، دستور زیر رو برای اعمال تغییرات اجرا کنید:
asterisk -rx "queue reload all"
۳. بررسی وضعیت صف
برای مشاهده وضعیت صف و داخلیهای متصل، از این دستور استفاده کنید:
asterisk -rx "queue show support"
توضیحات اضافی:
- کانتکست from-internal یک کانتکست تستی است و باید کانتکست استفاده شده در مرکز تماستان برای تماس با داخلی را استفاده نمایید.
- پارامتر Penalty: مقدار penalty از 1 شروع میشود و هرچقدر مقدار بیشتری داشته باشد، اولویت کمتری خواهد داشت.
strategy=rrmemory
: استراتژی یادآوری ترتیب اعضای صف به صورت داینامیک است. تماسها را به ترتیب داخلیهای لیستشده میفرستد، اما اولین داخلی آزاد را انتخاب میکند و ترتیب را برای تماس بعدی به خاطر میسپارد.- strategy تماس های صف می تواند linear هم باشد.این استراتژی تماسها را همیشه به همان ترتیب لیستشده ارسال میکند، بدون توجه به وضعیت داخلیها.
wrapuptime
: زمانی که هر داخلی بعد از اتمام تماس، برای شروع تماس جدید باید منتظر بماند.