Доброго времени суток. Спасибо, что зашли в этот вопрос и заранее благодарен всем!
Нужно реализовать набор номера, с автоматическим вводом добавочного номера, это я сделал с помощью макроса:
[macro-sendnum]
exten => s,1,Wait(${ARG1})
exten => s,n,SendDTMF(${ARG2})
В команде Dial, вызывал этот макрос по мере надобности и все работало хорошо, Но возникла более сложная задача, иногда нужно вводить эти добавочные номера в несколько этапов: набор номера => ждать пару сек => ввод добавочного => ждать пару сек => ввод добавочного ... Это я пытался реализовать тоже с помощь макроса идея была такая: передавать в макрос аргументы, первый аргумент- кол-во добавочных номеров, потом идут аргументы: задержка в сек-ах, добавочный номер, задержка, добавочный номер, вот для наглядности что я имею ввиду: M(sendnum^2^5^2010^6^123)
Но возник вопрос: как это обработать корректно в макросе? Пытался все это сделать в цикле, но у меня не получилось, что-то не работает, очень нужна помощь опытного в этом деле человека, вот что у меня получилось:
[macro-sendnum]
exten => s,1,Set(TIMES=${ARG1})
exten => s,n,Set(i=0})
exten => s,n,While($[${i} < ${TIMES}])
exten => s,n,Set(i=$[ ${i} + 1 ])
exten => s,n,Wait(${ARG$[${i} + 1]})
exten => s,n,SendDTMF(${ARG$[${i} + 2]})
exten => s,n,EndWhile
Может кто-нибудь подскажет где у меня ошибка? Или подскажет более грамотное решение? Заранее благодарен всем, спасибо за внимание, хорошего Вам дня!
технически нужно преобразовать строку 2^5^2010^6^123 в ww2010wwwwww123. Количество добавочных тут избыточный параметр.
SendDTMF(ww2010wwwwww123)
а лучше просто командой DIal.
Dial(Tech/Num,,D(ww2010wwwwww123))
Задан: 2014-05-29 19:46:04 +0400
Просмотрен: 238 раз
Обновлен: May 29 '14
вызов макроса из Dial в extensions.ael
Как узнать кто поднял трубку при множественном Dial()?
Cancel cause code как передать?
Нет голосового сообщения если телефон выключен или заблокирован
проигрывание музыки определенное время
Исходящие FXO звонки на Dlink DVG 6004
Настройка качества исходящего сигнала при звонке через e1550
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.