Через дб криво. К тому же на диск пишет. Передайте с верхнего канала через двойное подчеркивание имя канала, потом через шаред задайте и считайте переменную.
meral ( 2016-10-07 14:09:22 +0400 )редактироватьУважаемые коллеги!
Прошу помощи. Есть примитивный диалплан для переадресации.
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'
Все правильно, так и должно быть
У вас же не наследование, переадресация это другой канал.
Можно пробывать использовать функции SHARED и MASTER_CHANNEL
А вообще стоит пересмотреть саму логику. Какаято она странная.
Через дб криво. К тому же на диск пишет. Передайте с верхнего канала через двойное подчеркивание имя канала, потом через шаред задайте и считайте переменную.
meral ( 2016-10-07 14:09:22 +0400 )редактироватьDial(Local/${EXTEN}@default/n,,tTg)
не помогает. Сразу так и было сделано - это здесь скопипастил неправильно
AlexPTZ ( 2016-10-06 13:47:05 +0400 )редактироватьЗадан: 2016-10-06 12:30:23 +0400
Просмотрен: 508 раз
Обновлен: Oct 06 '16
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.