powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите правильную структуру БД (билинг звонков)
16 сообщений из 16, страница 1 из 1
Подскажите правильную структуру БД (билинг звонков)
    #34984881
Newber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте... Подскажите пожалуйста как правильно структурировать базу данных для последующей работы билинга звонков.
Сейчас в одну таблицу пишутся звонки с разных станций.
список полей таблицы
[DT] - дата
,[Durr] - продолжительность
,[inNumTac] - либо входящий номер. или транк эксес код
,[dialN] - номер который набирался
,[callNum] - куда ушел звонок или номер или транк
,[inTrkCode] - номер транка
,[codeDial] - код который использовался для набора (8,9)
,[CodeUsed] -
,[CondCode] -
,[AutCode]
,[PBXServerID] - айдишник станции с которой пришел лог....

для этой таблицы хочется создать зависимость телефонов к группе (напоминает корпоративный пакет, грубо говоря несколько телефонов записано на один контакт)
как правильно писать зависимость? по маске?
или по большему соответствию как это прошито в станции Definity
привязки идет:
поле
минимальная длинна
максимальая длинна
пример
а через дефис айдишник контакта кому приенадлежат номера
5 4 4 - 1
52 4 4 - 2
005 11 25 - 1
0051132103 11 11 - 3
00511321035 11 11 - 1
001 13 25 - 4
1 4 4 - 4
00111321035 13 13 - 2
0011132107 13 13 - 5
12 4 4 - 5

как правильно реализовать такую привязку?
через регулярные выражения? или заводить все номера( что мне кажется не оссобо правельным)

Билинг должен подсчитыватся раз в месяц...
но можно попробовать реализовать и на текущий момент...
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34985492
NewberЗдравствуйте... Подскажите пожалуйста как правильно структурировать базу данных для последующей работы билинга звонков.
Сейчас в одну таблицу пишутся звонки с разных станций.
список полей таблицы
[DT] - дата
,[Durr] - продолжительность
,[inNumTac] - либо входящий номер. или транк эксес код
,[dialN] - номер который набирался
,[callNum] - куда ушел звонок или номер или транк
,[inTrkCode] - номер транка
,[codeDial] - код который использовался для набора (8,9)
,[CodeUsed] -
,[CondCode] -
,[AutCode]
,[PBXServerID] - айдишник станции с которой пришел лог....

для этой таблицы хочется создать зависимость телефонов к группе (напоминает корпоративный пакет, грубо говоря несколько телефонов записано на один контакт)
как правильно писать зависимость? по маске?
или по большему соответствию как это прошито в станции Definity
привязки идет:
поле
минимальная длинна
максимальая длинна
пример
а через дефис айдишник контакта кому приенадлежат номера
5 4 4 - 1
52 4 4 - 2
005 11 25 - 1
0051132103 11 11 - 3
00511321035 11 11 - 1
001 13 25 - 4
1 4 4 - 4
00111321035 13 13 - 2
0011132107 13 13 - 5
12 4 4 - 5

как правильно реализовать такую привязку?
через регулярные выражения? или заводить все номера( что мне кажется не оссобо правельным)

Билинг должен подсчитыватся раз в месяц...
но можно попробовать реализовать и на текущий момент...
Немного работал в телефонной компании, поэтому могу подсказать :)
1. Входящие номера и транки не надо смешивать. Пусть это будут два разных поля. Иногда некоторые операторы отдают один и тот же номер ("сигнальный номер") для разных реальных звонков, но транки в этом случае будут разные...
1а. callNum - это переадресация звонка? Если так, то пусть хранится...
2. Все номера сохраняются "as is", а уже затем, при необходимости, выделяется признак направления / оператора и др.

