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

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

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

Zebar
Сообщения: 51
Зарегистрирован: 07 сен 2010, 08:54

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

Сообщение 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?
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

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

Сообщение Vlad1983 »

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

same => n,Execif($[${LEN(${CALLERID(number)})}=11 & "${CALLERID(number):0:1}"="7"]?Set(CALLERID(number)=8${CALLERID(number):1}))
ЛС: @rostel
ded
Сообщения: 15689
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Если у Вас freePBX, то это делается средствами модуля Inbound routes в вэб интерфейсе. Логика отрезания и подставления там расписана всплывающими подсказками.
Аватара пользователя
Zavr2008
Сообщения: 2250
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

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

Сообщение Zavr2008 »

Пытаюсь их все нормализовать - привести к единому виду 8XXXXXXXXXX.
Прикольно получится, когда позвонят например из китая)
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1, настройка Asterisk/FreePBX, подключение CRM
ded
Сообщения: 15689
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Правило преобразования
"если прибегает звонок с номера, начинающегося на +7, то отрезать +7 и подставить вместо них впереди 8"
никак не затрагивает звонки из Китая.
Аватара пользователя
Zavr2008
Сообщения: 2250
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

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

Сообщение Zavr2008 »

ded, см:
На одном из них CallerId приходит как +7XXXXXXXXXX, на другом как XXXXXXXXXX.
Я об этом.

Просто IMHO нормализовывать удобнее к международному формату, он для этого и придумывался..
Ну а правило в диалплане добавить для 8XXXXXXXXXX не сложно)
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1, настройка Asterisk/FreePBX, подключение CRM
ded
Сообщения: 15689
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

на другом как XXXXXXXXXX
- это неправда.
11-ти знак для РФ - это очень точная формула, и она не может начинаться с Х (любая цифра от 0 до 9), она только в формате 8XXXXXXXXX может приходить.
Zebar
Сообщения: 51
Зарегистрирован: 07 сен 2010, 08:54

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

Сообщение Zebar »

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

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

Сообщение ded »

1) Установите модуль Set CallerID через Module admin и направьте входящие маршруты на созанные там шаблоны

2) 10 цифр Caller ID тоже не могут начинаться с нуля.
ded
Сообщения: 15689
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение 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
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH