Страница 1 из 2
Проверка группы номеров по CallerID(num)
Добавлено: 28 сен 2015, 17:45
serg
Уважаемые форумчане, подскажите пжл, как организовать проверку callerid(num) сразу несколько номеров?
Не плодить что-то типа:
exten => X.,1,GotoIf($["${CALLERID(num)}" = "333"]?3:2);
exten => X.,2,GotoIf($["${CALLERID(num)}" = "334"]?3:4);
exten => X.,3,Dial(SIP/400,20);
exten => X.,4,Hangup();
А например так:
exten => X.,1,GotoIf($["${CALLERID(num)}" = "333" & "334"]?2:3);
exten => X.,2,Dial(SIP/400,20);
exten => X.,3,Hangup();
или
exten => X.,1,GotoIf($["${CALLERID(num)}" = "333"]&$["${CALLERID(num)}" = "334"]?2:3);
exten => X.,2,Dial(SIP/400,20);
exten => X.,3,Hangup();
Возможно ли так сделать? Есть ли другая проверка?
Не хочется писать огромный диалплан.
Нужно для проверки большого кол-ва номеров по CallerID(num) прилетающих с Авая в астер.
Re: Проверка группы номеров по CallerID(num)
Добавлено: 28 сен 2015, 18:10
ded
Засунуть 333 и 334 ы один контекст, а 400 и ещё какие - в другой.
В каждом контексте написать правила. Для одних в этом котексте можно будет звонить
exten => _ZXX,1,Dial(SIP/${EXTEN})
для других в другом - никак.
Вы бы книжку почитали, там всё описано с примерами и объяснениями.
Re: Проверка группы номеров по CallerID(num)
Добавлено: 28 сен 2015, 19:20
Pechen
есть regex
а в примере вместо И надо ИЛИ применить, но перед этим разнести в два выражения.
Re: Проверка группы номеров по CallerID(num)
Добавлено: 28 сен 2015, 19:40
Glukinho
Не хочется писать огромный диалплан.
Нужно для проверки большого кол-ва номеров по CallerID(num) прилетающих с Авая в астер.
Взаимоисключающие условия. Диалплан все равно будет огромный (в силу большого количества номеров) и неуправляемый (в силу сложного и громоздкого синтаксиса extensions.conf).
Вас спасет база данных и func_odbc.
Re: Проверка группы номеров по CallerID(num)
Добавлено: 28 сен 2015, 21:15
ded
Glukinho писал(а):Взаимоисключающие условия. Диалплан все равно будет огромный (в силу большого количества номеров) и неуправляемый (в силу сложного и громоздкого синтаксиса extensions.conf)
Нет. Диалплан будет из двух контекстов, в каждом по три строчки:
инклюд на общее правило для звонков в другую группу
звонить на внутренний в своей группе
звонить в мир
Re: Проверка группы номеров по CallerID(num)
Добавлено: 29 сен 2015, 07:52
virus_net
Если номеров много, то можно (и лучше (ИМХО)) проверять CallerID в скрипте:
Код: Выделить всё
exten => _X.,1,AGI(CallerID.php)
exten => _X.,n(dial),Dial(SIP/400,20)
exten => _X.,n(exit),Hangup()
который на выходе или сетит переменную:
или сразу переходит к
priority:
Re: Проверка группы номеров по CallerID(num)
Добавлено: 01 окт 2015, 18:18
serg
Спасибо!!!
Re: Проверка группы номеров по CallerID(num)
Добавлено: 01 окт 2015, 19:16
Zavr2008
Чем плох вариант?
Код: Выделить всё
exten => X./333,1,Dial(SIP/400,20);
exten => X./334,1,Hangup();
Re: Проверка группы номеров по CallerID(num)
Добавлено: 02 окт 2015, 07:34
virus_net
Видимо тем, что номеров там явно не два.
Re: Проверка группы номеров по CallerID(num)
Добавлено: 02 окт 2015, 15:35
Zavr2008
парсер по табличке соотвествий сделать не так и сложно. Если это - статично, проще генерить диалплан и усё.