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

Поминутные ограничения на транк

0

Приветствую вас, коллеги. Для создания бюджетного решения телефонии в маленьком офисе познакомился с отличной системой Asterisk на базу сборки Elastix.

Прикрутил к нему 5 GSM модемов и внешний SIP транк в такой конфигурации: modem1 - operator1 modem2 - operator1 modem3 - operator2 modem4 - operator2 modem5 - operator3 sip1 - operator4

Завел 4 пользователя. Фильтром разрулил направления по кодам операторов. Все работает отлично, но! Каждый из операторов в своем пакете имеет некое количество бесплатных минут. Например, для operator1 оно составляет 200 минут в день, а для operator4 2000 минут на месяц.

Хотелось бы иметь возможность не превышать данные лимиты, но при этом не лимитировать звонки пользователей. Если у мене 2 сим карты от operator_1 то в день пользователи смогут совершить звонков на 400 минут, после чего возможность совершать звонки через эти транки должна быть ограничена до временного порога начисления нового пакета минут (примерно 00-30), но входящие не трогать. В общем нужно заставить систему понимать предел исходящих минут на транк и уметь блокировать исходящие вызовы по направлению при достижении этих лимитов. На данный момент склонен считать, что данная задача ложится на биллинг. Прошу дать совет возможно ли осуществить задуманное и что для этого нужно.

Благодарю.

удалить закрыть спам изменить тег редактировать

спросил 2014-03-10 15:36:19 +0400

анонимный пользователь

Аноним

Comments

1

ну да,бюджетная система, 5 модемов,ага. здесь этта задача рассматривалася. ищите или добавляйте тег бизнес и нанимайте консультанта. через веб не делается.

meral ( 2014-03-10 18:06:23 +0400 )редактировать

Такое количество как раз вызвано желанием всегда вписываться в рамки бесплатных минут. А наличие такого количества модемов объясняется остатком со времен 3G интернета в нашем офисном помещении. Провели оптику - потребность отпала. Стоимость железа на котором все это поднято не превышает $100, поэтому не понимаю иронии по поводу бюджетности.

Лучше подскажите где искать, или посоветуйте не дорого консультанта. Не стоит думать, что я преследую коммерциализацию, просто потратив какое-то количества времени на поднятие неплохого решения, хотел бы допилить его еще немного и забыть.

RomanFokin ( 2014-03-10 18:12:49 +0400 )редактировать

Если найдете "недорогого" вменяемого консультанта, покажите его и он тут же станет "дорогим" ;) читайте вот это http://asterisk-support.ru/question/14859/knigi-po-asterisk/, потом ищите по форуму и пишите. или заплатите комуто ~200 долларов, вам помогут. будут КОНКРЕТНЫЕ выпросы- пишите. этот вопрос звучит как "хочу собрать машину, помогите".

meral ( 2014-03-11 01:48:00 +0400 )редактировать

ну или можете поставить а2б. выставить дневной лимит, правильно настроить recurring скрипты и стоимости, интегрировтаь с вашей системой. будет красивее но еще более сложно.

meral ( 2014-03-11 01:50:27 +0400 )редактировать

Спасибо Вам за теоретические материалы - обязательно освою.

"хочу собрать машину" - безусловно так и есть, но это вызвано не желанием получить все сразу и бесплатно, а желанием по возможность сократить время реализации не профильной задачи предприятия за счет стороннего успешного опыта. Поверхностное знакомство с voip да и с телефонией в целом, дали понять что путешествие за пределы мануалов по конфигу сборок типа elastix сулит длинные ночи чтива. Поэтому вопросы, которые я тут задаю нацелены на уменьшения количества костылей, на которые еще предстоит наступить. Согласитесь, было бы глупо начинать что то искать по этой не поинтересовавшись в комьюнити возможно ли это в принципе и не получив, хотя бы, примерное направление.

RomanFokin ( 2014-03-11 05:42:42 +0400 )редактировать

2 Ответа

1

храните данные о количестве минут для каждого транка в БД и изменяйте переменную после разговора. Ограничивайте время разговора через опцию команды Dial L(x[:y][:z]) . Из веб-интерфейса сделать это не получится, но задача вполне выполнимая.

Пример использования

;;Устанавливаем проигрывание файлов
exten => _X.,n,Set(LIMIT_PLAYAUDIO_CALLER=yes)
exten => _X.,n,Set(LIMIT_PLAYAUDIO_CALLEE=no)
;; файл для предупреждения об окончании 15ти последних секунд
exten => _X.,n,Set(LIMIT_WARNING_FILE=15-seconds)
exten => _X.,n,AGI(balance_check.agi) ; проверка баланса
exten => _X.,n,Dial(${TRUNK}/${EXTEN},${DEFAULT_TIMEOUT},L($[${MAX_DURATION}*60000]:15000))

где

TRUNK - выбираемый транк для звонка (также можно анализировать из БД)

MAX_DURATION - максимальное время для звонка в минутах (берется из проверки баланса)

ссылка удалить спам редактировать

ответил 2014-03-10 17:01:06 +0400

zzuz Gravatar zzuz flag of Russian Federation
6744 2 6 69
http://line24.ru/

обновил 2014-03-11 13:20:44 +0400

0

Вот пример подпрограммы для ограничения времени звонка через канал 60 минут в день, последний звонок по не лимитируется. Как запускать подпрограмму, передавать аргументы, и интегрировать в вашу систему предлагаю разобраться самостоятельно или за вознаграждение.

[subDial_1]
    exten => s,1,NoOp()
     same => n,Set(CCHAN=${ARG1})
     same => n,Gotoif($[${DB(${CCHAN}/date)}  =  ${STRFTIME(${EPOCH},,%Y-%m-%d)}]?next)
       same => n,Set(DB(${CCHAN}/date)=${STRFTIME(${EPOCH},,%Y-%m-%d)})
       same => n,Set(DB(${CCHAN}/ans_time)=0)
     same => n(next),NoOp(${STRFTIME(${EPOCH},,%Y-%m-%d)})
     same => n,Gotoif($[ ${DB(${CCHAN}/ans_time)} >= 3599 ]?end)
       same => n,Dial(Dongle/${CCHAN}/+${ARG2})
     same => n(end),Return()

    exten => h,1,NoOp(${CCHAN}-${DIALSTATUS}-${ANSWEREDTIME})
    same => n,Gotoif($[${DIALSTATUS} != ANSWER ]?end)
      same => n,Set(DB(${CCHAN}/ans_time)=$[${DB(${CCHAN}/ans_time)} + ${ANSWEREDTIME}])
    same => n(end),NoOp()
ссылка удалить спам редактировать

ответил 2014-03-11 08:40:33 +0400

eyt5297 Gravatar eyt5297
51 9 1 9
http://vk.com/asterisktom...

обновил 2014-03-11 08:41:16 +0400

Comments

То есть если мне позволит оператор связи, то последний вызов я смогу и 5 часов продолжать.

zzuz ( 2014-03-11 10:37:24 +0400 )редактировать

Во первых, я такого мобильно оператора связи не знаю, обычно ограничение 1 час. Во вторых, в если надо ограничить длительность вызова можно адаптировать подпрограмму воспользовавшись вашим ответом. В третьих, каждый выбирает для себя сам, что важнее, на 100% использовать льготный трафик или комфортное общение с клиентом, возможный перерасход вполне предсказуем, по мне лучше уменьшить лимит на величину равную среднему времени разговора, чем разрывать разговор.

eyt5297 ( 2014-03-11 11:14:04 +0400 )редактировать

обычно операторы вообще на 30 минут ограничивают. а так да, всё верно)

zzuz ( 2014-03-11 13:23:19 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2014-03-10 15:36:19 +0400

Просмотрен: 811 раз

Обновлен: Mar 11 '14

Похожие вопросы:

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.