Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

И снова приветсвие оператора

0

Добрый! Задача: После выхода звонка из очереди на оператора, необходимо при ответе оператора (в нашем случае аппарат сам поднимает трубку) необходимо проиграть сообщение обоим участникам разговора. Клиенту проиграть приветствие, но надо что бы оператор слышал его тоже, дабы понимал, что пришел звонок. Чего нашел по теме: http://asterisk-support.ru/question/14507/anons-vyzyvaiushchemu-posle-podniatiia-trubki/ Не подходит, ибо файл проигрывается сначала файл проигрывается callee затем caller, во время проигрывания они друг друга не слышат.

Через MeetMe не подходит, ибо меняется CDR.

Playback проигрывается только одному из участников.

Подскажите если не сложно. Спасибо.

удалить закрыть спам изменить тег редактировать

спросил 2013-06-14 17:42:45 +0400

bandys Gravatar bandys
284 9 11

Comments

вам надо что то оператору обязательно проигрывать ? может просто тип звонка поменять, показать что это не просто звонок, а звонок от самого ИВАН ИВАНОВИЧА !!!

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 )редактировать

1 Ответ

0

делаете два звонка лишних

http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out

в каждом звонке ставите chanspy на нужную сторону и playback

ссылка удалить спам редактировать

ответил 2013-06-14 19:28:37 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2013-06-14 19:28:59 +0400

Comments

по-моему вы совсем не читаете что пишет топикстартер и обсуждение. и как они будут между собой синхронизироваться эти два звонка? говоят же что должно проигрываться одновременно. что если воторая у человека автоподнимание трубки будет на секунду или другую позже?

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 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2013-06-14 17:42:45 +0400

Просмотрен: 769 раз

Обновлен: Jun 14 '13

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.