Страница 1 из 1

Проиграть сообщение ответившему на звонок

Добавлено: 12 дек 2012, 22:45
Vengant
Подскажите, что делаю не так.

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

Пытаюсь сделать так:
[Redirect]
exten = s,1,NoOp(Redirect)
exten = s,2,Set(CT=${CHANNEL})
exten = s,3,Dial(SIP/Provider/891ХХХХХХХХ,,G(Redirect^s^4)mg)
exten = s,4,WAIT(3,m)
exten = s,5,WAIT(1)
exten = s,6,Set(CH=${CHANNEL})
exten = s,7,Playback(/var/lib/asterisk/sounds/custom/call)
exten = s,8,Bridge(${CT})
exten = s,9,Hangup(${CT})

Все работает, музыка воспроизводится, сообщение мобильному абоненту перед соединением проговаривается, но после того, как мобильный абонент кладет трубку - сообщение проговаривается еще раз, но уже тому, кто звонил.

Где я ошибся?

Re: Проиграть сообщение ответившему на звонок

Добавлено: 12 дек 2012, 23:24
Samael28
Уберите опцию g из Dial. Ну и не смешивайте все в 1 экстеншн.

Re: Проиграть сообщение ответившему на звонок

Добавлено: 16 дек 2012, 04:03
Vengant
Убрал - не помогло. В принципе оно работает как надо если сделать костыль в виде проверки переменной-флага перед воспроизведением сообщения, но это не есть правильно, к тому же постоянно сыплются ошибки "invalid cause to hangup" в конце.

Не догоняю как корректно разбить по нескольким экстеншнам.

Re: Проиграть сообщение ответившему на звонок

Добавлено: 16 дек 2012, 09:12
awsswa
Вы лог звонка сюда покладите и сразу увидите кольцо по которому идет звонок.

Re: Проиграть сообщение ответившему на звонок

Добавлено: 16 дек 2012, 09:47
Vlad1983
посмотрите опцию L cmd Dial

Re: Проиграть сообщение ответившему на звонок

Добавлено: 16 дек 2012, 15:16
Vengant
Тьфу, вот уж точно горе от ума. Зачем-то стал городить сложную конструкцию в диалплане, хотя есть опция "A" команды Dial :lol: