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

Re: Нормализация CallerID между транками

Добавлено: 05 дек 2018, 14:50
ded
Скорее всего - нет.
В приёмном контексте [from-pstn-special] обработка по DID (номеру назначения) с возможной фильтрацией по Caller ID.
В нём ещё не известно на внутренний какой номер побежит этот вызов: на 19XX или на 65XX.
Поэтому условие
destination number = _65XX
я там написал формально. Это требует, конечно, вникания в ваши сценарии.

Re: Нормализация CallerID между транками

Добавлено: 05 дек 2018, 16:51
asterisker
а можно например через макро:

[гдетотам]
exten _X.,1,Macro(addprefcheck,${EXTEN})
.....
[macro-addprefcheck]

exten => s,1,ExecifTime(00:00-23:59,*,*,*?GotoIF($["${LEN(${ARG1})}" = "4" ]?check))
..........
same => n(check),ExecIf($["${ARG1:0:1}" = "6" & "${ARG1:1:1}" > "4" & "${ARG1:1:1}" < "6"]?letitgo:deny)
..........
same => n(letitgo),Dial(SIP/TRUNK/7${ARG1})
.........
same => n(deny),Hangup()


не знаю зачем, вот правда. читайте книгу

Re: Нормализация CallerID между транками

Добавлено: 05 дек 2018, 16:54
ded
У ТС нормализация (приведение к единому виду) входящих вызовов - контекст [from-pstn-special]
А вы приводите макрос для изменения Caller ID исходящих (в зависимости от транка).

Re: Нормализация CallerID между транками

Добавлено: 06 дек 2018, 09:16
asterisker
а вот и нет, то было завуалированное предложение почитать книгу.

Re: Нормализация CallerID между транками

Добавлено: 12 дек 2018, 14:22
nechushki91
Ребят, подскажите, где мог ошибиться? При таком плане семерка не подставляется к номерам из пула 65XX. А если вот написать конкретный номер, например {CALLERID(num)} = 6500, то все работает

exten => _X.,1,ExecIf($[ ${CALLERID(num)} = 65XX]?Set(CALLERID(num)=7${CALLERID(num)}))
exten => _X.,n,Goto(from-trunk,${EXTEN},1)

Re: Нормализация CallerID между транками

Добавлено: 12 дек 2018, 17:20
ded
Логическое выражение
${CALLERID(num)} = 65XX будет всегда false
потому что левая часть принимает значения 6501, 6502, и это никогда не равно 65ХХ.
Шаблоны в логическом выражении не допускаются. Хотите задать проверку - является ли номер из диапазона 65ХХ? можно сделать через арифметику, типа
("${CALLERID(num)}-6500> 0")?

Re: Нормализация CallerID между транками

Добавлено: 13 дек 2018, 07:15
virus_net
Можно использовать функцию Regexp и в ней описать шаблон.

Re: Нормализация CallerID между транками

Добавлено: 13 дек 2018, 09:19
nechushki91
Коллеги, спасибо за подсказки!