Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

ответил 2012-02-07 08:35:50 +0400

switch Gravatar switch

http://lynks.ru/

А в чем сложности? сделайте в 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.

Вот как-то так. Правда этот метод не учитывает одновременные звонки через один транк, но это задача уже на много более сложная.

А в чем сложности? сделайте в 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.