Столкнулся со странным поведением биллинга при определении телефонных направлений. После загрузки телефонного трафика имеем такую картину:
По каким-то причинам телефон 792209... определили в "Гамбию моб", хотя в телефонных направлениях "Гамбия моб." имеет префикс ^2209. При этом в направлениях есть также префикс ^79 для российских мобильных.
Понятно, что в приведенном номере есть подстрока 2209, но регулярное выражение как бы должно матчиться с начала строки. И это не единственный пример. В чем может быть проблема?
В общем выяснилось, что описанное мной поведение в 006 не наблюдается. Там направления, похоже, определяются верно (по крайней мере с моими регекспами). А вот с 007-RC2 косяк.
Точно могу сказать, что способ определения направления в 006 и 007 один и тот же. Код который за это отвечает не менялся. Для разбора регулярных выражений используется библиотечная функция regex (см. man 3 regex и man 7 regex).
Если проблема действительно есть, пишите багрепорт - будем смотреть что не так. Не забудьте предоставить лог-файл и дамп базы данных (можно без информации о списаниях).
На досуге еще поэкспериментирую, конечно. Неизменность кода в одном месте, мне думается, не гарантия идентичности поведения, так как ошибка может наводиться в другом месте.
Багрепорт полноценный пока не рожу, но скажу в общих словах, что делал: поставил версию 006 рядом с 007-rc2, конфиги взял от 007-rc2. Базу данных не сносил, т.е. 006 работало с базой от 007-rc2. Зачистил в базе старую информацию о телефонном трафике. Запустил ядро и залил данные от телефонном трафике через utm5_unif. Всё срослось.