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