Доброго времени суток. Спасибо, что зашли в этот вопрос и заранее благодарен всем!
Нужно реализовать набор номера, с автоматическим вводом добавочного номера, это я сделал с помощью макроса:
[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
Просмотрен: 192 раз
Обновлен: May 29 '14
Как узнать кто поднял трубку при множественном Dial()?
вызов макроса из Dial в extensions.ael
Приветствие вызывающей стороне
После команды Wait перестают обрабатываться команды
Cancel cause code как передать?
Не говорит что недоступен абонент
Разрешить инклюд всем кроме...
Нет голосового сообщения если телефон выключен или заблокирован
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.