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

Нормализация номеров

Добавлено: 03 июн 2015, 10:48
Zebar
Коллеги, добрый день!

У меня есть несколько входящих транков.
На одном из них CallerId приходит как +7XXXXXXXXXX, на другом как XXXXXXXXXX.
Пытаюсь их все нормализовать - привести к единому виду 8XXXXXXXXXX.
Для +7... в extensions_custom прописано
exten => _X.,n,ExecIf($["${CALLERID(num):0:2}" = "+7"]?Set(CALLERID(num)=8${CALLERID(num):2})) ; Отрезаем +7 и приклеиваем 8

А как можно проверить длину номера, чтобы к нему приклеить 8?

Re: Нормализация номеров

Добавлено: 03 июн 2015, 10:58
Vlad1983

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

same => n,Execif($[${LEN(${CALLERID(number)})}=11 & "${CALLERID(number):0:1}"="7"]?Set(CALLERID(number)=8${CALLERID(number):1}))

Re: Нормализация номеров

Добавлено: 03 июн 2015, 11:01
ded
Если у Вас freePBX, то это делается средствами модуля Inbound routes в вэб интерфейсе. Логика отрезания и подставления там расписана всплывающими подсказками.

Re: Нормализация номеров

Добавлено: 03 июн 2015, 12:59
Zavr2008
Пытаюсь их все нормализовать - привести к единому виду 8XXXXXXXXXX.
Прикольно получится, когда позвонят например из китая)

Re: Нормализация номеров

Добавлено: 03 июн 2015, 14:32
ded
Правило преобразования
"если прибегает звонок с номера, начинающегося на +7, то отрезать +7 и подставить вместо них впереди 8"
никак не затрагивает звонки из Китая.

Re: Нормализация номеров

Добавлено: 03 июн 2015, 15:54
Zavr2008
ded, см:
На одном из них CallerId приходит как +7XXXXXXXXXX, на другом как XXXXXXXXXX.
Я об этом.

Просто IMHO нормализовывать удобнее к международному формату, он для этого и придумывался..
Ну а правило в диалплане добавить для 8XXXXXXXXXX не сложно)

Re: Нормализация номеров

Добавлено: 03 июн 2015, 17:33
ded
на другом как XXXXXXXXXX
- это неправда.
11-ти знак для РФ - это очень точная формула, и она не может начинаться с Х (любая цифра от 0 до 9), она только в формате 8XXXXXXXXX может приходить.

Re: Нормализация номеров

Добавлено: 17 июн 2015, 14:41
Zebar
ded писал(а):Если у Вас freePBX, то это делается средствами модуля Inbound routes в вэб интерфейсе. Логика отрезания и подставления там расписана всплывающими подсказками.
А можете подсказать, в каком хоть поле отрезается и подставляется?
ded писал(а):- это неправда.
11-ти знак для РФ - это очень точная формула, и она не может начинаться с Х (любая цифра от 0 до 9), она только в формате 8XXXXXXXXX может приходить.
Тем не менее, приходит 10 цифр.

Re: Нормализация номеров

Добавлено: 17 июн 2015, 15:36
ded
1) Установите модуль Set CallerID через Module admin и направьте входящие маршруты на созанные там шаблоны

2) 10 цифр Caller ID тоже не могут начинаться с нуля.

Re: Нормализация номеров

Добавлено: 17 июн 2015, 16:49
ded
А как можно проверить длину номера, чтобы к нему приклеить 8?
3) Для +7... в extensions_custom прописать
exten => _+7ZXXXXXXXXX,1,Set(CALLERID(num)=8${CALLERID(num):2})) ; Отрезаем +7 и приклеиваем 8
exten => _8ZXXXXXXXXX,1,NoOp(CallerID is ${CALLERID(all)}) ; 11-ти знак с 8-ки, ничего не делаем
exten => _ZXXXXXXXXX,1,Set(CALLERID(num)=8${CALLERID(num)})) ; 10-ти знак - приклеиваем 8