Немного непонятно, что же Вы имеете в виду под "принадлежностью к группе"?
Если то, что на одного менеджера может быть зарегистрировано два и более номера, то это решается например так:
- телефоны (номер, IDT)
- группы (группа, IDG)
- телефоны группы (IDG, IDT)
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34986218
Newber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СтаниславНемного работал в телефонной компании, поэтому могу подсказать :)
1. Входящие номера и транки не надо смешивать. Пусть это будут два разных поля. Иногда некоторые операторы отдают один и тот же номер ("сигнальный номер") для разных реальных звонков, но транки в этом случае будут разные...
1а. callNum - это переадресация звонка? Если так, то пусть хранится...
2. Все номера сохраняются "as is", а уже затем, при необходимости, выделяется признак направления / оператора и др.

Немного непонятно, что же Вы имеете в виду под "принадлежностью к группе"?
Если то, что на одного менеджера может быть зарегистрировано два и более номера, то это решается например так:
- телефоны (номер, IDT)
- группы (группа, IDG)
- телефоны группы (IDG, IDT)
callNum - это поле вообще загадка :)
но в него пишет или тот же телефон от куда звонят или пустое.. но тогда в колонку inNumTac пишется номер транка... помоему это один из случаев когда это сквозной транк идет
такая структура привязки лучше чем была бы привязка по регулярным выражениям ?
например
5xxx номера принадлежат тому-то
тут просто еще прикол в том что номера 4х значные могут быть....
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34986518
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно в системе есть контракт на который записаны определённые ID комплектов оборудования доступа к сети связи, грубо говоря номера телефонов или IMSI или другие идентификаторы специфичные для конкретного стандарта систем связи.

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

Изначально CDR не ассоциирован ни с каким ЛС в системе. В процессе анализа и тарификации система определяет на какие ЛС отнести начисление за конкретную услугу. Кроме того тарификатор обычно определяет и сохраняет в БД дополнительные аналитические параметры, такие как например принадлежность корпоративному контракту и т.п. Затем биллинг собирает начисления на ЛС и создаёт счёт на оплату услуг связи.

Поскольку анализ CDR довольно длительная процедура, то её обычно проводят по мере поступления данных, так что в системе сразу сохраняются начисления со ссылками на ЛС и контракт.
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34986654
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Newber
Здравствуйте... Подскажите пожалуйста как правильно структурировать базу данных для последующей работы билинга звонков.
Сейчас в одну таблицу пишутся звонки с разных станций.


Как замечание к терминологии, у связистов это называется вызовами, а звонок это когда устройство издаёт при этом звук.
Всё что идёт с CDR файлов заносить в таблицу вызовов, поля уже указаны, это есть исходная информация для вызовов. Для каждого вызова, одна запись в таблице. Далее в другую таблицу заносятся данные о клиентах. У каждого клиента может быть несколько лицевых счетов. У лицевого счета может быть несколько абонентов со своим номером. Абоненты делают вызовы, поэтому должна быть связка с таблицей вызовов. В таблицу вызовов к указанным полям добавляются поля для тарификации вызовов и различной аналитики. Тарификации как правило зависит от типа вызова и направления вызова. Вот ещё как минимум две таблицы. Клиенты будут платить деньги за начисления на л/с, наличными и безналичными, вот ещё таблица платежей. Для безнала должна быть таблица банковских выписок, для кассы, реестры чеков. Каждый месяц будут производится биллинговые начисления на каждый л/с, к нему с расшифровкой биллинговых начислений, ещё две таблицы.
Это примерный минимум, ко всему будут ещё куча всевозможных справочников. Возможно я уж очень размахнулся, но структура скорее всего будет примерно такой.

Удачи.

Удачи
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34986807
Newberнапример
5xxx номера принадлежат тому-то
тут просто еще прикол в том что номера 4х значиные могут быть....
Вот кусочек таблицы...

Это надо узнвать на каждой конкретной станции и под нее настраивать прием CDR.
Например, в моей практике была станция, которая в CDR писала не реальный номер абонента, а номер абонента по порядку; счет велся начиная от какого-то реального базового номера , зафиксированного при настройке станции. При этом файл CDR был *.dbf, номер телефона был 5-значным в 16-ричной кодировке.
Были станции, которые позволяли звонить внутри себя по 3/4 значному номеру, а для выхода на межстанционное соединение абонент должен был нажимать какую-то цифру (1 или 0).
На многих станциях фиксировался полный набранный номер (например, 10 знаков), а абонент реально соединялся только по первым 5 знакам, так как первая цифра номера была не 8...

