ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

можно ли создать переменнную/массив ексеншенов?

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

можно ли создать переменнную/массив ексеншенов?

Сообщение alex.preys » 04 май 2017, 17:49

хочется сделать диалплан более читаемым, сечас там есть однотипные записи вида

Код: выделить все
    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()

как эти коды операторов куда-то вынести, чтобы заменить одной сторкой? или это решается с помошь контекстов?
alex.preys
 
Сообщений: 26
Зарегистрирован: 24 май 2016, 16:50

Re: можно ли создать переменнную/массив ексеншенов?

Сообщение whoim » 04 май 2017, 18:02

mysql/odbcfunc/agi/ami и еще много путей, например, realtime sip и diaplan
облачные и локальные сервера asterisk/freepbx/a2billing/crm с полной техподдержкой. skype: whoim2, sipuri: whoim@asterisk.ru
whoim
 
Сообщений: 766
Зарегистрирован: 26 ноя 2013, 23:25
Откуда: Краснодар

Re: можно ли создать переменнную/массив ексеншенов?

Сообщение alex.preys » 04 май 2017, 18:09

ой вэй, ну так я и оптимизирую диалплан, вот сижу, книжку перечитываю
или вы хотели меня впечатлить знанием умных слов? я впечатлён, kind of success story
alex.preys
 
Сообщений: 26
Зарегистрирован: 24 май 2016, 16:50

Re: можно ли создать переменнную/массив ексеншенов?

Сообщение fecyt » 04 май 2017, 18:24

А почему шаблоны не сократить в одну линию, типа _06[78]. и тд? Ну или сделать realtime базу, agi скрипт и другие умные слова, как предложили выше.
Кстати, Hangup не нужен, если autofallthrough=yes
fecyt
 
Сообщений: 148
Зарегистрирован: 17 янв 2017, 18:51

Re: можно ли создать переменнную/массив ексеншенов?

Сообщение alex.preys » 04 май 2017, 18:35

коды GSM операторов не менятюся настолько часто, ну и их не так много чтобы мускль прикручивать

бывает что 096 КС, 097 мтс, 098 снова КС, т.е. коды не подряд, и никак не сгруппированы, т.е. городить регексп "если вторая цифра 8 то третья 6 или 7, а если вторая 9 то третья 4 или 8" совсем не хочеться

вот да, сижу, читаю про agi и ARRAY
alex.preys
 
Сообщений: 26
Зарегистрирован: 24 май 2016, 16:50

Re: можно ли создать переменнную/массив ексеншенов?

Сообщение whoim » 04 май 2017, 18:37

alex.preys писал(а):или вы хотели меня впечатлить

хотел помочь, но вижу что зря. Обратитесь к вашему системному администратору.
облачные и локальные сервера asterisk/freepbx/a2billing/crm с полной техподдержкой. skype: whoim2, sipuri: whoim@asterisk.ru
whoim
 
Сообщений: 766
Зарегистрирован: 26 ноя 2013, 23:25
Откуда: Краснодар

Re: можно ли создать переменнную/массив ексеншенов?

Сообщение fecyt » 04 май 2017, 18:41

Если не хочется ничего городить, что мешает сделать шаблон вида _X., а для специфичных маршрутов прописать что-то конкретное?
fecyt
 
Сообщений: 148
Зарегистрирован: 17 янв 2017, 18:51

Re: можно ли создать переменнную/массив ексеншенов?

Сообщение ded » 04 май 2017, 18:51

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})
ded
 
Сообщений: 15820
Зарегистрирован: 26 авг 2010, 19:00

Re: можно ли создать переменнную/массив ексеншенов?

Сообщение fecyt » 04 май 2017, 18:53

Можно не городить и AGI, смысл ли есть, если не много префиксов, создайте просто переменную, воткните через запятую туда все префиксы, и пишите что то типа, exten => _X.,1,GotoIf(проверка экстен на существование?exist:notexist)
same => n(exist),Dial(...
same => n,(notexist),Background(...

Затем просто будете добавлять или удалять префиксы, а не вызывать скрипт на другом языке и все в этом роде...
fecyt
 
Сообщений: 148
Зарегистрирован: 17 янв 2017, 18:51

Re: можно ли создать переменнную/массив ексеншенов?

Сообщение alex.preys » 04 май 2017, 18:55

хочется сделать шаблон вида

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

зы:
не то что бы это было сложно, и сервер не так уж и нагружен, но меня лично коробит идея вызывать внешний интерпритатор ради таких пустяков.
alex.preys
 
Сообщений: 26
Зарегистрирован: 24 май 2016, 16:50

След.

Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH