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

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

0

Доброго дня! Исходя из этого, подредактировал под себя и получил следующее:

[gates]
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()

В итоге в логах получаю следующее:

  == Using SIP RTP CoS mark 5
    -- Executing [7XXXXXXXXXX@gates:1] Set("SIP/test-000001b1", "num=7XXXXXXXXXX") in new stack
    -- Executing [7XXXXXXXXXX@gates:2] Goto("SIP/test-000001b1", "gate_variants,6,1") in new stack
    -- Goto (gate_variants,6,1)
    -- Executing [6@gate_variants:1] Set("SIP/test-000001b1", "DO=3-2-1") in new stack
    -- Executing [6@gate_variants:2] Goto("SIP/test-000001b1", "s,1") in new stack
    -- Goto (gate_variants,s,1)
    -- Executing [s@gate_variants:1] Set("SIP/test-000001b1", "i=0") in new stack
[Mar  7 07:02:29] WARNING[25761]: ast_expr2.y:1286 op_plus: non-numeric argument
    -- Executing [s@gate_variants:2] Set("SIP/test-000001b1", "i=1") in new stack
    -- Executing [s@gate_variants:3] Set("SIP/test-000001b1", "do_now=3") in new stack
    -- Executing [s@gate_variants:4] GotoIf("SIP/test-000001b1", "0?end") in new stack
    -- Executing [s@gate_variants:5] Dial("SIP/test-000001b1", "IAX2/manager3/7XXXXXXXXXX,,g") in new stack
[Mar  7 07:02:29] WARNING[25761]: app_dial.c:2198 dial_exec_full: Unable to create channel of type 'IAX2' (cause 20 - Unknown)
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [s@gate_variants:6] Goto("SIP/test-000001b1", "{DIALSTATUS},1") in new stack
    -- Goto (gate_variants,{DIALSTATUS},1)
[Mar  7 07:02:29] WARNING[25761]: pbx.c:4971 __ast_pbx_run: Channel 'SIP/test-000001b1' sent into invalid extension '{DIALSTATUS}' in context 'gate_variants', but no invalid handler

Подскажите, где я накосячил?

P.S. На момент звонка manager3 был отключен.

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

спросил 2012-03-07 16:38:02 +0400

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

обновил 2012-03-07 16:40:06 +0400

2 Ответа

1

тута

exten => s,n,Goto({DIALSTATUS},1)

exten => s,n,Goto(${DIALSTATUS},1)
ссылка удалить спам редактировать

ответил 2012-03-07 17:55:09 +0400

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

Comments

Доброго дня! Александр, подскажите, в данном конфиге строка "exten => s,n,GotoIF($[ "${do_now}" == "" ]?end)" отвечает за окончание цикла?

v0ip ( 2012-05-14 08:30:43 +0400 )редактировать

Вопрос снят. Посмотрел в первый, Вами предоставленный, ответ

v0ip ( 2012-05-14 08:34:04 +0400 )редактировать
0

не забывайте, что так не всегда работает: ...Set(i=$[ i + 1])

Должно быть вот так:

exten => s,n(loop),Set(i=$[${i} + 1])

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

ответил 2014-05-09 19:50:54 +0400

shirker Gravatar shirker
1 1

Comments

ну если уж полностью для всех версий то надо еще проблем после скобки ставить(иначе в 1.2 работать не будет). а вообще не страдайте фигней.

meral ( 2014-05-09 20:36:41 +0400 )редактировать

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

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

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

Статистика

Задан: 2012-03-07 16:38:02 +0400

Просмотрен: 1,030 раз

Обновлен: May 09 '14

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