Мой совет:
надо брать CDR-файлы, брать расшифровку (отчет оператора станции), брать описание файлов CDR для данного типа станции и писать обработчик-конвертер ПОД КАЖДЫЙ ТИП CDR-ФАЙЛОВ . При этом может оказаться, что CDR файлы с разных станций могут обрабатываться одним обработчиком-конвертером...

В общем,
"Эй, птичка, полетели! Там много вкусного..." (с, "Крылья, ноги и хвосты")
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34987271
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Номера вызовов могут быть разной длины это нормально. Для их обработки понадобится таблицы префиксов (8495, 8926, 8985, 810380044...) и направлений (г.Москва, Мегафон, Билайн, Киев...). Обработка префиксов должна на начинаться от самых длинных до самых коротких. И ещё если есть номера абонентов, то и должна быть таблица с номерной ёмкостью.
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34987412
Newber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С...кий Newberнапример
5xxx номера принадлежат тому-то
тут просто еще прикол в том что номера 4х значиные могут быть....
Вот кусочек таблицы...

Это надо узнвать на каждой конкретной станции и под нее настраивать прием CDR.
Например, в моей практике была станция, которая в CDR писала не реальный номер абонента, а номер абонента по порядку; счет велся начиная от какого-то реального базового номера , зафиксированного при настройке станции. При этом файл CDR был *.dbf, номер телефона был 5-значным в 16-ричной кодировке.
Были станции, которые позволяли звонить внутри себя по 3/4 значному номеру, а для выхода на межстанционное соединение абонент должен был нажимать какую-то цифру (1 или 0).
На многих станциях фиксировался полный набранный номер (например, 10 знаков), а абонент реально соединялся только по первым 5 знакам, так как первая цифра номера была не 8...

Мой совет:
надо брать CDR-файлы, брать расшифровку (отчет оператора станции), брать описание файлов CDR для данного типа станции и писать обработчик-конвертер ПОД КАЖДЫЙ ТИП CDR-ФАЙЛОВ . При этом может оказаться, что CDR файлы с разных станций могут обрабатываться одним обработчиком-конвертером...

В общем,
"Эй, птичка, полетели! Там много вкусного..." (с, "Крылья, ноги и хвосты")
4 цифры это extension внутренний телефон
Получается из прочитанных ответов можно предположить что сумму за звонок надо расчитывать сразу?
и по привязке:
все таки расписать 9999 внутренних телефонов
+ все внешние и привязывать по айдишникам к контактному лицу?
или все же можно описывать через какой либо алгоритм(регулярные выражения или метод наибольшего соотвествия) грубо говоря 5% (при длинне 4 цифры) все номера с 5 принадлежат комуто... исключаю конкретно описанные 5204 - мой номер...(я могу платить за свой внутренний и за свой мобильный)
Сейчас логи идут с 5 станций Definity для них парсеры написаны... и все складывается в табличку в таком формате который я запостил выше...
щас буду писать парсер для IPофисов(Avaya) постараюсь написать чтобы логи складывались таким же образом..
Вот только структуры таблиц Контакты,Тарифы,Контакт2Телефон как лучше описать?
тарифы могут быть (Посекундный,поминутный( если больше 6 секунд прошло засчитываем минуту), посекундно со воторой минуты)
Как лучше оформить справочник таких тарифов?
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34987426
Newber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_TomsНомера вызовов могут быть разной длины это нормально. Для их обработки понадобится таблицы префиксов (8495, 8926, 8985, 810380044...) и направлений (г.Москва, Мегафон, Билайн, Киев...). Обработка префиксов должна на начинаться от самых длинных до самых коротких. И ещё если есть номера абонентов, то и должна быть таблица с номерной ёмкостью.
можно подробнее о номерной емкости?
какие поля в этой табличке должны быть?
получается таблички направления уже гдето есть? они ведь стандартны(примерно) для всех?
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34987434
Newber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_Toms Newber
Здравствуйте... Подскажите пожалуйста как правильно структурировать базу данных для последующей работы билинга звонков.
Сейчас в одну таблицу пишутся звонки с разных станций.


