Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Macro, циклическая обработка аргументов

0

Доброго времени суток. Спасибо, что зашли в этот вопрос и заранее благодарен всем!

Нужно реализовать набор номера, с автоматическим вводом добавочного номера, это я сделал с помощью макроса:

[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

Может кто-нибудь подскажет где у меня ошибка? Или подскажет более грамотное решение? Заранее благодарен всем, спасибо за внимание, хорошего Вам дня!

удалить закрыть спам изменить тег редактировать

спросил 2014-05-29 19:46:04 +0400

A.Kuntsevich Gravatar A.Kuntsevich
1 1 1

обновил 2014-05-29 20:07:09 +0400

1 Ответ

0

технически нужно преобразовать строку 2^5^2010^6^123 в ww2010wwwwww123. Количество добавочных тут избыточный параметр.

SendDTMF(ww2010wwwwww123)

а лучше просто командой DIal.

Dial(Tech/Num,,D(ww2010wwwwww123))
ссылка удалить спам редактировать

ответил 2014-05-29 21:37:21 +0400

zzuz Gravatar zzuz flag of Russian Federation
7174 2 6 75
http://line24.ru/

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
1 закладка

подписаться на rss ленту новостей

Статистика

Задан: 2014-05-29 19:46:04 +0400

Просмотрен: 184 раз

Обновлен: May 29 '14

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.