Страница 1 из 2
					
				можно ли создать переменнную/массив ексеншенов?
				Добавлено: 04 май 2017, 16:49
				 alex.preys
				хочется сделать диалплан более читаемым, сечас там есть однотипные записи вида
Код: Выделить всё
    exten => _067X., n, Dial(SIP/${EXTEN}@192.168.10.112, 60, rt)
    same => n, Hangup()
    exten => _068X., n, Dial(SIP/${EXTEN}@192.168.10.112, 60, rt)
    same => n, Hangup()
    exten => _096X., n, Dial(SIP/${EXTEN}@192.168.10.112, 60, rt)
    same => n, Hangup()
    exten => _097X., n, Dial(SIP/${EXTEN}@192.168.10.112, 60, rt)
    same => n, Hangup()
    exten => _098X., n, Dial(SIP/${EXTEN}@192.168.10.112, 60, rt)
    same => n, Hangup()
как эти коды операторов куда-то вынести, чтобы заменить одной сторкой? или это решается с помошь контекстов?
 
			 
			
					
				Re: можно ли создать переменнную/массив ексеншенов?
				Добавлено: 04 май 2017, 17:02
				 whoim
				mysql/odbcfunc/agi/ami и еще много путей, например, realtime sip и diaplan
			 
			
					
				Re: можно ли создать переменнную/массив ексеншенов?
				Добавлено: 04 май 2017, 17:09
				 alex.preys
				ой вэй, ну так я и оптимизирую диалплан, вот сижу, книжку перечитываю
или вы хотели меня впечатлить знанием умных слов?  я впечатлён, kind of success story
			 
			
					
				Re: можно ли создать переменнную/массив ексеншенов?
				Добавлено: 04 май 2017, 17:24
				 fecyt
				А почему шаблоны не сократить в одну линию, типа _06[78]. и тд? Ну или сделать realtime базу, agi скрипт и другие умные слова, как предложили выше.
Кстати, Hangup не нужен, если autofallthrough=yes
			 
			
					
				Re: можно ли создать переменнную/массив ексеншенов?
				Добавлено: 04 май 2017, 17:35
				 alex.preys
				коды GSM операторов не менятюся настолько часто, ну и их не так много чтобы мускль прикручивать
бывает что 096 КС, 097 мтс, 098 снова КС, т.е. коды не подряд, и никак не сгруппированы, т.е. городить регексп "если вторая цифра 8 то третья 6 или 7, а если вторая 9 то третья 4 или 8" совсем не хочеться
вот да, сижу, читаю про agi и ARRAY
			 
			
					
				Re: можно ли создать переменнную/массив ексеншенов?
				Добавлено: 04 май 2017, 17:37
				 whoim
				alex.preys писал(а):или вы хотели меня впечатлить
хотел помочь, но вижу что зря. Обратитесь к вашему системному администратору.
 
			 
			
					
				Re: можно ли создать переменнную/массив ексеншенов?
				Добавлено: 04 май 2017, 17:41
				 fecyt
				Если не хочется ничего городить, что мешает сделать шаблон вида _X., а для специфичных маршрутов прописать что-то конкретное?
			 
			
					
				Re: можно ли создать переменнную/массив ексеншенов?
				Добавлено: 04 май 2017, 17:51
				 ded
				alex.preys писал(а):коды GSM операторов не менятюся настолько часто, ну и их не так много чтобы мускль прикручивать
бывает что 096 КС, 097 мтс, 098 снова КС, т.е. коды не подряд, и никак не сгруппированы, т.е. городить регексп "если вторая цифра 8 то третья 6 или 7, а если вторая 9 то третья 4 или 8" совсем не хочеться
Если не хочется MySQL, то можно обойтись нативной astdb.
Но для больших массивов номеров разных операторов лучше всё1 же делать запрос в базу
fecyt писал(а):что мешает сделать шаблон вида _X.,
В корне не верно дважды.
1) у операторов нумерация ясная и понятная, значность - постоянная. То есть шаблон должен быть без точки
2) Не начинается на 00, а значит
Код: Выделить всё
exten => _09ZXXXXXX,1,AGI(getoperator.php)
exten => _09ZXXXXXX,n,Dial(SIP/${OPERATOR}/${EXTEN})
 
			 
			
					
				Re: можно ли создать переменнную/массив ексеншенов?
				Добавлено: 04 май 2017, 17:53
				 fecyt
				Можно не городить и AGI, смысл ли есть, если не много префиксов, создайте просто переменную, воткните через запятую туда все префиксы, и пишите что то типа, exten => _X.,1,GotoIf(проверка экстен на существование?exist:notexist)
same => n(exist),Dial(...
same => n,(notexist),Background(...
Затем просто будете добавлять или удалять префиксы, а не вызывать скрипт на другом языке и все в этом роде...
			 
			
					
				Re: можно ли создать переменнную/массив ексеншенов?
				Добавлено: 04 май 2017, 17:55
				 alex.preys
				хочется сделать шаблон вида 
 exten => _0[67|68|96|98]., n, Dial(SIP/${EXTEN}@192.168.10.112, 60, rt)
 exten => _0[50|66|95|99]., n, Dial(SIP/${EXTEN}@192.168.10.111, 60, rt)
или
 exten => _0[someARRAY1]., n, Dial(SIP/${EXTEN}@192.168.10.112, 60, rt)
 exten => _0[someARRAY2]., n, Dial(SIP/${EXTEN}@192.168.10.112, 60, rt)
это просто, красиво, и вроде должно работать, только я не знаю будет ли 1й пример ок в плане синтаксиса
зы:
не то что бы это было сложно, и сервер не так уж и нагружен, но меня лично коробит идея вызывать внешний интерпритатор ради таких пустяков.