Как замечание к терминологии, у связистов это называется вызовами, а звонок это когда устройство издаёт при этом звук.
Всё что идёт с CDR файлов заносить в таблицу вызовов, поля уже указаны, это есть исходная информация для вызовов. Для каждого вызова, одна запись в таблице. Далее в другую таблицу заносятся данные о клиентах. У каждого клиента может быть несколько лицевых счетов. У лицевого счета может быть несколько абонентов со своим номером. Абоненты делают вызовы, поэтому должна быть связка с таблицей вызовов. В таблицу вызовов к указанным полям добавляются поля для тарификации вызовов и различной аналитики. Тарификации как правило зависит от типа вызова и направления вызова. Вот ещё как минимум две таблицы. Клиенты будут платить деньги за начисления на л/с, наличными и безналичными, вот ещё таблица платежей. Для безнала должна быть таблица банковских выписок, для кассы, реестры чеков. Каждый месяц будут производится биллинговые начисления на каждый л/с, к нему с расшифровкой биллинговых начислений, ещё две таблицы.
Это примерный минимум, ко всему будут ещё куча всевозможных справочников. Возможно я уж очень размахнулся, но структура скорее всего будет примерно такой.

Удачи.

Удачи
Сейчас схема работы пока еще без лецевых считов и бугалтерии... а только группа номеров за которых отвечает один человек(будь то офис или контакт)
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34988581
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит создавайте таблицу абонентов и таблицу вызовов проставляете ID абонентов. Будет возможность разбить вызовы по абонентам. Далее вам предстоит сделать тарификацию вызовов, будут видны начисления на абонентов. С тарификацией придётся повозится. Далее л/с, клиенты, платежи и биллинговые начисления за месяц.
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34988622
Newber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть готовые схемы данных? может не самые подробные ?(без банковских и бухгалтерских блоков)
Может какая-либо диограмма?
чтобы сформировать правильную структуру... пока что есть только логи звонков... возможно потом придется добавить колонки и приписать к ним еще что-то.
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34995859
Newber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может подскажите где можно поискать подобные решения, чтобы блоки от них применить к новой базе...
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #34996101
dmt65
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Newberможет подскажите где можно поискать подобные решения, чтобы блоки от них применить к новой базе...
Если это биллинг, то нужно в первую очередь исходить из бизнес логики взаимодействия с клиентом. В простейшем случае набор таблиц выглядит как КЛИЕНТ<-СЧЕТ<-УСЛУГА<-ТАРИФ
Также должны быть ПЛАТЕЖИ->СЧЕТ<-ТАРИФИКАЦИЯ<-ЗВОНКИ. Тарификация - модуль использующий тарифные зоны для классификации типа (входящий, исходящий, транзитный) и направления звонков (код области, город, межгород и тд), выборки принадлежности тел. номера к УСЛУГЕ(СЧЕТУ,КЛИЕНТУ), поиске привязанного к УСЛУГЕ ТАРИФА, и выборки цены на направление и тип в зависимости от ТАРИФа.
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #35071051
Newber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может немного не в тему... но кто как считает время звонка с IPO?
потому как он пишет в лог десятые минуты... выходит что пишет только каждые 6 секнуд...
...
Рейтинг: 0 / 0
Подскажите правильную структуру БД (билинг звонков)
    #35071872
NewberМожет немного не в тему... но кто как считает время звонка с IPO?
потому как он пишет в лог десятые минуты... выходит что пишет только каждые 6 секнуд...
Значит время будет округлено до ближайшего числа секунд (в большую сторону).
Ты ведь не сможешь этот показатель улучшить - это ограничение регистрирующего устройства. Поэтому надо работать с тем, что есть...

Сейчас так же округляют продолжительность звонков по местной связи: от 6 до 30 секунд округляют до 30 секунд, от 31 секунды до 1 минуты округляют до 1 минуты...
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите правильную структуру БД (билинг звонков)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]