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

Проигрывание приветствия перед очередью

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

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

P.Ilya
Сообщения: 101
Зарегистрирован: 17 ноя 2014, 18:40

Проигрывание приветствия перед очередью

Сообщение P.Ilya »

Имеется следующая логика: Нужно проиграть приветствие перед тем, как через очередь соединить клиента и оператора.
примерно так

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

exten => s,n,Answer
exten => s,n,BackGround(greeting) #10 секунд
exten => s,n,DoSomething
exten => s,n,Wait(XXX)
exten => s,n,Queue(queue_support,n,,,15,,connect)
[macro-connect]
exten => s,1,NoOp()
exten => s,n,Set(HOLDTIME=${QEHOLDTIME})
exten => s,n,System(php status.php BUSY ${CHANNEL:6} &);
exten => s,n,System(php premium.php update ${ACTIONID} ${group_result} &);
Условно говоря, нужно к концу воспроизведения записи greeting выполнить соединение, желательно до конца приветствия.
Сейчас либо воспоизведение обрывается в момент добавления оператора, либо его добавляет с паузой после окончания записи(довольно большой).
Подскажите, каким способом можно обеспечить данное поведение. Через конференцию?
P.Ilya
Сообщения: 101
Зарегистрирован: 17 ноя 2014, 18:40

Re: Проигрывание приветствия перед очередью

Сообщение P.Ilya »

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

BackGround(greeting)
Не возвращает управление.
BackGround: Проигрывает звуковой файл, в это время могут исполняться другие команды
Непонятно почему

Подскажите, какие средства смотреть - meetme, конференция, parked call, очередь, MOH?
Нужно, что бы при звонке проигралось сообщение полностью, но управление вернулось сразу, а не после окончания аудио.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проигрывание приветствия перед очередью

Сообщение ded »

Илья, в этом контексте -

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

exten => s,n,Answer
exten => s,n,BackGround(greeting) #10 секунд
exten => s,n,DoSomething
exten => s,n,Wait(XXX)
exten => s,n,Queue(queue_support,n,,,15,,connect)
ничего вообще не может выполнится, кроме exten => s
Если бы включили дебаг dtmf, то увидели бы сообщения от нажатий кнопок - "нету никакого экстена чтобы перейти на его выполнение".
Читайте азбуку - диал-план Астериска, книга о вкусной и здоровой пище (Будущее телефонии).
P.Ilya писал(а): нужно к концу воспроизведения записи greeting выполнить соединение, желательно до конца приветствия.
Преположим у нас (у вас) BackGround(greeting) длительностью 43 секунды.
Как Астериск должен понять при воспроизведении BackGround(greeting) что дело уже идёт к концу, и пора выполнить соединение? По комментарию #10 секунд в строке? Которое комментируете не точкой с запятой, а # ?
Я бы на месте Астериск застопорился бы наглухо от такого синтаксиса.
P.Ilya
Сообщения: 101
Зарегистрирован: 17 ноя 2014, 18:40

Re: Проигрывание приветствия перед очередью

Сообщение P.Ilya »

Да я это все знаю, понятно что там 1 а потом n, я же привел только кусок который не работает, диалплан отрабатывает.
Да я и сам могу сделать WAIT(42) а потом вкинуть клиента в очередь, но как сделать что бы управление после BackGround(greeting) сразу вернулось? или после любой другой команды, которая будет играть файл строго до конца, позволяя в фоне что-то сделать?
Можно MOH сделать, но тогда при соединении оно преррвется, если до конца не воспроизвелось.
P.Ilya
Сообщения: 101
Зарегистрирован: 17 ноя 2014, 18:40

Re: Проигрывание приветствия перед очередью

Сообщение P.Ilya »

Вот ты хочешь клиенту воспроизвести 10 секунд аудио, а в фоне сделать тяжелые операции, пока аудио воспроизводится, как это сделать? Получив результаты, допустим его вкинуть в нужную очередь, или еще что-то
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Проигрывание приветствия перед очередью

Сообщение zzuz »

Вот это мощь, вот это Игнор.
По полочкам все разложено, но выход автор все равно через окно ищет.
Линия24 - Системы Массового Телефонного Обслуживания
P.Ilya
Сообщения: 101
Зарегистрирован: 17 ноя 2014, 18:40

Re: Проигрывание приветствия перед очередью

Сообщение P.Ilya »

Чего по полочкам разложено? Да пусть он дальше воспроизводит файл, в чем проблема?
10 секунд аудио для клиента, в фоне что-то вычисляется, аудио заканчивается, диалплан продолжается
как сделать что-то похожее на BackGround, только неблокирующая операция, которая сразу вернет управление в диалплан дальше.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проигрывание приветствия перед очередью

Сообщение ded »

Последний раз редактировалось ded 07 фев 2020, 18:31, всего редактировалось 1 раз.
P.Ilya
Сообщения: 101
Зарегистрирован: 17 ноя 2014, 18:40

Re: Проигрывание приветствия перед очередью

Сообщение P.Ilya »

Ну MOH же у вас внутреннего протеста не вызывает? Он отлично работает. Только вот прервется при ответе.
Как сделать что бы не прервалось, блин
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проигрывание приветствия перед очередью

Сообщение ded »

За это

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

exten => s,n,System(php status.php BUSY ${CHANNEL:6} &);
exten => s,n,System(php premium.php update ${ACTIONID} ${group_result} &);
уже можно линейкой по пальцем.
Скрипты premium.php надо помещать в /var/lib/asterisk/agi-bin и вызвывать через
exten => s,n,AGI(premium.php
а не
exten => s,n,System

Вы вроде столько лет уже живёте с Астериском, а такие дрова рубите - диву даюсь!
Только не надо тут заявлений, что у вас много других дел.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH