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

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2016-10-06 12:30:23 +0400

AlexPTZ Gravatar AlexPTZ

http://www.virtel.net/

Не наследуется переменная

Уважаемые коллеги!

Прошу помощи. Есть примитивный диалплан для переадресации.

TRANSFER_CONTEXT = from-transfer [from-transfer] exten => _.,1,NoOp(TRANSFER to ${EXTEN}) same => n, Set(__FROMTRANSFER_DIALSTATUS=###) same => n, Dial(Local/${EXTEN}@default,,tTg) same => n, NoOp(FROMTRANSFER_DIALSTATUS=${FROMTRANSFER_DIALSTATUS}) [default] exten => _XXX,1,NoOp(To local number ${EXTEN}) same => n, Dial(SIP/user${EXTEN},,tT) exten => 55,1,Set(__FROMTRANSFER_DIALSTATUS=INVALID) same => n, hangup 

Хочу, чтобы при переадресации на номер 55 значение переменной FROMTRANSFER_DIALSTATUS выставлялось в INVALID и это значение было видно в контексте from-transfer после звонка

Все работает за одним исключением - после возврата из переадресации на 55 значение FROMTRANSFER_DIALSTATUS все равно ### вместо INVALID

Лог выглядит вот так

 -- Executing [55@from-transfer:1] NoOp("SIP/user110-0000142f", "TRANSFER to 55") in new stack -- Executing [55@from-transfer:2] Set("SIP/user110-0000142f", "__FROMTRANSFER_DIALSTATUS=###") in new stack -- Executing [55@from-transfer:3] Dial("SIP/user110-0000142f", "Local/55@default,,tTg") in new stack -- Called Local/55@default -- Executing [55@default:1] Set("Local/55@default-00000008;2", "__FROMTRANSFER_DIALSTATUS=INVALID") in new stack -- Auto fallthrough, channel 'Local/55@default-00000008;2' status is 'UNKNOWN' -- Executing [h@default:1] NoOp("Local/55@default-00000008;2", "") in new stack -- Executing [h@default:2] NoOp("Local/55@default-00000008;2", "Hangup DIALSTATUS=") in new stack -- Executing [h@default:3] Hangup("Local/55@default-00000008;2", "") in new stack == Spawn extension (default, h, 3) exited non-zero on 'Local/55@default-00000008;2' -- No one is available to answer at this time (1:0/0/0) -- Executing [55@from-transfer:4] NoOp("SIP/user110-0000142f", "FROMTRANSFER_DIALSTATUS=###") in new stack -- Auto fallthrough, channel 'SIP/user110-0000142f' status is 'NOANSWER' 

Не наследуется переменная

Уважаемые коллеги!

Прошу помощи. Есть примитивный диалплан для переадресации.

TRANSFER_CONTEXT = from-transfer [from-transfer] exten => _.,1,NoOp(TRANSFER to ${EXTEN}) same => n, Set(__FROMTRANSFER_DIALSTATUS=###) same => n, Dial(Local/${EXTEN}@default,,tTg) Dial(Local/${EXTEN}@default/n,,tT)  same => n, NoOp(FROMTRANSFER_DIALSTATUS=${FROMTRANSFER_DIALSTATUS}) [default] exten => _XXX,1,NoOp(To local number ${EXTEN}) same => n, Dial(SIP/user${EXTEN},,tT) exten => 55,1,Set(__FROMTRANSFER_DIALSTATUS=INVALID) same => n, hangup 

Хочу, чтобы при переадресации на номер 55 значение переменной FROMTRANSFER_DIALSTATUS выставлялось в INVALID и это значение было видно в контексте from-transfer после звонка

Все работает за одним исключением - после возврата из переадресации на 55 значение FROMTRANSFER_DIALSTATUS все равно ### вместо INVALID

Лог выглядит вот так

 -- Executing [55@from-transfer:1] NoOp("SIP/user110-0000142f", "TRANSFER to 55") in new stack -- Executing [55@from-transfer:2] Set("SIP/user110-0000142f", "__FROMTRANSFER_DIALSTATUS=###") in new stack -- Executing [55@from-transfer:3] Dial("SIP/user110-0000142f", "Local/55@default,,tTg") "Local/55@default/n,,tT") in new stack -- Called Local/55@default -- Executing [55@default:1] Set("Local/55@default-00000008;2", "__FROMTRANSFER_DIALSTATUS=INVALID") in new stack -- Auto fallthrough, channel 'Local/55@default-00000008;2' status is 'UNKNOWN' -- Executing [h@default:1] NoOp("Local/55@default-00000008;2", "") in new stack -- Executing [h@default:2] NoOp("Local/55@default-00000008;2", "Hangup DIALSTATUS=") in new stack -- Executing [h@default:3] Hangup("Local/55@default-00000008;2", "") in new stack == Spawn extension (default, h, 3) exited non-zero on 'Local/55@default-00000008;2' -- No one is available to answer at this time (1:0/0/0) -- Executing [55@from-transfer:4] NoOp("SIP/user110-0000142f", "FROMTRANSFER_DIALSTATUS=###") in new stack -- Auto fallthrough, channel 'SIP/user110-0000142f' status is 'NOANSWER' 

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