Базы данных Октелл

Сервер Октелл использует три базы данных. Разделение не формальное: у каждой своя роль, свой характер роста и свои последствия при обслуживании.

БазаЧто хранитРастёт ли
oktell Оперативную статистику и статистику АТС — журналы коммутаций, конференций, пропущенных и неудачных звонков, состояний пользователей Да, это основной источник разрастания
oktell_settings Настройки комплекса, используемые при загрузке сервера: пользователи, роли, карта сети, номерной план, задачи, проекты, правила записи Нет — статистических данных здесь нет вовсе
oktell_cc_temp Статистику работы call-центра в пространственных таблицах Да
Сервер всегда обращается только к oktell Доступ к двум другим базам идёт через их упоминание в хранимых процедурах и представлениях основной базы. Все таблицы oktell_settings имеют одноимённые представления в oktell.

Практическое следствие: собственный запрос почти всегда можно писать к базе oktell, не разбираясь, где физически лежит нужная таблица.

База oktell: что где искать

Статистика АТС

ТаблицаЧто в ней
A_Stat_Connections_1x1Журнал коммутаций — и АТС, и call-центра, и IVR. Главная таблица для любых расчётов по разговорам.
A_Stat_MissedCallsПропущенные звонки у внутренних абонентов.
A_Stat_FailedCallsНеудачные попытки соединения.
A_Stat_RingTimeВремя вызова внутренних абонентов до снятия трубки.
A_Stat_DTMFНажатия кнопок на телефоне во время связи.
A_Stat_Conference, A_Stat_Conference_CompetitorsЖурнал конференций и их участники.
A_Stat_CommentsКомментарии к записям коммутаций и конференций.
A_Stat_Connections_ErrorsОшибки в коммутациях.
A_Stat_Connections_VoicePercСтатистика владения разговором — кто сколько говорил.

Call-центр и задачи

ТаблицаЧто в ней
A_CallCenter_UserStateHistoryЖурнал состояний пользователя в call-центре: авторизация, вход в КЦ, онлайн, перерыв, ручной режим.
A_CallCenter_ControlEventsJournalЖурнал контрольных событий.
A_CallCenter_CountersСчётчики call-центра.
A_CallCenter_LastConnectedСвязки абонентов с операторами, последними их обслуживавшими. На этой таблице строится приём «соединить с последним обслужившим оператором».
A_TaskManager_SubTasks, A_TaskManager_SubTaskNumber, A_TaskManager_SubTaskEffortsОперативная статистика по абонентам, их номерам и попыткам набора в голосовых задачах.
A_TaskManager_UserInTaskПрисутствие операторов в обработке задачи и распределение по состояниям.
A_TaskManager_Task_IncomingCallsОперативная статистика по звонкам во входящих голосовых задачах.

Сценарии диалога

ТаблицаЧто в ней
A_Stat_Talk_AlgorythmsЖурнал работы экземпляров диалоговых сценариев.
A_Stat_Talk_StopInfoЖурнал стоп-карточек.
A_Stat_Talk_Card_Text, A_Stat_Talk_Card_Radio, A_Stat_Talk_Card_CheckЖурналы ответов на простые формы-запросы — текстовые, переключатели, флажки.
A_TalkForm_Stat_ValuesАвтоматически сохранённые значения из полей диалоговых форм.

Прочее

В базе oktell также лежат контакты и журнал звонков по контрагентам (A_Clients, A_ClientContacts, A_ClientHistory), пользовательский чат (группа A_Chat_*), голосовая почта и заказы на встречные звонки, очереди непрочитанных сообщений ICQ и Jabber, регистрационные данные SIP-сервера, хранилище сессий и журнал уведомлений.

Таблицы с GUID в имени Группы вида A_TaskManager_Idx_…, A_TaskManager_dIdx_… и A_TaskManager_LocalList_… создаются по одной на задачу или таблицу абонентов, а идентификатор в имени указывает, к какой именно. Это кэш абонентов и их номеров для работы менеджера задач. В крупной системе таких таблиц бывают сотни — не пугайтесь их количества и не удаляйте вручную.

База oktell_cc_temp: пространственные таблицы

Три основные пространственные таблицы и несколько справочников к ним. Именно отсюда берут данные встроенные отчёты call-центра.

ТаблицаЧто в ней
A_Cube_CC_EffortConnectionsЗвонки, коммутации, попытки звонков, результаты попыток и звонков, абоненты, операторы, линии и прочие свойства. Основная таблица для отчётов.
A_Cube_CC_OperatorStatesСостояния операторов при работе в call-центре с привязкой к временным интервалам.
A_Cube_CC_CallQueueСостояние очередей задач: сколько абонентов ждёт, сколько обслуживается, сколько операторов онлайн. См. предупреждение ниже.
A_Cube_CC_Cat_Task, A_Cube_CC_Cat_Project, A_Cube_CC_Cat_OperatorInfoСправочники задач, проектов и операторов.
A_Cube_CC_Cat_TaskResultTypesСправочник результатов совершения звонков — расшифровка кодов, которыми оперируют отчёты.
A_Cube_CC_Cat_OperatorStateTypesСправочник используемых состояний операторов.
A_Cube_CC_CallQueue по умолчанию отключена — и не зря В крупных call-центрах она вредна: состояние очередей меняется постоянно, и поток записей становится массовым. Включать её стоит осознанно и с пониманием того, какую нагрузку это даст.

База oktell_settings: настройки

Здесь лежит вся конфигурация комплекса. Статистики нет, разрастанию база не подвержена — это делает её удобной для резервного копирования отдельно от остальных.

ГруппаТаблицы
Пользователи и праваA_Users, A_UserParams, A_UserSettings, A_Groups; ролевая политика — A_UserRoles_Roles, A_UserRoles_Rights, A_UserRoles_RolesOfUsers, A_UserRoles_RightsOfRoles; политика прав доступа к объектам — группа A_Policy_*
Карта сетиA_WorkPlaces, A_ServerGates, A_ServerStreams, A_ServerExtLines, A_ServerIntLines, A_ServerSipLines, A_ServerUSBLines
Номерной план и маршрутизацияA_NumberPlan, A_NumberPlanAction, A_Rules, A_RuleRecords, A_CallRoutes, A_CallRoutes_Lines, A_EmergencyDirections, A_PaidNumbers, A_PermittedNumbers
Задачи и проектыA_TaskManager_Projects, A_TaskManager_Tasks, A_TaskManager_Lists, A_TaskManager_RunPeriods, A_TaskManager_Operators, A_TaskManager_TaskSupervisors; текстовые задачи — группа A_SmsTaskManager_*; служебные — A_SvcTaskManager_Tasks и A_SvcTaskManager_RunPeriods
Результаты звонковA_TaskManager_CardUserResults — общие, A_TaskManager_CardUserResultsProject — заданные для проекта, A_TaskManager_CardLunchStates — причины перерыва
Запись и переадресацияA_RecordRules, A_RecordRules_Items, A_Stat_RecordDirectories, A_Redirect, A_Redirect_Abonents, A_Redirect_TimeTable
Call-центрA_CallCenter_Reports, A_CallCenter_Indicators, A_CallCenter_ControlEvents, A_CallCenter_OperatorTimeTable
Внешние модулиA_PlugIns, A_PluginMenu, A_PluginMenu_User
Общие настройкиA_Settings — то, что редактируется в модуле «Администрирование → Общие настройки»
КалендарьA_HolidaysDefault, A_HolidaysUser
A_DB_FreeAll очищает все таблицы настроек Это единственная хранимая процедура базы oktell_settings, и она делает ровно то, что написано, — обнуляет конфигурацию комплекса целиком. Запускать её вручную нет причин.

Хранимые процедуры и триггеры

Процедуры основной базы делятся на группы по назначению:

  • формирование базы oktell_cc_temp — создание таблиц, начальное наполнение, перенос данных в ходе работы;
  • создание, удаление, изменение объектов и возврат их списков;
  • внесение записей в журналы статистики: изменения состояний, коммутации, конференции, контрольные события, неудачные и пропущенные звонки, кэш состояний SIP-аккаунтов;
  • загрузка сервера системы;
  • очистка и обслуживание базы, вспомогательные функции;
  • синхронизация и перестроение кэш-таблиц абонентских списков для менеджера задач;
  • расчёт статистики использования ресурсов, вывод журналов, построение встроенных отчётов и индексов по работе операторов;
  • управление ролевой политикой и политикой прав доступа к объектам;
  • обеспечение работы менеджера задач в разных режимах.
Триггеров нет нигде Вся логика находится в процедурах и в самом сервере. Это важно знать, когда вы пишете в базу Октелл извне: скрытых побочных действий на вставку или изменение строки не произойдёт — но и нужные сопутствующие записи сами собой не появятся.

Хранимые процедуры базы oktell_cc_temp самой платформой не используются вовсе: они существуют для внешних нужд и для размещения отчётов.

Основные сущности системы

Понимание того, какими понятиями оперирует база, экономит время при написании запросов. Сущности группируются по трём уровням.

УровеньСущности
Связь и АТС Пользователь системы, карта сети, внутренняя и внешняя линия, направление, роль, привилегия, коммутация, конференция, цепочка коммутаций (сессия), DTMF, ожидание ответа, абоненты в коммутации или конференции, контакт и клиент, сценарий IVR, вызов, удержание (флеш-буфер), переключение абонента, сообщения e-mail, ICQ, Jabber, SMS, пропущенный и неудачный звонок, очередь в АТС, состояние пользователя в АТС, служебный сценарий, веб-сервер и веб-сокет-сервер
Инфраструктура Рабочее место, служба сервера, сервер базы данных, сервер HAL, толстый клиент, COM-ядро клиентского приложения, веб-клиент, конфигурационные файлы сервера и клиента, обновления сервера, клиента и базы, авторизация, плагин, телефон или софтфон
Call-центр Оператор, супервизор, менеджер проекта, проект, таблица абонентов, сценарий диалога, входящая и исходящая голосовая задача, исходящая текстовая задача, служебная задача, отчёт, индикатор, дашборд, контрольное событие, резервирование оператора, запрос на дозвон, алгоритмы выбора абонента и оператора, диалоговая и стоп-форма, очередь в call-центре, прогрессивный и предиктивный набор, закрепление абонента за оператором, результат звонка по задаче и пользовательский результат, таймаут абонента или номера, права доступа к объектам, состояние пользователя в call-центре и оператора в обработчике задачи, перерыв, поствызывная обработка, онлайн, период в обработке звонка