Добрый день, уважаемые.
Схема: имеется астер 1.8, имеется FXS-гейт D-Link DVG-5008S, имеется аналоговая УАТС, есть некоторое количество исходящих линий GSM (chan_dongle).
Абоненты <---> УАТС <----> FXS <----> Asterisk <-----> GSM
Задача:нужно, чтобы звонок, поступивший на астер роутился таким образом -- сначала посылается вызов через FXS-гейт с DTMF-донабором на УАТС, если в течение некоторого времени (допустим, 20 секунд) нет ответа -- послать вызов через GSM.
Сделано таким образом:
exten => 555,1,Dial(SIP/fxsgate,20,D(555))
same => n,Dial(Dongle/g0/+71111111111)
Беда в том, что астер считает, что звонок был обработан первой инструкцией Dial (хотя это совсем не обязательно так, получается, что "ответ" получен от шлюза, который потом донабирает номер, после чего идёт посылка вызова, но совсем не факт, что кто-то ответил) и к следующей инструкции, соответственно, не переходит (DIALSTATUS == ANSWER).
Можно добавить параметр g, но тогда будет возникать ситуация, что на звонок сначала действительно ответил живой человек, поговорил, а после того, как положил трубку, ему сразу же полетел вызов на мобильный телефон.
Подскажите направление, куда копать, а то я что-то уже совсем завис.