Мониторинг состояния внешних линий — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
м
 
(не показана одна промежуточная версия этого же участника)
Строка 10: Строка 10:
 
  2)Выполняем SQL запрос и находим первую линию у которой номер > чем начальное значение для поиска.
 
  2)Выполняем SQL запрос и находим первую линию у которой номер > чем начальное значение для поиска.
 
  3)Если запрос выполнился, то определяем состояние. Если есть история по данной линии то модифицируем её  
 
  3)Если запрос выполнился, то определяем состояние. Если есть история по данной линии то модифицируем её  
при смене статуса в отдельной таблице или не выполняем никаких действий если статус не изменился.  
+
при смене статуса в отдельной таблице или не выполняем никаких действий если статус не изменился.  
Если нет истории то сохраняем её и добавляем в отчет по подключенным\отключенным линиям.
+
Если нет истории то сохраняем её и добавляем в отчет по подключенным\отключенным линиям.
 
  4)Меняем начальное значение для поиска линий на номер текущей линии.
 
  4)Меняем начальное значение для поиска линий на номер текущей линии.
 
  5) Повторяем пункты 1-5 до тех пор пока не определим состояние у всех внешних линий.
 
  5) Повторяем пункты 1-5 до тех пор пока не определим состояние у всех внешних линий.
Строка 81: Строка 81:
  
 
Файл сценария:<br>
 
Файл сценария:<br>
[http://wiki.oktell.ru/images/c/cb/%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D1%85_%D0%BB%D0%B8%D0%BD%D0%B8%D0%B9.oscr Мониторинг состояния внешних линий]
+
[[Media:%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D1%85_%D0%BB%D0%B8%D0%BD%D0%B8%D0%B9.oscr|Мониторинг состояния внешних линий]]
  
 
<FONT color="red">ВНИМАНИЕ!</FONT> Начиная с версии 2.8, поменять в компоненте "Получаем номер линии" название столбца systemnum на systemnumstr
 
<FONT color="red">ВНИМАНИЕ!</FONT> Начиная с версии 2.8, поменять в компоненте "Получаем номер линии" название столбца systemnum на systemnumstr
  
 
<u>'''Дополнение:'''</u> Чтобы не перегружать сервер баз данных '''Oktell''' постоянными SQL-запросами, рекомендуется использовать глобальную переменную со списком всех внешних линий и далее определять состояние, пользуясь полученным результатом. Подобный метод описан [[Перехват звонков из очереди]]
 
<u>'''Дополнение:'''</u> Чтобы не перегружать сервер баз данных '''Oktell''' постоянными SQL-запросами, рекомендуется использовать глобальную переменную со списком всех внешних линий и далее определять состояние, пользуясь полученным результатом. Подобный метод описан [[Перехват звонков из очереди]]

Текущая версия на 11:17, 31 марта 2023

Наверх

Цель: Получать оповещения при отключении\подключении внешних линий. При отключении\подключении внешней линии (в мониторинге отображается «Состояние» - серый\зеленый телефон) сценарий отправляет уведомления сотрудникам (возможно также например на e-mail).

Text check lines.jpg

Алгоритм проверки:

1)Устанавливаем начальное значение для поиска линий = «0»
2)Выполняем SQL запрос и находим первую линию у которой номер > чем начальное значение для поиска.
3)Если запрос выполнился, то определяем состояние. Если есть история по данной линии то модифицируем её 
при смене статуса в отдельной таблице или не выполняем никаких действий если статус не изменился. 
Если нет истории то сохраняем её и добавляем в отчет по подключенным\отключенным линиям.
4)Меняем начальное значение для поиска линий на номер текущей линии.
5) Повторяем пункты 1-5 до тех пор пока не определим состояние у всех внешних линий.
6)Проверяем есть ли в отчете подключенные\отключенные линии, если есть то выводим их в разных уведомлениях.

ВНИМАНИЕ! Проверка происходит по всем внешним линиям, которые находятся в таблице [oktell_settings].[dbo].[A_ServerExtLines].
ВНИМАНИЕ! Статусы 2 и 1024 интерпретируются как состояние 1 (линия не подключена). Список кодов и значений см. ниже.

Далее переходим «Администрирование» - «Общие настройки» - вкладка «Служебные задачи» - «Добавить» - выбираем для запуска данный сценарий и указываем необходимый период запуска - «Сохранить» - активируем служебную задачу.


SQL запросы для создания таблиц в БД Oktell:

История изменения статусов:

USE [oktell]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[table_line_state_history](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[line_num] [nvarchar](2000) NULL,
	[line_state] [nvarchar](2000) NULL,
	[line_date] [datetime] NULL,
PRIMARY KEY CLUSTERED 
( 
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO


Описание состояния линии по коду:

USE [oktell]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[table_line_state](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[code] [nvarchar](2000) NULL,
	[meaning] [nvarchar](2000) NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

Данные для таблицы [dbo].[table_line_state_history]:

code	meaning
1	Не подключена
2	Выключена
4	Готова
8	Трубка поднята
16	Входящий звонок
32	Скоммутирована
64	Ожидание
128	Флеш
256	Не используется
512	Занято
1024	Неопределено
2048	Зарезервирована
4096	Зарезервирована задачей


Файл сценария:
Мониторинг состояния внешних линий

ВНИМАНИЕ! Начиная с версии 2.8, поменять в компоненте "Получаем номер линии" название столбца systemnum на systemnumstr

Дополнение: Чтобы не перегружать сервер баз данных Oktell постоянными SQL-запросами, рекомендуется использовать глобальную переменную со списком всех внешних линий и далее определять состояние, пользуясь полученным результатом. Подобный метод описан Перехват звонков из очереди