Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / MusicOnHold

MusicOnHold

Проблема с возвратом гудков после MusicOnHold
Откуда: Казань
Сообщений: 10

MusicOnHold

Вопрос в следующем.
MusicOnHold сам по себе работает, никаких претензий к нему нет.
Поставил его работать в режиме files, так проще и надёжнее (мне по крайней мере так показалось)
Но вот какая беда, встаёт проблема с реализацией возврата звонка при окончании проигрывания музыки вместо гудка.
То есть:

exten => _X.,1,Dial(SIP/client1|XX|m(class)) хх - время, class - MOH class
всё работает нормально, вместо гудка звонящий абонент слышит записанный рекламный голос, запись длиной XX-0.5 секунд

далее начинается попус:
exten => _X.,2,Dial(SIP/client1|YY|tT) YY - время
и вот тут у звонящего в трубке ТИШИНА млин! а очень хотелось бы, чтобы он всё-таки слышал гудок в трубку.

Пробовал такие варианты:
exten => _X.,2,Dial(SIP/client1|YY|tTrR)
exten => _X.,2,Dial(SIP/client1|YY|tTr)
exten => _X.,2,Dial(SIP/client1|YY|tTR)

не прокатывает. ни разу :(

Может кто-нибудь сталкивался с подобной проблемой, помогите мне плиз тупому...
Just a SoulMaster
2008-12-17 13:17

Avatara of terminal
Сообщений: 196

Re: MusicOnHold

1,MusicOnHold()
n,Dial()
2008-12-17 13:42

Avatara of simax
Откуда: Нижний Новгород
Сообщений: 277

Re: MusicOnHold

А откуда звонок то идет? Канал c которого идет звонок уже отвеченный? Какой тип этого канала?

Пока могу предположить следующее:
Канал с которого приходит звонок это SIP канал и он еще не отвеченный. В этом случае при первом Dial с MOH ему посылется 183 Session Progress с SDP и звонящая сторона слушает MOH. Тут все ок. Дальше вызывается второй Dial и вызываемый абонент начинает звонить - тут с вызывемого абонента приходит 180 Ringing и он тупо пересылется звонящему. Нормальные телефоны должны начать играть гудок в трубку но многие телефоны ничего не будут делать и будут ждать RTP поток так как уже установили RTP сессию после 183 Session Progress. Как решение могу предложить всунуть Answer между первым и вторым Dial. Чтото типа так:
...
exten => _X.,2,Dial(SIP/client1|YY|tT)
exten => _X.,3,Answer
exten => _X.,4,Dial(SIP/client1|YY|tT)
...

Этот Answer пошлет 200 OK и 180 Ringing больше не будет пересылаться звонящему. Вместо этого Asterisk будет играть ringback тон из indications.conf
2008-12-17 13:46

Откуда: Казань
Сообщений: 10

Re: MusicOnHold

Конфигурация:

ТФОП---Cisco AS5350---Asterisk

Канал с которого приходит звонок таком образом является сип-каналом для астериска, но реально звонок приходит с обычного городского коммутатора (городской АТС).

Тему с Answer отмёл сразу как невозможную в моём случае к реализации: главное в этом во всём - астериск НЕ ДОЛЖЕН СНИМАТЬ ТРУБКУ. Нужно чтобы сначала клиент вместо гудка слушал рекламный текст, а после прослушивания текста начинались гудки.

Нет, есть, конечно, и такой вариант - тупо записываем гудок, открываем что-нить типа SoundForge и сводим там рекламный текст со звуком гудка и выкладываем этот файл в MOH директорию... Но как-то это через попку, хочется стандартными средствами астериска эту проблему решить.
Just a SoulMaster
2008-12-17 14:28

Avatara of simax
Откуда: Нижний Новгород
Сообщений: 277

Re: MusicOnHold

soulmaster:

Конфигурация:

ТФОП---Cisco AS5350---Asterisk

Канал с которого приходит звонок таком образом является сип-каналом для астериска, но реально звонок приходит с обычного городского коммутатора (городской АТС).

Тему с Answer отмёл сразу как невозможную в моём случае к реализации: главное в этом во всём - астериск НЕ ДОЛЖЕН СНИМАТЬ ТРУБКУ. Нужно чтобы сначала клиент вместо гудка слушал рекламный текст, а после прослушивания текста начинались гудки.

Нет, есть, конечно, и такой вариант - тупо записываем гудок, открываем что-нить типа SoundForge и сводим там рекламный текст со звуком гудка и выкладываем этот файл в MOH директорию... Но как-то это через попку, хочется стандартными средствами астериска эту проблему решить.
Если проблема такая как я описал выше то в любом случаем придется искать workaround так как проблема в этом случае не в астериске. Если с answer не устраивает по причине биллинга тогда можно типа так:

Ненужно вместе сводить рекламный текст и гудок - запиши гудок отдельно и сделай отдельный класс MOH для гудка - в этом классе поставь только записанный гудок и больше ничего. Ну и пользуй это типа так:
...
exten => _X.,2,Dial(SIP/client1|YY|m(reklama))
exten => _X.,3,Dial(SIP/client1|YY|m(ringback-only))
...
Думаю так должно заработать.
2008-12-17 14:38

Откуда: Казань
Сообщений: 10

Re: MusicOnHold

Simax, ну в общем-то это однотипное решение с тем что я написал...

Ладно, пока что ограничусть сведением... Ну а дальше посмотрим, может кто и решил как эту проблему. Но за совет всё равно спасибо.
Just a SoulMaster
2008-12-17 15:22

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru