Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / AstPbx / Циклическое занятие FXO Addpac

Циклическое занятие FXO Addpac

Задача - занимать 6 ADDPAC по 2 FXO - равномерно
Откуда: Eburg
Сообщений: 15

Циклическое занятие FXO Addpac

Привет Всем!

Проблема в следующем:

Есть 12 GSM шлюзов, для исходящих звонков, и 6 Двухпортовых FXO ADDPAC. Задача состоит в том, чтобы "заворачивать" определённые исходящие звонки на шлюзы. Проблема состоит в том, что требуется равномерное распределение исходящих звонков, то есть, если , например, было севершено 12000 минут вызовов через шлюзы, то на каждый порт любого шлюза ADDPAC (считай, GSM шлюза) должно приходиться около 2000 исходящих минут, иначе GSM оператор палит использование шлюзов (проверено на практике).

Расскажу:

все 12 портов 6-ти шлюзов регятся под номерами 0101-0112
звоню через них как SIP/0101/8[номер]

Что было испробовано:

1. Набор номеров через очереди (queues.conf)

получается организовать перебор номеров в очереди 0101-0112 с равномерным занятием
НЕ получается передать в качестве параметра номер абонента, которые нужно набрать

пробовал через системную BD, в extensions.conf присваиваю, проверяю, в queue.conf астер её не понимает
member => SIP/0101/${DB(test/count)}

2. пытался вызывать номера портов 0101-0108 через RND

exten => 89XXXXXXXXX,1,Set(junky=${RAND(1|8)});
exten => 89XXXXXXXXX,n,NoOp(${junky})
exten => 89XXXXXXXXX,n,Dial(SIP/010${junky}/${EXTEN})
exten => 89XXXXXXXXX,n,Hangup

всё ок без нагрузки
проблема при попадании на занятый порт.

3. хотел написать сам алгоритм перебора, но пока остановился.
не верю что в астере нет функции для перебора портов под такую задачу.


Заранее всем спасибо, сам не чайник, астеров стоит около 4-х от 8 до 300 внутренних абонентов.
но в программировании не слишком силён

Прошу помочь мыслями, думаю, я не единственный с такой проблемой столкнулся)


Shit happens........
2009-12-17 20:38

Сообщений: 6521

Re: Циклическое занятие FXO Addpac

1. Набор номеров через очереди (queues.conf)
- это Вы погорячились.
Очереди - они для входящих, не для исходящих.

проблема при попадании на занятый порт решается описанием выхода через анализ ${DIALSTATUS}
Но это не совсем верно, потому что нет разницы между абонент busy и порт busy.
В первом случае - не надо к нему звонить через другой порт, а во втором - надо.
2009-12-17 20:52

Откуда: Eburg
Сообщений: 15

Re: Циклическое занятие FXO Addpac

ага. понял.

но, всё-таки, есть какой то встроенный механизм, позволяющий оперировать с данными портами как с исходящими линиями, обеспечивая равномерную загрузку с учётом анализа занятости конкретных каналов ?

или нужно писать алгоритм самому ?

не поверю, что я поднял данную тему впервые)

2 недели вяло бьюсь - уже отчаяние какое то......
Shit happens........
2009-12-17 21:31

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: Циклическое занятие FXO Addpac

во-первых, вам следовало сразу использовать нормальные sip шлюзы, это обошлось бы даже дешевле, чем аддпак+аналоговый шлюз. Но зато вы бы владели полной информацией о канале.
Во вторых - можно считать количество минут, про через каждый канал.
Как я вижу - писать timestamp в переменную перед началом вызова персонально для каждого канала, после вызова (если он удался) - отнимать от текущего значения timestamp запомненное перед вызовом, полученное значение складывать со значением в БД. Перед вызовом смотреть, не превышен ли лимит, если превышен - роутить на другие шлюзы.
Для равномерности можно использовать случайное распределение вызовов по транкам.

В вашем случае все усложняется тем, что вы не знаете, был ли разговор на самом деле, так как работаете по аналоговому каналу. Меняйте ваш зоопарк на 6 двухпортовых sip-gsm шлюзов
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2009-12-17 22:11

Сообщений: 6521

Re: Циклическое занятие FXO Addpac

1) На один GSM-IP многослотовый
2) На прямое подключение по ИП к оператору.
2009-12-17 22:16

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: Циклическое занятие FXO Addpac

1) я так думаю они раскидали шлюзы по городу, чтоб без палева
Да еще раз в месяц симки меняют местами ;)
2) мегафон уже позволяет (но реально ли сливать трафик - хз). дело за остальными 106 операторами.
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2009-12-17 22:51

