ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Использование 2ух приложений одновременно в execif

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

Re: Использование 2ух приложений одновременно в execif

Сообщение chardisdze » 26 ноя 2018, 17:38

Это тоже хотел сделать. Спасибо за решение.
Первостепенная задача заставить * работать так как надо.
По сути, нужно оповещение и dial одновременно...
chardisdze
 
Сообщений: 85
Зарегистрирован: 17 июн 2016, 17:18

Re: Использование 2ух приложений одновременно в execif

Сообщение chardisdze » 26 ноя 2018, 17:51

ded писал(а):
chardisdze писал(а):Выпрыгивает из macro-dial-one после gosub
как описано кодом, так и выпрыгивает. А куда ему надо? Разве понятно?


предполагал что return() верну исполнение диалплана в macro-dial-one, но gosub отменяет macro.
Решение вижу только в использовании другого приложения.
chardisdze
 
Сообщений: 85
Зарегистрирован: 17 июн 2016, 17:18

Re: Использование 2ух приложений одновременно в execif

Сообщение ded » 26 ноя 2018, 17:57

Нет, просто надо разобраться с вложениями. Macro & go sub вполне работтают вместе, посмотрите весь диалплан FreePBX - присутствуют и Macro, и Gosub.
Макрос возвращает результат выполнения в точку, откуда он вызывался.

Обзовите по другому, и всё получится:
Код: выделить все
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE | "RINGINUSE""]?Macro(play-and-set),s,1)

[macro-play-and-set]
exten => s,1,Set(__D_OPTIONS=Ttm))
exten => s,n,Playback(custom/V-dannyi-moment-sotrudnik))
ded
 
Сообщений: 15820
Зарегистрирован: 26 авг 2010, 19:00

Re: Использование 2ух приложений одновременно в execif

Сообщение chardisdze » 26 ноя 2018, 18:21

Это будет решением в том контексте, что я обозначил, но не решит проблемы: всеравно сначала будет отрабатываться оповещение а потом dial... Задачку неверно поставил себе изначально... Сори если ввел в заблуждение.
Думаю как мне заставить playback работать одновременно с выполнение диалплана дальше.
Конечный результат планируется такой: вызов - определение статуса девайса - playback и dial одновременно (если условие совпало); если не совпало - просто dial.
Нашел https://forum.asterisk.ru/viewtopic.php?p=82899, но пока не пойму как разрулить dial с moh и dial без moh и насколько это будет правильным.
chardisdze
 
Сообщений: 85
Зарегистрирован: 17 июн 2016, 17:18

Re: Использование 2ух приложений одновременно в execif

Сообщение ded » 26 ноя 2018, 18:25

Код: выделить все
    exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE | "RINGINUSE""]?Macro(play-and-set),s,1)

    [macro-play-and-set]
    exten => s,1,Set(__D_OPTIONS=Ttm))
    exten => s,n,Playback(custom/V-dannyi-moment-sotrudnik))
    exten => s,n,Hangup()

вызов - определение статуса девайса - playback и dial одновременно (если условие совпало); если не совпало - просто dial.

playback и dial одновременно делается вызовом макроса в команде Dial (буква М)
ded
 
Сообщений: 15820
Зарегистрирован: 26 авг 2010, 19:00

Re: Использование 2ух приложений одновременно в execif

Сообщение chardisdze » 26 ноя 2018, 18:30

Вот туда и буду копать.
Огромное спасибо за помощь! По результатам отпишусь, может кому пригодиться.
chardisdze
 
Сообщений: 85
Зарегистрирован: 17 июн 2016, 17:18

Re: Использование 2ух приложений одновременно в execif

Сообщение chardisdze » 29 ноя 2018, 15:34

Сделано.
Последовательность действий:
1) Формируем отдельный класс MOH
2) Кидаем туда нужные для воспроизведения файлы
3) В extension_custom.conf в контексте указанном в примере прописываем условие и действие
3.1) Сравниваем статус девайса с нужными
3.2) если true то подменяем переменную D_Options и указываем в ней класс MOH

Вуаля!!!
Если девайс INUSE или RINGINUSE то слышим файлики MOH.
Если девайc NOT_INUSE то контекст пропускается и идет стандартный вызов.
chardisdze
 
Сообщений: 85
Зарегистрирован: 17 июн 2016, 17:18

Re: Использование 2ух приложений одновременно в execif

Сообщение ded » 29 ноя 2018, 15:51

Это очень грамотно сформулировано и правильно реализовано.
Сентенция:
Придумывают гении, реализуют умники, а дураки пользуются, и даже не благодарят. (c) не моё.
ded
 
Сообщений: 15820
Зарегистрирован: 26 авг 2010, 19:00

Re: Использование 2ух приложений одновременно в execif

Сообщение chardisdze » 29 ноя 2018, 18:29

ded, прости пожалуйста если обидел!!!
ОГРОМНЕЙШЕЕ ВАМ СПАСИБО ЗА СОДЕЙСТВИЕ!!!
Единственный нюанс: немного кривовато работает с FollowMe. Хочу попробовать с очередями...
И думаю еще, чтоб вызываемому абоненту шепотом сообщалось "Звонок на второй линии".
Буду думать. Еще раз спасибо!!!
chardisdze
 
Сообщений: 85
Зарегистрирован: 17 июн 2016, 17:18

Re: Использование 2ух приложений одновременно в execif

Сообщение ded » 29 ноя 2018, 20:37

Вообще не обижался! :)
Лучшее - враг хорошего. И вызываемому абоненту будет пикать в ухо, не надо там шёпотом ничего, и на экране ИП-телефона высвечивается - от кого этот вызов.
ded
 
Сообщений: 15820
Зарегистрирован: 26 авг 2010, 19:00

Пред.След.

Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 27

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH