|
|
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте... Подскажите пожалуйста как правильно структурировать базу данных для последующей работы билинга звонков. Сейчас в одну таблицу пишутся звонки с разных станций. список полей таблицы [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 как правильно реализовать такую привязку? через регулярные выражения? или заводить все номера( что мне кажется не оссобо правельным) Билинг должен подсчитыватся раз в месяц... но можно попробовать реализовать и на текущий момент... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2007, 13:22 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2007, 15:47 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
СтаниславНемного работал в телефонной компании, поэтому могу подсказать :) 1. Входящие номера и транки не надо смешивать. Пусть это будут два разных поля. Иногда некоторые операторы отдают один и тот же номер ("сигнальный номер") для разных реальных звонков, но транки в этом случае будут разные... 1а. callNum - это переадресация звонка? Если так, то пусть хранится... 2. Все номера сохраняются "as is", а уже затем, при необходимости, выделяется признак направления / оператора и др. Немного непонятно, что же Вы имеете в виду под "принадлежностью к группе"? Если то, что на одного менеджера может быть зарегистрировано два и более номера, то это решается например так: - телефоны (номер, IDT) - группы (группа, IDG) - телефоны группы (IDG, IDT) callNum - это поле вообще загадка :) но в него пишет или тот же телефон от куда звонят или пустое.. но тогда в колонку inNumTac пишется номер транка... помоему это один из случаев когда это сквозной транк идет такая структура привязки лучше чем была бы привязка по регулярным выражениям ? например 5xxx номера принадлежат тому-то тут просто еще прикол в том что номера 4х значные могут быть.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2007, 19:09 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
Обычно в системе есть контракт на который записаны определённые ID комплектов оборудования доступа к сети связи, грубо говоря номера телефонов или IMSI или другие идентификаторы специфичные для конкретного стандарта систем связи. Под понтрактом заводят один или более лицевых счетов для учёта начислений и платежей. Изначально CDR не ассоциирован ни с каким ЛС в системе. В процессе анализа и тарификации система определяет на какие ЛС отнести начисление за конкретную услугу. Кроме того тарификатор обычно определяет и сохраняет в БД дополнительные аналитические параметры, такие как например принадлежность корпоративному контракту и т.п. Затем биллинг собирает начисления на ЛС и создаёт счёт на оплату услуг связи. Поскольку анализ CDR довольно длительная процедура, то её обычно проводят по мере поступления данных, так что в системе сразу сохраняются начисления со ссылками на ЛС и контракт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2007, 22:04 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
Newber Здравствуйте... Подскажите пожалуйста как правильно структурировать базу данных для последующей работы билинга звонков. Сейчас в одну таблицу пишутся звонки с разных станций. Как замечание к терминологии, у связистов это называется вызовами, а звонок это когда устройство издаёт при этом звук. Всё что идёт с CDR файлов заносить в таблицу вызовов, поля уже указаны, это есть исходная информация для вызовов. Для каждого вызова, одна запись в таблице. Далее в другую таблицу заносятся данные о клиентах. У каждого клиента может быть несколько лицевых счетов. У лицевого счета может быть несколько абонентов со своим номером. Абоненты делают вызовы, поэтому должна быть связка с таблицей вызовов. В таблицу вызовов к указанным полям добавляются поля для тарификации вызовов и различной аналитики. Тарификации как правило зависит от типа вызова и направления вызова. Вот ещё как минимум две таблицы. Клиенты будут платить деньги за начисления на л/с, наличными и безналичными, вот ещё таблица платежей. Для безнала должна быть таблица банковских выписок, для кассы, реестры чеков. Каждый месяц будут производится биллинговые начисления на каждый л/с, к нему с расшифровкой биллинговых начислений, ещё две таблицы. Это примерный минимум, ко всему будут ещё куча всевозможных справочников. Возможно я уж очень размахнулся, но структура скорее всего будет примерно такой. Удачи. Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 00:14 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
Newberнапример 5xxx номера принадлежат тому-то тут просто еще прикол в том что номера 4х значиные могут быть.... Вот кусочек таблицы... Это надо узнвать на каждой конкретной станции и под нее настраивать прием CDR. Например, в моей практике была станция, которая в CDR писала не реальный номер абонента, а номер абонента по порядку; счет велся начиная от какого-то реального базового номера , зафиксированного при настройке станции. При этом файл CDR был *.dbf, номер телефона был 5-значным в 16-ричной кодировке. Были станции, которые позволяли звонить внутри себя по 3/4 значному номеру, а для выхода на межстанционное соединение абонент должен был нажимать какую-то цифру (1 или 0). На многих станциях фиксировался полный набранный номер (например, 10 знаков), а абонент реально соединялся только по первым 5 знакам, так как первая цифра номера была не 8... Мой совет: надо брать CDR-файлы, брать расшифровку (отчет оператора станции), брать описание файлов CDR для данного типа станции и писать обработчик-конвертер ПОД КАЖДЫЙ ТИП CDR-ФАЙЛОВ . При этом может оказаться, что CDR файлы с разных станций могут обрабатываться одним обработчиком-конвертером... В общем, "Эй, птичка, полетели! Там много вкусного..." (с, "Крылья, ноги и хвосты") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 08:10 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
Номера вызовов могут быть разной длины это нормально. Для их обработки понадобится таблицы префиксов (8495, 8926, 8985, 810380044...) и направлений (г.Москва, Мегафон, Билайн, Киев...). Обработка префиксов должна на начинаться от самых длинных до самых коротких. И ещё если есть номера абонентов, то и должна быть таблица с номерной ёмкостью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 10:58 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
Станислав С...кий 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 секунд прошло засчитываем минуту), посекундно со воторой минуты) Как лучше оформить справочник таких тарифов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 11:26 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
Alex_TomsНомера вызовов могут быть разной длины это нормально. Для их обработки понадобится таблицы префиксов (8495, 8926, 8985, 810380044...) и направлений (г.Москва, Мегафон, Билайн, Киев...). Обработка префиксов должна на начинаться от самых длинных до самых коротких. И ещё если есть номера абонентов, то и должна быть таблица с номерной ёмкостью. можно подробнее о номерной емкости? какие поля в этой табличке должны быть? получается таблички направления уже гдето есть? они ведь стандартны(примерно) для всех? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 11:29 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
Alex_Toms Newber Здравствуйте... Подскажите пожалуйста как правильно структурировать базу данных для последующей работы билинга звонков. Сейчас в одну таблицу пишутся звонки с разных станций. Как замечание к терминологии, у связистов это называется вызовами, а звонок это когда устройство издаёт при этом звук. Всё что идёт с CDR файлов заносить в таблицу вызовов, поля уже указаны, это есть исходная информация для вызовов. Для каждого вызова, одна запись в таблице. Далее в другую таблицу заносятся данные о клиентах. У каждого клиента может быть несколько лицевых счетов. У лицевого счета может быть несколько абонентов со своим номером. Абоненты делают вызовы, поэтому должна быть связка с таблицей вызовов. В таблицу вызовов к указанным полям добавляются поля для тарификации вызовов и различной аналитики. Тарификации как правило зависит от типа вызова и направления вызова. Вот ещё как минимум две таблицы. Клиенты будут платить деньги за начисления на л/с, наличными и безналичными, вот ещё таблица платежей. Для безнала должна быть таблица банковских выписок, для кассы, реестры чеков. Каждый месяц будут производится биллинговые начисления на каждый л/с, к нему с расшифровкой биллинговых начислений, ещё две таблицы. Это примерный минимум, ко всему будут ещё куча всевозможных справочников. Возможно я уж очень размахнулся, но структура скорее всего будет примерно такой. Удачи. Удачи Сейчас схема работы пока еще без лецевых считов и бугалтерии... а только группа номеров за которых отвечает один человек(будь то офис или контакт) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 11:31 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
Значит создавайте таблицу абонентов и таблицу вызовов проставляете ID абонентов. Будет возможность разбить вызовы по абонентам. Далее вам предстоит сделать тарификацию вызовов, будут видны начисления на абонентов. С тарификацией придётся повозится. Далее л/с, клиенты, платежи и биллинговые начисления за месяц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 15:28 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
есть готовые схемы данных? может не самые подробные ?(без банковских и бухгалтерских блоков) Может какая-либо диограмма? чтобы сформировать правильную структуру... пока что есть только логи звонков... возможно потом придется добавить колонки и приписать к ним еще что-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 15:37 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
может подскажите где можно поискать подобные решения, чтобы блоки от них применить к новой базе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 14:48 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
Newberможет подскажите где можно поискать подобные решения, чтобы блоки от них применить к новой базе... Если это биллинг, то нужно в первую очередь исходить из бизнес логики взаимодействия с клиентом. В простейшем случае набор таблиц выглядит как КЛИЕНТ<-СЧЕТ<-УСЛУГА<-ТАРИФ Также должны быть ПЛАТЕЖИ->СЧЕТ<-ТАРИФИКАЦИЯ<-ЗВОНКИ. Тарификация - модуль использующий тарифные зоны для классификации типа (входящий, исходящий, транзитный) и направления звонков (код области, город, межгород и тд), выборки принадлежности тел. номера к УСЛУГЕ(СЧЕТУ,КЛИЕНТУ), поиске привязанного к УСЛУГЕ ТАРИФА, и выборки цены на направление и тип в зависимости от ТАРИФа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 20:58 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
Может немного не в тему... но кто как считает время звонка с IPO? потому как он пишет в лог десятые минуты... выходит что пишет только каждые 6 секнуд... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 12:31 |
|
||
|
Подскажите правильную структуру БД (билинг звонков)
|
|||
|---|---|---|---|
|
#18+
NewberМожет немного не в тему... но кто как считает время звонка с IPO? потому как он пишет в лог десятые минуты... выходит что пишет только каждые 6 секнуд... Значит время будет округлено до ближайшего числа секунд (в большую сторону). Ты ведь не сможешь этот показатель улучшить - это ограничение регистрирующего устройства. Поэтому надо работать с тем, что есть... Сейчас так же округляют продолжительность звонков по местной связи: от 6 до 30 секунд округляют до 30 секунд, от 31 секунды до 1 минуты округляют до 1 минуты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 15:46 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34984881&tid=1544083]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 452ms |

| 0 / 0 |
