Страница 1 из 2

Объединить два добавочных номера

Добавлено: 21 апр 2015, 12:39
Kucherow
Так случилось, что в компании используется два диапазона номеров: ZXX и ZXXX,при звонке на них должны выполняться одинаковые действия и в принципе можно обойтись так:

Код: Выделить всё

exten   =>      _ZXXX,1,Answer()
same    =>      n,Dial(SIP/${EXTEN},60,tT)
same    =>      n,Playtones(congestion)
same    =>      n,Hangup()

exten   =>      _ZXX,   1,Answer()
same    =>      n,Dial(SIP/${EXTEN},60,tT)
same    =>      n,Playtones(congestion)
same    =>      n,Hangup()
Но с ростом функционала крайне не хочется добавлять его в два места(ошибок не избежать). единственным вариантом объединить вижу такой(либо попробовать макросы, конечно):

Код: Выделить всё

exten   =>      _ZXXX,1,Answer()
same    =>      n,Set(DIALTO=${EXTEN})
same    =>      n,Goto(company,1)
exten   =>      _ZXX,1,Answer()
same    =>      n,Set(DIALTO=${EXTEN})
same    =>      n,Goto(company,1)

exten   =>      company,1,NoOp()
same   =>      n,Dial(SIP/${DIALTO},60,tT)
same    =>      n,Playtones(congestion)
same    =>      n,Hangup()
Есть-ли более правильный способ решить данную задачу? Вообще идеалом был-бы шаблон "Один или ноль символов", но к сожалению не увидел такого в *.

Re: Объединить два добавочных номера

Добавлено: 21 апр 2015, 12:54
ded
1) Не надо !
exten => _ZXX, 1,Answer()
exten => _ZXXX,1,Answer()

2) Для одновременного вызова используйте конструкцию
exten => _ZXXX,1,Dial(SIP/${EXTEN}&SIP/${EXTEN:1},60,tT)

Re: Объединить два добавочных номера

Добавлено: 21 апр 2015, 12:59
Kucherow
Вызовы должны быть не одновременными.
Просто есть номера трех- и четырех- значные, но и те и другие должны обрабатываться одинаково.

Re: Объединить два добавочных номера

Добавлено: 21 апр 2015, 13:32
ded
Ох, поставили бы Вы freePBX и не городили бы самодельные конструкции. Все базовые вопросы там решены вполне элегантно. Например Ваш -
каждый экстен заводится обычным образом, и для системы не важно - они трёх значные или четырёх. Все вызовы обрабатываются одинаково.

Re: Объединить два добавочных номера

Добавлено: 21 апр 2015, 15:01
Glukinho
Ну сделайте так:
[macro-action]
exten => s,1,Answer()
same => n,Dial(SIP/${ARG1},60,tT)
same => n,Playtones(congestion)
same => n,Hangup()

...
exten => _ZXXX,1,Macro(action,${EXTEN})
exten => _ZXX,1,Macro(action,${EXTEN})
Если говорить вообще, то это всё через одно место и мешать номера екстеншенов и имена SIP учеток не следует.

Re: Объединить два добавочных номера

Добавлено: 21 апр 2015, 15:40
Kucherow
Glukinho писал(а):Ну сделайте так:
[macro-action]
exten => s,1,Answer()
same => n,Dial(SIP/${ARG1},60,tT)
same => n,Playtones(congestion)
same => n,Hangup()

...
exten => _ZXXX,1,Macro(action,${EXTEN})
exten => _ZXX,1,Macro(action,${EXTEN})
Если говорить вообще, то это всё через одно место и мешать номера екстеншенов и имена SIP учеток не следует.
Ну да, видимо макрос и придется использовать, он выглядит наиболее вменяемым из всех вариантов. а можете развернуто сказать. почему мешать номера экстеншенов и учеток не хорошо?
ded писал(а):Ох, поставили бы Вы freePBX и не городили бы самодельные конструкции. Все базовые вопросы там решены вполне элегантно. Например Ваш -
каждый экстен заводится обычным образом, и для системы не важно - они трёх значные или четырёх. Все вызовы обрабатываются одинаково.
Используется доб. номер s, а потом в зависимости от номера назначения выбирается вариант обработки?

Re: Объединить два добавочных номера

Добавлено: 21 апр 2015, 17:00
Glukinho
Я уже вот здесь излагал: http://asterisk-support.ru/question/142 ... kak/#17902

Еще одна причина - при взломе подобрать пару "буквенный логин + пароль" намного сложнее, чем "цифровой логин + пароль", особенно принимая во внимание, что часто делают пароли, совпадающие с SIP учетками (100/100 и так далее).
А вот подобрать aivanov-office с паролем h29sj2n уже близко к невозможному.

Re: Объединить два добавочных номера

Добавлено: 21 апр 2015, 17:13
Kucherow
Спасибо. Насчет написанного по ссылке подумаю.

Re: Объединить два добавочных номера

Добавлено: 21 апр 2015, 17:18
ded
Kucherow писал(а):
ded писал(а):Ох, поставили бы Вы freePBX и не городили бы самодельные конструкции. Все базовые вопросы там решены вполне элегантно. Например Ваш -
каждый экстен заводится обычным образом, и для системы не важно - они трёх значные или четырёх. Все вызовы обрабатываются одинаково.
Используется доб. номер s, а потом в зависимости от номера назначения выбирается вариант обработки?
Нет.
доб. номер s - это специальная конструкция для макросов, в которые передаются из диал плана параметры вызова, и после обработки макросом выполнение диалплана возвращается в ту же точку диалплана, откуда был вызов макроса. В последних версиях Астериск используются конструкции GoSub, которые несколько удобнее макросов, но макросы тоже поддерживаются.
Я очень буду советовать читать книгу про Будущее телефонии, чтобы избежать шаблонных 1000 раз заданных вопросов и объяснений.

Re: Объединить два добавочных номера

Добавлено: 21 апр 2015, 17:23
Kucherow
Вообще я интересовался как оно в FreePBX сделано, и предположил насчет s.

По поводу Будущего телефонии - читал и все настраивал исходя из нее.