Откуда: Eburg
Сообщений: 15

Re: Циклическое занятие FXO Addpac

1. Купить GSM-VoIP шлюз, (стоимостью, в такой конфигурации, около 3600 баксов)
2. Подключиться к Оператору по Sip (безлимит на GSM область есть только у Уралсвязьинформ по цене около 1300 руб с НДС, что в 2 раза дороже безлимита на мобильные области у местного GSM оператора МОТИВ.

Это всё решения в лоб.

Проблема в том, что это РАБОТАЕТ около 2-х лет с начала введения CPP. НО! рулится через Panasonic D-500, с тщательно забитыми около 500 кодами в ARS с равномерным занятием СО. И оборудование УЖЕ ЕСТЬ. И хочется использовать то, что есть.

Shit happens........
2009-12-18 07:37

Откуда: Tomsk
Сообщений: 30

Re: Циклическое занятие FXO Addpac

Я таким образом равномерно распределяю исходящие звонки. С точностью до минуты не получается, но при большом кол-ве звонков распределение вполне равномерное.



[macro-dial_n]
exten => s,1,Random(20:v2)
exten => s,n,Random(20:v3)
exten => s,n,Random(20:v4)
exten => s,n,Random(20:v5)

exten => s,n(v1),Dial(${FXO_772838}${ARG1},20,tT)
exten => s,n,Dial(${FXO_777371}${ARG1},20,tT)
exten => s,n,Dial(${FXO_774950}${ARG1},20,tT)
exten => s,n,Dial(${FXO_772772}${ARG1},20,tT)
exten => s,n,Dial(${FXO_772622}${ARG1},20,tT)
exten => s,n,Goto(last)
exten => s,n(v2),Dial(${FXO_772622}${ARG1},20,tT)
exten => s,n,Dial(${FXO_772838}${ARG1},20,tT)
exten => s,n,Dial(${FXO_777371}${ARG1},20,tT)
exten => s,n,Dial(${FXO_774950}${ARG1},20,tT)
exten => s,n,Dial(${FXO_772772}${ARG1},20,tT)
exten => s,n,Goto(last)
exten => s,n(v3),Dial(${FXO_772772}${ARG1},20,tT)
exten => s,n,Dial(${FXO_772622}${ARG1},20,tT)
exten => s,n,Dial(${FXO_772838}${ARG1},20,tT)
exten => s,n,Dial(${FXO_777371}${ARG1},20,tT)
exten => s,n,Dial(${FXO_774950}${ARG1},20,tT)
exten => s,n,Goto(last)
exten => s,n(v4),Dial(${FXO_774950}${ARG1},20,tT)
exten => s,n,Dial(${FXO_772772}${ARG1},20,tT)
exten => s,n,Dial(${FXO_772622}${ARG1},20,tT)
exten => s,n,Dial(${FXO_772838}${ARG1},20,tT)
exten => s,n,Dial(${FXO_777371}${ARG1},20,tT)
exten => s,n,Goto(last)
exten => s,n(v5),Dial(${FXO_777371}${ARG1},20,tT)
exten => s,n,Dial(${FXO_774950}${ARG1},20,tT)
exten => s,n,Dial(${FXO_772772}${ARG1},20,tT)
exten => s,n,Dial(${FXO_772622}${ARG1},20,tT)
exten => s,n,Dial(${FXO_772838}${ARG1},20,tT)
; следующие линии занимаются в самом крайнем случае
exten => s,n(last),Dial(${FXO_776082}${ARG1},20,tT)
exten => s,n,Dial(${FXO_777733}${ARG1},20,tT)

;end macro-dial_n
2009-12-18 08:01

Откуда: Eburg
Сообщений: 15

Re: Циклическое занятие FXO Addpac

Привет всем!

Нашёл более изящное решение!

Имелось соединение Panasonic D-500 к VoIP оператору через Cisco 1751 E1
Поменял протокол между D-500 и Cisco 1751 на Qsig

Оператора завернул на астер - с него на панас
с панаса тоже звонки через астер и к оператору

Функции таблицы DDI теперь выполняет астер, но с астера можно звонить на внутренние номера панаса и адресовывать любые транки панаса. Раньше для звонков на внутренние номера приходилось прописывать все внутренние номера в DDI

Таким образом занимаю СО линии на панасе к которым подключены шлюзы.
Получился качественный и бесплатный (в силу того что уже был) FXO от панасоник)

К тому, же функции циклического занятия СО выполняет панас, как и выполнял!

Тема закрыта!
Всем спасибо!
Shit happens........
2009-12-18 15:35

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru