VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
nonadminus
Сообщения: 9
Зарегистрирован: 30 сен 2020, 05:35

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

Сообщение 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() ; Кладем трубку
ded
Сообщения: 15622
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

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

Наследование переменных - двойной подчерк перед именем?
http://asterisk.ru/knowledgebase/Asterisk+variables
nonadminus
Сообщения: 9
Зарегистрирован: 30 сен 2020, 05:35

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

Сообщение nonadminus »

Да, я знаю этот закон. Разовый прозвон клиентов с целью приглашения на день рождения))
По поводу второй ссылки - честно пробовал, но это не работает для меня.. Подскажите пожалуйста ещё, как всё это с помощью hangup_handler_push сделать?
BorisTheBlade
Сообщения: 167
Зарегистрирован: 14 фев 2011, 14:24

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

Сообщение BorisTheBlade »

Вы не стой стороны подошли к проблеме просто(я имею ввиду автообзвон - прошлой теме вместо channel: sip/zadarma, нужно было использовать Channel: sip/zadarma/номер)
Передать можно через функцию SHARED, или через установку переменной при SEtVar в AMI.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH