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

Почему не происходит прекращение работы команды Dial?

0

Есть диалплан:


[Test]
exten => 1,1,Wait(20)
exten => 1,n,Answer()
exten => 1,n,Set(test=1)
exten => 1,n,NoOp(${test})
exten => 1,n,Set(CHANNEL(language)=ru)
exten => 1,n,Dial(SIP/YYYYYYYYYY@BBBBBBBBBB,60,rgM(test^${test}))
exten => 1,n,NoOp(${ENV(test_ii)})
exten => 1,n,GotoIf($[${ENV(test_ii)} != 0]?10:9)
exten => 1,n,Voicemail(1001@home,g(1,5))
exten => 1,n,Hangup

[macro-test]
exten => s,1,Wait(0.2)
exten => s,n,Set(CHANNEL(language)=ru)
exten => s,n,NoOp(${ARG1})
exten => s,n,Wait(2)
exten => s,n,Playback(priv-callfrom)
exten => s,n,SayDigits(${ARG1})
exten => s,n(ac),Read(ACCEPT,vm-toreply,1)
exten => s,n,GotoIf($[${ISNULL(${ACCEPT})}]?ac:bc)
exten => s,n(bc),GotoIf($[${ACCEPT} != 0 ]?zero:other)
exten => s,n(other),Set(MACRO_RESULT=CONTINUE)
exten => s,n(zero),Wait()
exten => s,n,Set(ENV(test_ii)=${ACCEPT})
exten => s,n,NoOp(${ENV(test_ii)})

-- <sip bbbbbbb="" -00000004=""> Playing '/tmp/asterisk/-1338442076.slin' (language 'ru')
    -- Executing [s@macro-test:5] SayDigits("SIP/ BBBBBBB -00000004", "") in new stack
    -- Executing [s@ macro-test:6] Read("SIP/ BBBBBBB -00000004", "ACCEPT,vm  -toreply,1") in new stack
    -- Accepting a maximum of 1 digits.
    -- <sip bbbbbbb-00000004=""> Playing 'vm-toreply.slin' (language 'ru')
    -- User disconnected
[May 31 16:28:11] WARNING[2169]: ast_expr2.fl:445 ast_yyerror: ast_yyerror():  syntax error: syntax error, unexpected '!=', expecting $end; Input: != 0 ^
[May 31 16:28:11] WARNING[2169]: ast_expr2.fl:449 ast_yyerror: If you have questions, please refer to doc/tex/channelvariables.tex.
    -- Executing [s@test:12] GotoIf("SIP/1001-00000003", "?11:10") in new sta                    
ck
-- Goto (test,s,10)
    -- Executing [s@test:10] MixMonitor("SIP/1001-00000003", "/usr/share/asterisk/records/201205311628-1001-s.wav,b") in new stack
    -- Executing [s@test:11] Dial("SIP/1001-00000003", "SIP/YYYYYYY@BBBBBBB,60,rgM(screen^"/tmp/asterisk/-1338442076")") in new stack


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

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

спросил 2012-05-31 07:53:58 +0400

bolshoy_plohish Gravatar bolshoy_plohish
1358 21 16 37

обновил 2012-05-31 09:51:20 +0400

Comments

[May 31 16:28:11] WARNING[2169]: ast_expr2.fl:445 ast_yyerror: ast_yyerror():  syntax error: syntax error, unexpected '!=', expecting $end; Input: != 0 ^
[May 31 16:28:11] WARNING[2169]: ast_expr2.fl:449 ast_yyerror: If you have questions, please refer to doc/tex/channelvariables.tex.

Перевести?

zzuz ( 2012-05-31 10:02:07 +0400 )редактировать

Посмотрел я этот channelvariables.tex и ничего похожего там не заметил.

Не могу что-то дотупить как обработать событие "User disconnected" во время выполнения макроса.

bolshoy_plohish ( 2012-05-31 10:48:22 +0400 )редактировать

В данном случае дотупливать не нужно. Нужно сесть и немного подумать , прочитав файл более внимательно.

zzuz ( 2012-05-31 11:09:19 +0400 )редактировать

1 Ответ

1
exten => s,n,GotoIf($[${EXISTS(${ACCEPT})}]?ac:bc)
exten => s,n(bc),GotoIf($["${ACCEPT}"!="0"]?zero:other)

Для начала разберитесь с синтаксисом.

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

ответил 2012-05-31 11:06:22 +0400

zzuz Gravatar zzuz flag of Russian Federation
6744 2 6 69
http://line24.ru/

обновил 2012-05-31 11:07:04 +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 ленту новостей

Статистика

Задан: 2012-05-31 07:53:58 +0400

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

Обновлен: May 31 '12

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