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

Диалплан: Балансировка и цикл между транками. [закрыт]

1

Доброго дня! Есть 3 iax транка. На данный момент описано так:

[gate]
exten
=> _7XXXXXXXXXX,1,Set(ID=${RAND(1,3)})
exten
=> _7XXXXXXXXXX,2,Dial(IAX2/manager${ID}/${EXTEN})
exten
=> _7XXXXXXXXXX,n,Hangup()

Подскажите, как сделать цикл? т.е. при попадании звонка в manager1, по недоступности или занятости, необходимо, чтобы звонок уходил в manager2, при тех же условиях там, уходит в manager3 и соответственно для manager3 резервом будет manager1.

спросил Feb 4 '12

v0ip Gravatar v0ip flag of Russian Federation
239 29 8 20
http://v0ip.tk/

обновил Mar 18 '13

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

2 Ответа

4
[gate];начальный контекст
exten
=> _7XXXXXXXXXX,1,Set(num=${EXTEN})
exten
=> _7XXXXXXXXXX,2,Goto(gate_variants,${RAND(1,6)},1)
[gate_variants];все допустимые варианты
exten
=> 1,1,Set(DO=1-2-3)
exten
=> 2,1,Set(DO=1-3-2)
exten
=> 3,1,Set(DO=2-1-3)
exten
=> 4,1,Set(DO=2-3-1)
exten
=> 5,1,Set(DO=3-1-2)
exten
=> 6,1,Set(DO=3-2-1)
exten
=> _[1-6],2,goto(s,1)

exten
=> s,1,Set(i=0); делаем цикл(я это не писал, это у меня стандартная заготовка ;) )
exten
=> s,n(loop),Set(i=$[ i + 1]) ; смотрим по номеру
exten
=> s,n,Set(do_now=${CUT(DO,-,${i}) ; берем и-тый номер.
exten
=> s,n,GotoIF($[ "${do_now}" == "" ]?end); номера кончилися ((
exten
=> s,n,Dial(IAX2/manager${do_now}/${num},,g) ; звоним
exten
=> s,n,Goto({DIALSTATUS},1); проверяем результат
exten
=> s,n(end),Hangup; больше нет номеров

exten
=> BUSY,1,Goto(s,loop); повторяем
exten
=> CONGESTION,1,Goto(s,loop)
exten
=> FAIL,1,Goto(s,loop)
exten
=> NOANSWER,1,Goto(s,loop)

exten
=> ANSWER,1,Hangup;это не повторям, вроде дозвонилися.
exten
=> ANSWERED,1,Hangup
ссылка удалить спам редактировать

ответил Feb 4 '12

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

Comments

а если транков много, можно сделать красивы скриптик который запоминает в переменных какие тарнки "посещалися". но это сами подумайте ;)

meral (Feb 5 '12)edit
1

Ну и сделать еще раз ID2=RAND(1,3), далее проверку на совпадение с ID, GotoIf на себя еще раз если повтор.. Ну а третий раз ID3=6-${ID}-${ID2}..

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

ответил Feb 4 '12

Zavr2008 Gravatar Zavr2008 flag of Russian Federation
2886 11 9 40
http://mh.otx.ru/

Comments

ого как сложно)

meral (Feb 4 '12)edit

ну ты народу давай хоть немного домысливать самим=)))

Zavr2008 (Feb 5 '12)edit

А в чем смысл данного действия?

v0ip (Feb 5 '12)edit

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

meral (Feb 5 '12)edit

и запускать свои эластиксы большинство будет продолжать.. ставлю за вопрос +1, может хоть кто-то перечитает О'Рейли =)))

Zavr2008 (Feb 5 '12)edit

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

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

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

Статистика

Задан: Feb 4 '12

Просмотрен: 6,449 раз

Обновлен: Feb 05 '12

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