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

случайный выбор транка в outbound route FreePBX

0

Есть Elastix и GoIP4 с четырьмя симками. У каждой симки есть, как водится, лимит 300 минут.

Каждая sim-карта заведена на Elastix как отдельный транк, и в Outbound route по маске 89ХХХХХХХХХ подряд выставлены три трнака, таким образом, основная нагрузка идет на первую симку.

Какие есть типовые решения для задачи лоад балансинга в данном случае?

Нагуглилось сходу freepbx-trunk-balancing, кто-нибудь пробовал или избыточное решение?

спросил Mar 18 '13

shakirov Gravatar shakirov flag of Russian Federation
1143 46 14 46
http://gammatelecom.ru/

3 Ответа

1

Рабочий контекст для FreePBX. Использует функцию RAND.

[random-trunk-select]
exten
=> _X.,1,Macro(user-callerid,SKIPTTL,)
exten
=> _X.,n,Set(_NODEST=)
exten
=> _X.,n,Macro(record-enable,${AMPUSER},OUT,)
;---
exten
=> _X.,n,Set(GMIN=2) ;номер первого транка
exten
=> _X.,n,Set(GMAX=13) ;номер последнего транка
exten
=> _X.,n,Set(COUNT=$[${GMAX}-${GMIN}+1])
exten
=> _X.,n,Set(GATE=${RAND(${GMIN},${GMAX})})
exten
=> _X.,n(noop),Noop(call trying, COUNT= ${COUNT})
exten
=> _X.,n,GotoIf($[${COUNT} > 0]?:busy)
exten
=> _X.,n,Set(COUNT=$[${COUNT} - 1])
;---
exten
=> _X.,n,Macro(dialout-trunk,${GATE},${EXTEN},,)
;---
exten
=> _X.,n,GotoIf($[${GATE} < ${GMAX}]?add)
exten
=> _X.,n,Set(GATE=${GMIN})
exten
=> _X.,n,Goto(noop)
exten
=> _X.,n(add),Set(GATE=$[${GATE} + 1])
exten
=> _X.,n,Goto(noop)
;---
exten
=> _X.,n(busy),Macro(outisbusy,)
ссылка удалить спам редактировать

ответил Mar 18 '13

Olpag Gravatar Olpag
2024 3 6 30

Comments

100% шанс завесит астериск при трех занятых каналах.. не пишите такие диалпланы. если пишите, то хоть как примеры не давайте.

meral (Mar 18 '13)edit

Объясните, почему завесит? Я ведь написал что диалплан рабочий... этот контекст обслуживает 12 транков на трех джсм-шлюзах... бывают заняты ВСЕ транки, ничего не зависает...

Olpag (Mar 18 '13)edit
1

Пишите свой контекст

[random-trunk-select]
exten
=> _X.,1,Noop(выбираем транк случайно)
exten
=> _X.,n,Noop(Здесь организуйте логику выбора транков. можно пользоваться БД, где хранится информация по транкам и подставлять в macro-dialout)

Далее в Freepbx создаете транк CUSTOM и в DIAL пишите Local/$OUTNUM$@random-trunk-select/n и этот транк используйте для звонков.

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

ответил Mar 18 '13

zzuz Gravatar zzuz flag of Russian Federation
7174 2 6 75
http://line24.ru/
0

вот тут http://asterisk-support.ru/question/13916/dialplan-balansirovka-i-tsikl-mezhdu-trankami/#19951

я писал как правильно делается такой обзвон.

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

ответил Mar 18 '13

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

Александр, оно не работает. В итоге написали скрипт на питоне, но это слишком круто для данной задачи.

v0ip (Apr 24 '13)edit

м? вы чтото не то делаете. то что там по ссылке точно работает. проверено.

meral (Apr 24 '13)edit

Возможно, но у меня не работало, причем не на одной системе.

v0ip (Apr 24 '13)edit

там звонит на IAX2/manager1 IAX2/manager2 и так далее. если у вас имена другие, надо поменять.

meral (Apr 24 '13)edit

Ваш ответ

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 ленту новостей

Статистика

Задан: Mar 18 '13

Просмотрен: 3,856 раз

Обновлен: Apr 24 '13

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