@ilchenkoa

Как перейти в начало макроса в ael?

Всем привет! Нашел в интернете подходящий для моих задач макрос и пытаюсь его перевести в ael формат. Столкнулся с проблемой возврата в самое начало макроса.
[macro-gsm]
exten => s,1(start),Set(ARG2=$[${ARG2} + 1]); 
same => n,GotoIf($[${ARG2}>=9005]?sip:repeat);
same => n(repeat),MYSQL(Connect connid localhost asterisk password asterisk); 
same => n,MYSQL(Query resultid ${connid} SELECT SUM(`billsec`) FROM `cdr` WHERE `dstchannel` LIKE '%${ARG2}%' AND `calldate` BETWEEN DATE_FORMAT(NOW(),'%Y-%m-01') AND LAST_DAY(NOW()) + INTERVAL 1 DAY) ;
same => n,MYSQL(Fetch fetchid ${resultid} duration) ; 
same => n,MYSQL(Clear ${resultid}) ;
same => n,MYSQL(Disconnect ${connid})
same => n,GotoIf($[${duration}<=18000]?call:start) ; 
same => n(call),Set(limit=$[18000 - ${duration}]) ; 
same => n,Dial(SIP/${ARG2}/${ARG1},,S(${limit})tTr) ;
same => n,GotoIf($[${DIALSTATUS}=ANSWER]?finish:start) ;
same => n(sip),Dial(SIP/ctm/${ARG1},,Ttr) ;
same => n(finish),Hangup ;


В выборе sw мне необходимо выполнить цикл, т.е вернуться вверх.
macro test( ext, trk ) {
        Set(trk=$[${trk} + 1]);
        GotoIf($[${trk}>=9005]?sip:repeat);
        repeat:
                MYSQL(Connect connid localhost asterisk password asterisk);
                MYSQL(Query resultid ${connid} SELECT SUM(`billsec`) FROM `cdr` WHERE `dstchannel` LIKE '%${trk}%' AND `calldate` BETWEEN DATE_FORMAT(NOW(),'%Y-%m-01') AND LAST_DAY(NOW()) + INTERVAL 1 DAY);
                MYSQL(Fetch fetchid ${resultid} duration);
                MYSQL(Clear ${resultid});
                MYSQL(Disconnect ${connid});
                Noop(${duration});
                GotoIf($["${duration}" <= "50"]?wll:sw);
                wll:
                        Set(limit=$[50 - ${duration}]);
                        Dial(SIP/${ext}@${trk},,S(${limit})tTr);
                sw:
                       ????
        sip:
                Dial(SIP/${ext}@provider,60);
                Hangup;
}

Каким образом можно реализовать переход?
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
@ilchenkoa Автор вопроса
Решил с помощью меток и goto.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы