Страница 1 из 1

Передача канальной переменной между контекстами

Добавлено: 11 мар 2021, 12:55
nonadminus
Добрый день! Делаю простой обзвон по контактам с помощью asterisk
Пример кода который работает, но необходимо из контекста zvonar-dialer передать ${EXTEN} (номер вызываемого) в контекст zvonar-informer на вход скрипта который написан на python.
Помогите плиз, как сделать?

Пробовал Set(), но как я понял, канальная переменная не передается никак..

Код: Выделить всё

[zvonar-dialer]
exten => _8XXXXXXXXXX,1,Dial(SIP/zadarma/+7${EXTEN:1},60) ;Звоним наружу
exten => _8XXXXXXXXXX,n,Hangup ;Вешаем трубку

[zvonar-informer]
exten => 2222,1,Answer ;Берём трубку
exten => 2222,n,Wait(1) ;Ждём 1 секунду
exten => 2222,n,BackGround(zvonar) ;Проигрываем аудиофайл
exten => 2222,n,WaitExten() ;ждем цифры от клиента

;при нажатии 1 пишем файл
exten => 1,1,System(python3 /etc/asterisk/script/zvonar/test.py ??? 1 &)
exten => 1,n,Hangup() ; Кладем трубку

Re: Передача канальной переменной между контекстами

Добавлено: 11 мар 2021, 14:54
ded
А ничего, что вы закон нарушаете обзвонами?
https://forum.asterisk.ru/viewtopic.php?f=13&t=18812

Наследование переменных - двойной подчерк перед именем?
http://asterisk.ru/knowledgebase/Asterisk+variables

Re: Передача канальной переменной между контекстами

Добавлено: 11 мар 2021, 15:13
nonadminus
Да, я знаю этот закон. Разовый прозвон клиентов с целью приглашения на день рождения))
По поводу второй ссылки - честно пробовал, но это не работает для меня.. Подскажите пожалуйста ещё, как всё это с помощью hangup_handler_push сделать?

Re: Передача канальной переменной между контекстами

Добавлено: 17 мар 2021, 15:47
BorisTheBlade
Вы не стой стороны подошли к проблеме просто(я имею ввиду автообзвон - прошлой теме вместо channel: sip/zadarma, нужно было использовать Channel: sip/zadarma/номер)
Передать можно через функцию SHARED, или через установку переменной при SEtVar в AMI.