VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

Проблемы Asterisk без вэб-оболочек и их решения

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

ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Скорее всего - нет.
В приёмном контексте [from-pstn-special] обработка по DID (номеру назначения) с возможной фильтрацией по Caller ID.
В нём ещё не известно на внутренний какой номер побежит этот вызов: на 19XX или на 65XX.
Поэтому условие
destination number = _65XX
я там написал формально. Это требует, конечно, вникания в ваши сценарии.
asterisker
Сообщения: 65
Зарегистрирован: 18 июл 2016, 11:40

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

Сообщение 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()


не знаю зачем, вот правда. читайте книгу
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

У ТС нормализация (приведение к единому виду) входящих вызовов - контекст [from-pstn-special]
А вы приводите макрос для изменения Caller ID исходящих (в зависимости от транка).
asterisker
Сообщения: 65
Зарегистрирован: 18 июл 2016, 11:40

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

Сообщение asterisker »

а вот и нет, то было завуалированное предложение почитать книгу.
nechushki91
Сообщения: 45
Зарегистрирован: 13 ноя 2017, 11:37

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

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

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

Сообщение ded »

Логическое выражение
${CALLERID(num)} = 65XX будет всегда false
потому что левая часть принимает значения 6501, 6502, и это никогда не равно 65ХХ.
Шаблоны в логическом выражении не допускаются. Хотите задать проверку - является ли номер из диапазона 65ХХ? можно сделать через арифметику, типа
("${CALLERID(num)}-6500> 0")?
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

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

Сообщение virus_net »

Можно использовать функцию Regexp и в ней описать шаблон.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
nechushki91
Сообщения: 45
Зарегистрирован: 13 ноя 2017, 11:37

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

Сообщение nechushki91 »

Коллеги, спасибо за подсказки!
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH