Доброго Вам здоровья, форумчане!
Обращаюсь к Вам за помощью.
Проблема стоит следующего характера.
В общем у меня сейчас в проде крутиться сервер с астериском и некоторыми дополнительными прикрученными к нему системами. В частности одна из них это приложение написанное на с++ задача которого, в принципе, та же что и у астера - во-первых правильно делить агентов на команды, во-вторых распределять агентов по определённому критерию, ну и более гибкая реализация диалпланов в коде с помощью 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 ) , возможно я что то пропустил? (книгу телефония будущего я читал)
Буду признателен за любую подсказку в этом направлении.
Большое спасибо!
Всем добра.