Страница 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й пример ок в плане синтаксиса
зы:
не то что бы это было сложно, и сервер не так уж и нагружен, но меня лично коробит идея вызывать внешний интерпритатор ради таких пустяков.