1 | изначальная версия редактировать | |
Доброго времени суток. Спасибо, что зашли в этот вопрос и заранее благодарен всем!
Нужно реализовать набор номера, с автоматическим вводом добавочного номера, это я сделал с помощью макроса:
[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 | No.2 Revision редактировать |
Доброго времени суток. Спасибо, что зашли в этот вопрос и заранее благодарен всем!
Нужно реализовать набор номера, с автоматическим вводом добавочного номера, это я сделал с помощью макроса:
[macro-sendnum]
exten => s,1,Wait(${ARG1})
[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})
[macro-sendnum]
exten => s,1,Set(TIMES=${ARG1})
exten => s,n,Set(i=0})
exten => s,n,While($[${i} < ${TIMES}])
${TIMES}])
exten => s,n,Set(i=$[ ${i} + 1 ])
])
exten => s,n,Wait(${ARG$[${i} + 1]})
1]})
exten => s,n,SendDTMF(${ARG$[${i} + 2]})
2]})
exten => s,n,EndWhile
Может кто-нибудь подскажет где у меня ошибка? Или подскажет более грамотное решение? Заранее благодарен всем, спасибо за внимание, хорошего Вам дня!
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.