![]() | 1 | изначальная версия редактировать | |
А в чем сложности? сделайте в ASTDB записи вроде
/sipnet/max_sec 3600
/sipnet/cur_sec 0
/sipnet/max_count 10
/sipnet/cur_count 0
во время звонка проверяйте cur_count
меньше чем max_count
или нет, тоже самое и для длительности. Затем считаете оставшуюся длительность для транка, умножаете на 1000 и подставляете в опцию L
команды dial
(у нее аргумент должен быть в миллисекундах). В опцию M
команды диал вставите макрос, который устанавливает флаги что соединение состоялось, инкременируете cur_count
После завершения звонка в экстеншене h
делаете обработку: если звонок состоялся, то значение CDR(billsec)
прибавляете к /sipnet/cur_sec
.
Вот как-то так. Правда этот метод не учитывает одновременные звонки через один транк, но это задача уже на много более сложная.
![]() | 2 | No.2 Revision редактировать |
А в чем сложности? сделайте в ASTDB записи вроде
/sipnet/max_sec 3600
/sipnet/cur_sec 0
/sipnet/max_count 10
/sipnet/cur_count 0
во время звонка проверяйте cur_count
меньше чем max_count
или нет, тоже самое и для длительности. Затем считаете оставшуюся длительность для транка, умножаете на 1000 и подставляете в опцию L
команды dial
(у нее аргумент должен быть в миллисекундах). В опцию M
команды диал вставите макрос, который устанавливает флаги что соединение состоялось, инкременируете cur_count
После завершения звонка в экстеншене h
делаете обработку: если звонок состоялся, то значение CDR(billsec)
прибавляете к /sipnet/cur_sec
. В крон добавляете скрипт, который раз в сутки обнуляет текущие значения.
Вот как-то так. Правда этот метод не учитывает одновременные звонки через один транк, но это задача уже на много более сложная.
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.