Часть префикса и Диапазон префиксов

Редактор узла и узел Часть префикса в тарифе выглядят так:

images/download/attachments/43385094/x_249.gif

images/download/attachments/43385094/x_250.gif

либо так для Диапазона префиксов:

images/download/attachments/43385094/x_251.gif

images/download/attachments/43385094/x_252.gif

Отличие двух узлов - в способе задания маски номера.

В Части префикса задается REGEXP-выражение, которое должно совпасть с начальной частью "остатка" номера.

В Диапазоне префиксов задается выражение вида <общий префикс>|<диапазоны>. Например в указанный выше диапазон можно переписать в виде: 34|72-73, где 34 будет являться общим префиксом. Общий префикс может быть и не указан. Если он указан, то как бы подразумевается для всех диапазонов после него. Начальная часть остатка номеров должна попасть в один из указанных диапазонов. При этом все диапазоны префиксов в узле должны быть одной длины.

Оба узела работают с параметром "номер", переданным в тарифном запросе. При этом разбор номера идет по частям, начиная с начальных символов. Каждый узел, в который попадает телефон, сравнивает начало номера с шаблоном в узле.

Если совпадение произошло, совпавшее начало номера как бы "откусывается" и узел передает остаток номера на обработку внутрь себя, где процесс "откусывания" продолжается до нахождения цены звонка и направления. После совпадения части префикса с номером, в следующих, соседних в этом же предке, узлах запрос будет пропущен.

У каждого узла может быть установлено направление и зона. Если в совпавшем узле указано направление, либо зона, они подставляются в ответ тарифного запроса.

Рассмотрим для примера, как происходит разбор телефона 73472555555 в указанном ниже тарифе. В нем используется комбинация этих двух узлов, т.к. они являются взаимозаменяемыми.

images/download/attachments/43385094/x_155.gif

1) Ветка 7 Россия - начало совпадает с 7 => 7 отбрасывается и далее передается 3472555555

2) аналогично ветки 3 и 4

3) в ветке 72 определяется направление звонка

4) в ветке Минута исходящего - цена минуты разговора.

Ветки 3 и 4 просто прописывают данные в проходящий через них тарифный запрос.

После выхода из ветки 7 звонок будет помечен как обработанный после прохождения его через все дочерние узлы ветки 7. Все ветки после 7 не пропустят запрос внутрь себя.

Таким образом достигается высокая эффективность обработки запросов.

Рассмотрим еще один пример использования узлов:

images/download/attachments/43385094/x_155.gif

В приведенном выше примере префиксы 73472-73474 и 73476 будут отнесены к Уфе, а префиксы 7351-7353 к Челябинску.