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

Не срабатывает GotoIF

0

Здравствуйте. Есть диалплан:

exten => _7911X.,1,NoOP(---Outgoing Call---)
    same => n,Set(TRUNK=3)
    same => n(repeat),Set(ID=${RAND(1,${TRUNK})}) 
    same => n,Set(COUNT=${TRUNK})
    same => n,Dial(SIP/trunk-${ID}/${EXTEN},60)
    same => n,Goto(${DIALSTATUS},1)
exten => CHANUNAVAIL,1,Set(COUNT=$[${COUNT}-1])
same => n,GotoIf($[${COUNT}>0]?repeat:stop)

В логах:

-- Executing [79112222222@default:1] NoOp("SIP/192.168.1.10-00000029", "---Outgoing Call---") in new stack
-- Executing [79112222222@default:2] Set("SIP/192.168.1.10-00000029", "TRUNK=3") in new stack
-- Executing [79112222222@default:3] Set("SIP/192.168.1.10-00000029", "ID=2") in new stack
-- Executing [79112222222@default:4] Set("SIP/192.168.1.10-00000029", "COUNT=3") in new stack
-- Executing [79112222222@default:5] Dial("SIP/192.168.1.10-00000029", "SIP/trunk-2/79112222222,60") in new stack
-- Executing [79112222222@default:6] Goto("SIP/192.168.1.10-00000029", "CHANUNAVAIL,1") in new stack
-- Goto (default,CHANUNAVAIL,1)
-- Executing [CHANUNAVAIL@default:1] Set("SIP/192.168.1.10-00000029", "COUNT=2") in new stack
-- Executing [CHANUNAVAIL@default:2] GotoIf("SIP/192.168.1.10-00000029", "1?repeat:stop") in new stack
== Spawn extension (default, CHANUNAVAIL, 2) exited non-zero on 'SIP/192.168.1.10-00000029'

Собственно в этом и вопрос, почему не переходит на метку repeat?

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

спросил 2014-08-27 02:31:42 +0400

etskh Gravatar etskh
326 40 19

обновил 2014-08-27 11:43:46 +0400

Comments

в dialplan в gotoif две метки "start" и "stop", которые отсутствуют в этом dialplan`е

в логах "repeat" и "stop", что говорит о том, что вы что то напутали, когда приводили свой dialplan

Так же вы указываете только label, а это значит что эта метка будет искаться в ТЕКУЩЕМ exten, а в данном случае это exten CHANUNAVAIL, а не _7911X.

Изучите документацию и вы сможете сами ответить на свой вопрос.

virus_net ( 2014-08-27 10:01:00 +0400 )редактировать

Приношу извинения за путаницу. Это я уже напутал, когда здесь выкладывал.

etskh ( 2014-08-27 11:41:00 +0400 )редактировать

1 Ответ

1

вы злоупотребляете same и метками.

перевожу. то что вы написали это вот так.

[default]
exten => _7911X.,1,NoOP(---Outgoing Call---)
exten => _7911X.,n,Set(TRUNK=3)
exten => _7911X.,n(repeat),Set(ID=${RAND(1,${TRUNK})}) 
    same => n,Set(COUNT=${TRUNK})
    same => n,Dial(SIP/trunk-${ID}/${EXTEN},60)
    same => n,Goto(${DIALSTATUS},1)
exten => CHANUNAVAIL,1,Set(COUNT=$[${COUNT}-1])
;раскрываем same&goto
exten => CHANUNAVAIL,n,GotoIf($[${COUNT}>0]?default,CHANUNVAIL,start:default,CHANUNVAIL,stop)

так сразу становится видно, что CHANUNVAIL не имеет ни метки start, ни stop.

если вам еще не видно, можете добавить вот такое

exten => CHANUNAVAIL,1000(start),Noop(start here)
exten => CHANUNAVAIL,2000(stop),Noop(stop here)

и запустить еще раз.

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

ответил 2014-08-27 04:09:18 +0400

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

обновил 2014-08-27 04:14:06 +0400

Comments

кстати у вас вообще нет меток start/stop

meral ( 2014-08-27 04:10:11 +0400 )редактировать

Признателен. Проблему понял. Сейчас попробую На счет меток, это я ошибся когда здесь писал

etskh ( 2014-08-27 11:42:33 +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-08-27 02:31:42 +0400

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

Обновлен: Aug 27 '14

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