Подскажите как, я только хотел писать вопрос и увидел этот, можно ли строку неизвестного размера например 101-102-103-104... Как то в цикле обходить и вызывать DIAL для каждого номера. Идея в том что из базы вытягивается набор сип номеров который нужно обзвонить. Вот только загвоздка в том что я не знаю заранее размера строки, есть ли способ распарсить строку неизвестного размера по заданому разделителю и получить каждый элемент этой строки для передачи функции Dial ?
godlike ( 2013-07-17 17:39:20 +0400 )редактироватьЭтот способ не работает, если неизвестна длина массива на который разбивается строка. Можно попробовать, т.к. вытащить длину массива через AGI один раз это лучше, чем вызывать скрипт при каждом обходе цикла, но все равно не айс.
bb2kp ( 2013-07-17 21:44:20 +0400 )редактироватькрутить func POP не сработает? здесь http://www.voip-info.org/wiki/view/Asterisk+func+fieldqty
octopas ( 2013-07-17 22:02:41 +0400 )редактировать2bbkp хз. у меня все работает. в данном примере вообще не важна длина строки.
meral ( 2013-07-18 00:33:50 +0400 )редактироватькстати если вы не в курсе, граматика диалплана астерсика полная. тем кто не пропускал пары в универе это говорит о том, что написать можно любую задачу без внешних скриптов. хотя не всегда имеет смысл. в данном случае - имеет смысл agi не использовать.
meral ( 2013-07-18 00:42:24 +0400 )редактироватья пока не вьехал как, но ваш скрипт действительно работает, спасибо большое за пример
godlike ( 2013-07-18 01:22:07 +0400 )редактироватьче там непонятного? он берет самый первый аргумент и строке присваивает все остальные(второй и дльше). и так пока строка не кончится.
meral ( 2013-07-18 10:27:41 +0400 )редактировать2meral в добавлении и в качестве реторики и новичкам на заметку - по поводу полной грамматики диалплана - goto это общепризнанный анти-паттерн в программировании, используется повсеместно в астерисковском диалплане что показывает что ничего более-менее комплексного без AEL/AGI/lua для * реализовывать не рекомендуется (а с учетом того что рано или поздно грамотному админу скорее всего придется - это все равно что переучиваться с бейсика на C). смысл использовать 3 оператора где можно заменить одним ...
octopas ( 2013-07-19 00:04:02 +0400 )редактироватьдавайте не путать гармматики и языки высокого уровня. диаплан - это граматика. вы бы еще посетовали что ни в одном процессоре в ассемблере нету команд типа repeat/function. а смысл использовать cut вместо pop - совместимость. но вам она не нужна, успокойтесь.
meral ( 2013-07-19 19:25:06 +0400 )редактировать