First time here? Check out the FAQ!

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

Почему не происходит прекращение работы команды 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?

спросил May 31 '12

bolshoy_plohish Gravatar bolshoy_plohish
1388 25 20 38

обновил May 31 '12

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 (May 31 '12)edit

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

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

bolshoy_plohish (May 31 '12)edit

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

zzuz (May 31 '12)edit

1 Ответ

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

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

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

ответил May 31 '12

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

обновил May 31 '12

Ваш ответ

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

Статистика

Задан: May 31 '12

Просмотрен: 2,862 раз

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

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