по-моему вы совсем не читаете что пишет топикстартер и обсуждение. и как они будут между собой синхронизироваться эти два звонка? говоят же что должно проигрываться одновременно. что если воторая у человека автоподнимание трубки будет на секунду или другую позже?
octopas ( 2013-06-14 20:02:16 +0400 )редактироватьну. в отличии от вас я это пробывал.все работает одновременно.
meral ( 2013-06-14 23:50:47 +0400 )редактироватьа вы не предполагаете что автоматический подъем трубки настроенный на софтфоне или sip-телефоне может не сработать сразу по каким-либо причинам - проблемы сети и тп.... тогда вашему решению грош цена. об этом автор темы и говорил, это то что вы пропустили. уже во второй раз объясняю - никак не поймете.
octopas ( 2013-06-15 03:04:42 +0400 )редактироватькакой автоматический подьем трубки? chanspy играет в существующий канал. который по определению уже отвечен.
meral ( 2013-06-15 20:21:14 +0400 )редактироватьна пустом сервере работает. Под нагрузкой время проигрывания разбегается. Явно канал оператора позже подымается. Да и сложная схема получается. Тогда уж лучше просто Dial с G раскидывать говорящих по диалплану, проигрывать чего хотим и бриджевать потом каналы.
bandys ( 2013-06-16 13:38:39 +0400 )редактироватьсинхронизация каналов возможна используя wait(0.1) и функцию DB. ну либо проиграть через конференцию(соответсвенно с конференции звук через chanspy и будет 100% синхронно)
meral ( 2013-06-16 21:12:38 +0400 )редактировать
вам надо что то оператору обязательно проигрывать ? может просто тип звонка поменять, показать что это не просто звонок, а звонок от самого ИВАН ИВАНОВИЧА !!!
awsswa ( 2013-06-14 17:46:21 +0400 )редактироватьДа, надо проигрывать обязательно. Звонка как такового у нас нет, аппарат сам сразу же подымает трубку. Пялиться в монитор они устают за целый день, и соответсвенно по возможности не смотрят на него. Поэтому оптимально что то проиграть в уши. Вопрос как это сделать одновременно? Пока ответа не нашел.
bandys ( 2013-06-14 18:00:50 +0400 )редактироватьпроигрывает по очереди, вариант только один - короткий БИК или пару коротких БИК-БИК что для звонящего небыло большой паузы
awsswa ( 2013-06-14 18:24:05 +0400 )редактироватьпо-моему cmd Bridge - это то что вы ищете http://www.voip-info.org/wiki/view/Asterisk+cmd+Bridge
octopas ( 2013-06-14 18:35:10 +0400 )редактироватьтакой вариант уже есть. Правда поставил не БИК (звонков много, девушек напрягает), а тихий кашель. :)
bandys ( 2013-06-14 18:35:13 +0400 )редактироватькак вариант - в диалплане входящего вызова создаете .call файл со звонком оператору, где прописываете в переменную channel на котором висит клиент. в контексте звонка через .call файл сначала проигрываете уведомление а потом делаете Bridge с каналом из переменной (впринципе Bridge и играть сам умеет).
octopas ( 2013-06-14 18:39:05 +0400 )редактировать2octopas c Bridge схема получается уж очень громоздкая, да и нет гарантии, что проигрывание файла в каждом из каналов совпадет достаточно точно. В день обслуживается порядка 10000 звонков, так что вероятность разбежки достаточно вероятна на мой взгляд. А при разбежке в секунду можно тогда и вышеописанный метод использовать. Если в нем использовать LIMIT получаем такой же эфект как и в Dial, файлы проигрываются по очереди.
bandys ( 2013-06-14 18:44:27 +0400 )редактироватьтогда AsyncAGI ваш друг :) если нужно - могу помочь..
octopas ( 2013-06-14 18:49:22 +0400 )редактировать:) мы с ним дружны но не до такой степени :) надо программеров напрячь, мож допишут в Dial сразу такую плюшку
bandys ( 2013-06-14 18:55:44 +0400 )редактироватьесть как вариант - cmd Originate которая блокирует диалплан. как только будет ответ от оператора - управление вернется в диалплан, соответственно проигрывание будет синхронизировано. только как передать туда channel с которым соединять после проигрывания.. возможно сработает наследование канальных переменных, но не думаю... можно поправить исходник Originate чтобы он принимал дополнительный параметр - имя канала с которым соединять потом, т.е. сделать еще одну custom командочку на базе Originate...
octopas ( 2013-06-14 19:03:38 +0400 )редактироватькрайне не рекомендую писать на с/с++ модули без понимания как работает астриск. делайте дилпланом.
meral ( 2013-06-14 19:31:19 +0400 )редактироватьпокажите как надо meral. выложите "идеальный" модуль. или вы принципиальный противник модификации открытого исходного кода? никто не заставляет тестировать на продакшн системе.
octopas ( 2013-06-14 20:06:07 +0400 )редактироватьбез комментариев.
meral ( 2013-06-14 23:51:54 +0400 )редактировать2 meral. Вы знакомы с нашими программистами? с чего вдруг утверждение "крайне не рекомендую писать на с/с++ модули без понимания как работает астриск."? Вы как профи возметесь за эту работу? Какова цена вопроса? Патч будет передан в сообщество на безвозмездной основе. Так что учтите это в цене. Нужно добавить функциональность проигрывания в бекграунде произвольного файла одновременно в оба плеча звонка при ответ в команде Dial. Происходить это должно после отработке всех остальных стандартных плюшек команды Dial, либо в бекграунде.
bandys ( 2013-06-16 13:51:03 +0400 )редактироватьне в коем случае не приуменьшаю достоинства ваши программистов, но если чтото делается через текущий функционал лучше не лезьт в дебри softmix/audiohooks. там есть проблема с блокировками. грубо говоря если ваше сообщение срабатывает когда астриск играет сообщение например черз Playback - есть шанс core dump в libc. отловить проблему пока не удалось никому насколько я знаю.
meral ( 2013-06-16 21:11:12 +0400 )редактировать