Сервер Октелл использует три базы данных. Разделение не формальное: у каждой своя роль, свой характер роста и свои последствия при обслуживании.
| База | Что хранит | Растёт ли |
|---|---|---|
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-сервера, хранилище сессий и журнал уведомлений.
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-центре и оператора в обработчике задачи, перерыв, поствызывная обработка, онлайн, период в обработке звонка |