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
|
Сообщений: 196
|
Re: MusicOnHold
1,MusicOnHold()
n,Dial()
|
Откуда: Нижний Новгород
Сообщений: 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
|
Откуда: Казань
Сообщений: 10
|
Re: MusicOnHold
Конфигурация:
ТФОП---Cisco AS5350---Asterisk
Канал с которого приходит звонок таком образом является сип-каналом для астериска, но реально звонок приходит с обычного городского коммутатора (городской АТС).
Тему с Answer отмёл сразу как невозможную в моём случае к реализации: главное в этом во всём - астериск НЕ ДОЛЖЕН СНИМАТЬ ТРУБКУ. Нужно чтобы сначала клиент вместо гудка слушал рекламный текст, а после прослушивания текста начинались гудки.
Нет, есть, конечно, и такой вариант - тупо записываем гудок, открываем что-нить типа SoundForge и сводим там рекламный текст со звуком гудка и выкладываем этот файл в MOH директорию... Но как-то это через попку, хочется стандартными средствами астериска эту проблему решить.
Just a SoulMaster
|
Откуда: Нижний Новгород
Сообщений: 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))
...
Думаю так должно заработать.
|
Откуда: Казань
Сообщений: 10
|
Re: MusicOnHold
Simax, ну в общем-то это однотипное решение с тем что я написал...
Ладно, пока что ограничусть сведением... Ну а дальше посмотрим, может кто и решил как эту проблему. Но за совет всё равно спасибо.
Just a SoulMaster
|
|