Опыта в программированние конечно не хватает, но я ведь перед выполнением в CLI инициализировал переменную с помощью dialplan set global I 1. Код расчитан на 1 поток, в конце ведь I=1, так что теоретически при новом звонке он должен начинать с tax1.
firedark ( 2013-10-18 00:50:46 +0400 )редактироватьасткриск моежт упасть например. короче, слечай неинициализированной переменной надо определять.
meral ( 2013-10-18 15:16:42 +0400 )редактироватьуже убедился что так не следует делать :) как изящнее инициализировать переменную чтобы она потом не мешала при повторном выполнении цикла?
firedark ( 2013-10-18 16:07:19 +0400 )редактироватьну неициализированная она будет пустой. выше написано как изящнее.
meral ( 2013-10-18 21:32:34 +0400 )редактироватьВсе сделал, спасибо. Исправил кусок кода на: exten => s,2,GotoIf($["${GLOBAL(I)}" = ""]?3:4) exten => s,3,Set(GLOBAL(I)=1) exten => s,4,Goto(taxi${I})
firedark ( 2013-10-19 03:18:47 +0400 )редактироватьзачем? достаточно было просто метку tax( бзе индекса) поставить перед любым из выборов. когда переменная неопределена будет прыгать на tax
meral ( 2013-10-19 03:36:59 +0400 )редактироватьСпасибо, не знал что и так можно, учту. Кстати как увидеть в астериске какой код Q.931 получает GSM шлюз от мобильного телефона?
firedark ( 2013-10-19 03:55:12 +0400 )редактироватьесли chan_dongle - включить дебаг. а еси сип - то спросите у производителя шлюза
meral ( 2013-10-19 17:57:13 +0400 )редактировать
После изменения констркции на exten => s,n,Goto(tax${I}) вроде работает, кстати инициализация переменной из CLI это шлишком временное решение, как элегантнее сделать инициализацию на "первое выполнение" что-бы дальше не мешал последуищей работе?
firedark ( 2013-10-18 02:40:58 +0400 )редактировать