Для того, щоб обмежити кількість одночасних викликів в Астеріск використовуйте функції GROUP і GROUP_COUNT. Ніжче наведено приклад номерного плану Астеріск, де кількість одночасних ліній обмежена до 1.
- Набирається номер 810ХХХХХХХ, в консоль виводиться повідомлення: “набираємо 810ХХХХХХХ”
функція GROUP () призначає виклики в групу “long” - В консоль виводиться повідомлення: к-ть одночасних викликів – $ {GROUP_COUNT (long)}, де $ {GROUP_COUNT (long) = порядковий номер виклику.
- Перевіряється умова, якщо кількість одночасних викликів більше 1, виклик направляється в екстеншен “over” і роз’єднується з повідомленням в консоль:
обмеження перевищено на – […] викликів.
Якщо виклик перший, номер набирається через SIP транк провайдера.
1 2 3 4 5 6 7 |
exten => _810.,1,Verbose(*** набираємо - ${EXTEN} ***) same => n,Set(GROUP()=long) same => n,Verbose(*** к-ть одночасних викликів - ${GROUP_COUNT(long)} ***) same => n,GotoIf($[${GROUP_COUNT(long)} > 1]?over) same => n,Dial(PJSIP/${EXTEN}@siptrunk,,) same => n(over),Verbose(*** обмеження перевищено на - ${MATH(${GROUP_COUNT(long)}-1)} викликів***) same => n,Set(DIALSTATUS=CHANUNAVAIL) |
Удачі!