Задать вопрос
vasilevkirill
@vasilevkirill
Сертифицированный тренер MikroTik TR0417

Как упростить данный dialplan?

Добрый день товарищи!!!
Натолкните на мысль, как упростить код, так как у меня сейчас немногим меньше чем сто таких правил будет, и мне необходимо ввести к минимуму код:
КОД AEL
context reklama-global {
	200 =>{
		ifTime(*|*|*|jan-may){&rklm-00001();};
		goto ext-queues,200999,1; 
	};
};
macro rklm-00001(){
	Playback(reklama/00001);
	return;
};

AEL поддерживает метки (label, что то вроде таково вида)
context reklama-global {
	200 =>{
		ifTime(*|*|*|jan-may){&rklm-00001();};
		label-end:
			goto ext-queues,200999,1; 
	};
};

Суть вопроса, мне необходимо, выполнить макрос, и после завершения прыгнуть на метку.
Extension => около ста штук, для каждого писать отдельный макрос не хочется.
На вопрос для чего это необходимо, отвечу:
В перспективе выглядеть будет это вот так
context reklama-global {
	200 =>{
		ifTime(*|*|*|jan-may){&rklm-00001();};
ifTime(*|2|*|jan-may){&rklm-00002();};
ifTime(*|1|*|jan-may){&rklm-00003();};
ifTime(*|*|*|jan-may){&rklm-00004();};
ifTime(*|*|*|jan-may){&rklm-00005();};
ifTime(*|3|*|jan-may){&rklm-00006();};
ifTime(*|4|*|jan-may){&rklm-00007();};
ifTime(*|*|*|jan-may){&rklm-00008();};
label-end:
		goto ext-queues,200999,1; 
	};
};

И мне нужно будут выполнить макрос один раз, после чего перевести человека в очередь.
А городить конструкцию if else очень не хочется (
  • Вопрос задан
  • 477 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
macros-ы устарели
попробуйте GoSub
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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