Страница 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й пример ок в плане синтаксиса

зы:
не то что бы это было сложно, и сервер не так уж и нагружен, но меня лично коробит идея вызывать внешний интерпритатор ради таких пустяков.