Страница 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
				Коллеги, спасибо за подсказки!