artem
18.12.2012
14621

Ограничение продолжительности разговора с помощью FreePBX (Time limit for outbound call FreePBX)

Из Библии Asterisk

Если кто-то    забыл, напомним, что приложение Dial () пытается соединить каналы.

Может иметь флаг L (x [: y ][: z ])

Продолжительность звонка ограничивается x миллисекундами, дается предупреждение, когда осталось y миллисекунд, и предупреждение повторяется каждые y миллисекунд вплоть до истечения допустимой продолжительности разговора. Параметр x – обязательный; y и z – необязательные.


Как это применить во FreePBX?

Изменять глобальные параметры набора номера я не желаю, ибо это подействует на всех, тогда найдем переменную, которая отвечает за параметры набора и попытаемся ее нужным образом менять, когда это необходимо. Подойдет TRUNK_OPTION – она предназначена для исходящих звонков.


Создаем Custom Context во FreePBX

Создадим кастом контекст с названием user-special, отметим в нем разрешенные «Outbound Routes» – маршруты для исходящих, с целью оставить только то что разрешено. Ограничиваем контексты только разрешенными и тд. как обычно. А вот в поле «Dial Rules» прописываем маски разрешенных направлений. Обращаю внимание на необходимость масок для выделения направлений, имеющих ограниченния по продолжительности разговоров.

Custom Context

У меня этими направленями будут _6ZXXXXXX и _2ZXXXXXX.

Создав для нас кастом контекст FreePBX, делает для нас в файле /etc/asterisk/extensions_additional.conf следующее:

[user-special]
  exten ≥ _6ZXXXXXX,1,Goto  (user-special_rulematch,${EXTEN},1)  exten ≥ _2ZXXXXXX,1,Goto  (user-special_rulematch,${EXTEN},1)  [user-special_rulematch]  include ≥ user-special_rulematch-custom  

интересующие нас совпадения оправляются в контекст user-special_rulematch где есть запись о подключении контекста user-special_rulematch-custom – которого пока не существует.


Дальше ручками делаем следующее

Исправим это создав такой контекст в файле /etc/asterisk/extensions_custom.conf

[user-special_rulematch-custom]  exten ≥ _6ZXXXXXX,1,Noop  (Initial TRUNK_OPTIONS=${TRUNK_OPTIONS})  exten ≥ _6ZXXXXXX,n,Set  (TRUNK_OPTIONS=  «L  (240000:60000:20000)»)  exten ≥ _6ZXXXXXX,n,Noop  (Changed TRUNK_OPTIONS=${TRUNK_OPTI  exten ≥ _2ZXXXXXX,1,Set  (TRUNK_OPTIONS=  «L  (120000:30000:10000)»)  ;--== end of [user-special_rulematch-custom] ==--;


Что же получилось?

Да вообще-то все:

  1. Пользователей (экстеншены) ограничиваем в правах, привязвая их к нашему кастом контексту user-special

  2. При исходящих, попадающих, например под маску _6ZXXXXXX звонок переходит из user-special –> user-special_rulematch –> user-special_rulematch-custom, где TRUNK_OPTIONS принимает значение L (240000:60000:20000) нужное нам.

  3. Это означает, что общая продолжительность разговора 4 минуты, за 1 минуту до принудительного завершения будет предупреждение, которое будет повторяться каждые 20 секунд. Слышать его будет только наш абонент.

  4. При этом направление _2ZXXXXXX тоже имеет ограничение по продолжительности, но со своими параметрами.

Статья любезно предоставлена сайтом http://ru.it.ntcom.lv/

 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices