Преобразование номеров — различия между версиями
Строка 3: | Строка 3: | ||
Возможность преобразования номеров была добавлена в то время, когда по каким-то причинам устройство SpRecord передавало в [[модуль SpRecord]] номера, которые начинались с {{code|07}} или {{code|+7}} вместо {{code|8}}. | Возможность преобразования номеров была добавлена в то время, когда по каким-то причинам устройство SpRecord передавало в [[модуль SpRecord]] номера, которые начинались с {{code|07}} или {{code|+7}} вместо {{code|8}}. | ||
− | Функция нацелена на то, чтобы привести любой номер телефона к тому виду, который принят за стандарт и используется внутри | + | Функция нацелена на то, чтобы привести любой номер телефона к тому виду, который принят за стандарт и используется внутри базы данных. |
Первым решением было использование [http://ru.wikipedia.org/wiki/Regex регулярных выражений], но такой подход мог показаться слишком сложным и существенно замедлить работу программы, поэтому было принято решение ввести язык с примитивным синтаксисом. | Первым решением было использование [http://ru.wikipedia.org/wiki/Regex регулярных выражений], но такой подход мог показаться слишком сложным и существенно замедлить работу программы, поэтому было принято решение ввести язык с примитивным синтаксисом. | ||
Ниже описаны его правила. | Ниже описаны его правила. |
Версия 14:05, 12 апреля 2017
Преобразование номеров — это специальная функция Такси-Мастер, позволяющая изменять номера телефонов на входе (при приеме входящих звонков) и на выходе. Функция доступна только в том случае, если установлен хотя бы один модуль связи.
Возможность преобразования номеров была добавлена в то время, когда по каким-то причинам устройство SpRecord передавало в модуль SpRecord номера, которые начинались с 07 или +7 вместо 8 . Функция нацелена на то, чтобы привести любой номер телефона к тому виду, который принят за стандарт и используется внутри базы данных. Первым решением было использование регулярных выражений, но такой подход мог показаться слишком сложным и существенно замедлить работу программы, поэтому было принято решение ввести язык с примитивным синтаксисом. Ниже описаны его правила.
Содержание
Логическая модель
Правила записываются в следующем виде:
N;S1;S2
Здесь:
- N — количество знаков в номере телефона. Если в номере поступившего телефона знаков меньше или больше N, он не обрабатывается настоящим правилом.
- S1 — это подстрока номера телефона, по наличию которой программа принимает решение об обработке телефона. Если в левой части номера телефона встречается такая подстрока, она обрезается.
- S2 — строка, которая подставляется к оставшейся части.
Например, если есть правило
12;07;8 , то при поступлении номера, в котором 12 знаков, и первые знаки — 07 , от него отрежутся эти знаки, и к левой части присоединится 8 : 079090123456 → 89090123456.Перед
N может стоять знак - (минус), что означает, что нужно подставить S2 не слева, а справа. То есть, например, если есть правило -12;;# , то к номеру из 12 цифр справа подставится символ решетки: +79090123456 → +79090123456#.В некоторых случаях при подстановке к концу номера символа
# набор через устройства SpRecord происходит быстрее. Нет никакого обоснования подобной работе SpRecord, поэтому подстановка решетки может ускорить набор номера, а может не ускорить.Частный случай правила: второй параметр отсутствует
Правило может быть записано так:
N;;S2
В этом случае подстрока
S1 — пустая, то есть, фактически, от номера телефона не будет отрезано ничего, однако, при этом к нему будет подставлена подстрока S2 . Правило сработает в случае, когда в номере телефона N цифр.Например, если есть правило
7;;8495 , то к входящему номеру, состоящему из 7 цифр, будет подставлен код Москвы: 7123456 → 84957123456.Частный случай правила: третий параметр отсутствует
Правило может быть записано так:
N;S1;
В этом случае, если брать за пример предыдущий, от поступившего номера телефона будет отрезана подстрока
S1 , но при этом ничего не добавится слева, поскольку S2 в данном случае — пустая строка. Правило сработает в случае, когда в номере телефона N цифр, и первые цифры совпадают с цифрами, указанными в S1 .Например, если есть правило
11;8495; , то от входящего номера, который начинается на 8495 и имеет 11 цифр, будет отрезан код Москвы (8495): 84957123456 → 7123456.Ссылки
- Фильтр сотовых телефонов — если вам нужно маршрутизировать звонки (например, сотовые — через одну линию, городские — через другую).
- Общие настройки преобразования номеров находятся в ветке Линии (Файл → Настройки → Линии → Общие ).
- Настройки преобразования номеров для одной линии SpRecord находятся в ветке, соответствующей этой линии, в настройках Такси-Мастер (Файл → Настройки → SpRecord ).