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

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

0

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

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

TRANSFER_CONTEXT = from-transfer

[from-transfer]
exten
=> _.,1,NoOp(TRANSFER to ${EXTEN})
    same
=> n, Set(__FROMTRANSFER_DIALSTATUS=###)
    same
=> n, 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/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'

спросил Oct 6 '16

AlexPTZ Gravatar AlexPTZ
11 5 5
http://www.virtel.net/

обновил Oct 6 '16

2 Ответа

2

Все правильно, так и должно быть

У вас же не наследование, переадресация это другой канал.

Можно пробывать использовать функции SHARED и MASTER_CHANNEL

А вообще стоит пересмотреть саму логику. Какаято она странная.

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

ответил Oct 6 '16

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

Comments

С SHARED как-то не получилось, сделал через DB

AlexPTZ (Oct 7 '16)edit

Через дб криво. К тому же на диск пишет. Передайте с верхнего канала через двойное подчеркивание имя канала, потом через шаред задайте и считайте переменную.

meral (Oct 7 '16)edit
0
Dial(Local/${EXTEN}@default/n,,tTg)
ссылка удалить спам редактировать

ответил Oct 6 '16

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

Comments

не помогает. Сразу так и было сделано - это здесь скопипастил неправильно

AlexPTZ (Oct 6 '16)edit

Ваш ответ

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)!
[скрыть предварительный просмотр]

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

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

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

Статистика

Задан: Oct 6 '16

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

Обновлен: Oct 06 '16

Похожие вопросы:

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