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

Как получить переменные во втором канале?

Добавлено: 23 окт 2018, 07:58
platonische
Добрый день! Сабж бонален возможно, но все-таки но...

погуглив нашел SET(var='') SET(_var='') SET(__var='') SET(GLOBAL(var)='') Но все это видимо не мой вариант.

Мне нужно чтобы переменная созданная для канала была доступна в другом канале. Каналы sip.

Пример: 132 звонит 131
Spoiler!

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

exten => 131,1,Set(var=1)
exten => 131,n,Dial(SIP/131,,rTt)
Создается канал SIP/132-00000851
Смотрю переменные core show channel SIP/132-00000851
var=1 Есть

Создается канал SIP/131-00000852
Тут переменной нет. Вот именно в этом и вопрос. Как передать в этот канал переменную? Я понимаю что ее тут не должно быть, но есть ли вариант ее там организовать?

Изложу суть задачи и возможно кто-то натолкнет на другое решение.
Взял статью "Информация о входящих в браузере" https://habr.com/post/311986/
Запустил сервер PAMI и Ratchet из статьи. (С php и js я знаком, с данными приложениями только знакомлюсь). Всё работает: event слушается, отбираются нужные и обрабатываются.
Предполагается обрабатывать (показывать в браузере) входящие звонки. Они поступают в очередь (queue) и далее распределяются (всё стандартно). Нужно чтобы в браузере была информация о том, что звонок принят другим (конкретным) участником очереди. Если не принят ни одним, чтобы висело окно в браузере как пропущенное.
Т.е. 1 - сигнализация о входящем в браузер всем членам очереди - РАБОТАЕТ
2 - То, кто поднял в браузере все переменные есть нормальная работа. У тех кто не взял в браузере и урезание информации до вида звонок принят агентом ХХХ. - НЕ РЕШЕНО
3 - По окончанию разговора погасить все окна. При не отвеченном звонке урезание инфы во всех окнах о пропущенном - ЗАРАБОТАЕТ ПОСЛЕ П.2 при помощи установки флагов.

Как мне думается решать.
При поступлении eventa NewstateEvent == 5 (ringing) надо узнать канал который вызывает и следить за ним. При установлении соединения каналов там будет переменные BRIDGEPEER=SIP/132-00000851, DIALEDPEERNUMBER=131 Которые скажут кто забрал звонок и дадут канал за которым следить за завершением.

Any ideas?

Re: Как получить переменные во втором канале?

Добавлено: 23 окт 2018, 08:39
xelas
Гугл вам все точно подсказал. Зря не пользуетесь его советами.

https://wiki.asterisk.org/wiki/display/ ... nheritance

Re: Как получить переменные во втором канале?

Добавлено: 23 окт 2018, 10:47
platonische
Вы знаете действительно __ сработало так как надо. До этого пробовал и делал только dialplan reload - не срабатывало, а сейчас сделал sip reload и переменная пришла.
Спасибо!

Re: Как получить переменные во втором канале?

Добавлено: 24 окт 2018, 05:17
virus_net