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

Dial (m) или замена гудков на moh

Добавлено: 12 дек 2018, 00:52
Leo
Доброго Вам здоровья, форумчане!
Обращаюсь к Вам за помощью.
Проблема стоит следующего характера.
В общем у меня сейчас в проде крутиться сервер с астериском и некоторыми дополнительными прикрученными к нему системами. В частности одна из них это приложение написанное на с++ задача которого, в принципе, та же что и у астера - во-первых правильно делить агентов на команды, во-вторых распределять агентов по определённому критерию, ну и более гибкая реализация диалпланов в коде с помощью CAGI.
Собственно по сабжу. Сейчас я пытаюсь запилить функционал как у коллцентров банков, к примеру (не всех). Во время дозвона клиента к агентам, он слышит музыку на удержании, либо же какое то сообщение до того момента, пока кто то из агентов не возьмёт трубку. Моя проблема заключается в том , что так как функция Dial у меня гоняется по циклу , и вызывает не одного агента и не один раз, то Dial(m) в моём случае перезапускает трек MoH каждый раз когда исполнение кода доходит до Dial . То есть:
1) Приходит звонок, приложение вытягивает агентов относящихся к команде. В этот момент начинает проигрываться MoH;
2) Если агенты есть , начинается дозвон (Dial(m)), музыка всё так же продолжает играть , гудков нету , но;
3) Если Nobody Pickup , то музыка останавливается , и трек запускается с самого начала.

Я пробовал использовать много DialplanApplication-ов , но пришёл к выводу, что это всё не подойдёт в любом случае, т.к. гудки в моём случае устраняет только опция m , и только во время Dial.
Я залез в астеровские исходники (модуль dial.c) и нашёл там то , что действительно подтверждает вывод CLI. При использовании m музыка играет только на период noanswertimeout, и потом отключается.

Так вот собственно вопрос: в теории я могу залезть в этот модуль и либо дописать в него какую-то дополнительную опцию для этого функционала, либо замодить существующую, но может быть всё таки есть какой-то другой способ реализовать желаемый мной функционал нативными средствами астера (не найденные мною DialplanFunctions, DialplanApplications, возможно какие то доп.модули, фичи, etc ) , возможно я что то пропустил? (книгу телефония будущего я читал)

Буду признателен за любую подсказку в этом направлении.
Большое спасибо!
Всем добра.

Re: Dial (m) или замена гудков на moh

Добавлено: 12 дек 2018, 10:35
ded
Сделайте ещё один класс музыки в удержании - streaming, и подключите радио вместо MoH.

Re: Dial (m) или замена гудков на moh

Добавлено: 13 дек 2018, 12:50
Leo
Потрясающее решение!
Немного изменил код, добавил класс музыки, и всё работает как часики. Теперь ещё допилю какой-нибудь скриптик, чтобы оно перезапускало трек при каждом вызове (если конфликтов с астером у плеера не возникнет) и вообще будет огонь.
Спасибо большое!

Re: Dial (m) или замена гудков на moh

Добавлено: 13 дек 2018, 14:52
whoim
Leo писал(а):Потрясающее решение!
присоединяюсь полностью, надо запомнить