Определение времени работы внутренних линий — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 7: Строка 7:
 
[[Файл:РаботаВнутреннихЛиний-001.png | center]]
 
[[Файл:РаботаВнутреннихЛиний-001.png | center]]
  
 +
Структурно сценарий состоит из
 +
* Цикла по внутренним SIP линиям. Блок взят из статьи [[Построковая обработка sql выборки в сценарии]] (Вариант 1)
 +
* Определения статуса конкретной SIP линии. Блок взят из статьи [[Мониторинг состояния внешних линий]]
 +
* Обновление статистики по работе линии
 +
 +
1. Компонент "Начальные параметры". Заданы параметры - начальное значение для поиска внутренних линий и текущая дата.
 +
 +
2. Компонент "Находим линию". Определяет следующую по порядку внутреннюю SIP линию по столбцу systemnumstr. В качестве выходных параметров запрос выдает res - результат запроса (1- найдена линия, 0 -не найдена), systemnumstr - номер внутренней линии.
 +
 +
declare @min int
 +
select @min = min(systemnumstr)
 +
from [oktell_settings].[dbo].[A_ServerSipLines]
 +
where systemnumstr>@systemnumstr_before
 +
 +
if (@min is not null)
 +
select @systemnumstr=@min
 +
 +
set @res=@@rowcount
 +
 +
[[Файл:РаботаВнутреннихЛиний-002.png]]
 +
 +
 +
3. Компонент "Проверка на завершение". Определяет конец цикла (был осуществлен перебор всех линий). Сравнение переменной res с нулем.
 +
 +
4. Компонент "id_before = id_after". Переприсваивает переменную для поиска следующей sip линии на следующем цикле.
 +
 +
5. Компонент "Статус линии". Определяет состояние линии по ее номеру и записывает в переменную status.
 +
 +
6. Компонент "Идентификатор пользователя". Определяет пользователя, контролирующего линию ("Пользователь по умолчанию" или логически связанный пользователь), и записывает его в переменную user.
 +
 +
7. Компонент "Определяем пользователя по умолчанию". Используется SQL запрос, определяющий по идентификатору пользователя его имя.
 +
 +
select @name=name from a_users where ID =@id
 +
 +
8. Компонент "Определяем статус линии". В компоненте определяется состояние линии по ее статусу - включена или выключена. В сценарии, линия считается выключенной если ее статус = 1 ( не подключена) или 1024 (не определена). Более подробно по статусам вы можете прочитать [[Общие_компоненты_сценариев#.D0.A1.D1.82.D0.B0.D1.82.D1.83.D1.81_.D0.BE.D0.B1.D1.8A.D0.B5.D0.BA.D1.82.D0.B0 | Общие компоненты сценариев]]
  
  
Строка 18: Строка 53:
  
 
* [oktell_settings].[dbo].[A_ServerExtLines] — столбец SystemNumStr показывает номера внешних SIP линий
 
* [oktell_settings].[dbo].[A_ServerExtLines] — столбец SystemNumStr показывает номера внешних SIP линий
 
Следующий сценарий сделан на основе следующих статей:
 
* [[Мониторинг состояния внешних линий]]
 
* [[Построковая обработка sql выборки в сценарии]]
 

Версия 10:59, 14 января 2014

Задача: Мониторинг состояния внутренних линий и определение времены работы внутренних линий.

Задача становится актуальной, когда операторы системы не используют клиентских приложений, а установлены как "пользователь по умолчанию" для своего телефона. В этом случае в базу данных Oktell, информация о разрегистрации линии не заносится и проверка работы линий доступна только с помощью клиентского приложения.

Сценарий выглядит следующим образом:

РаботаВнутреннихЛиний-001.png

Структурно сценарий состоит из

1. Компонент "Начальные параметры". Заданы параметры - начальное значение для поиска внутренних линий и текущая дата.

2. Компонент "Находим линию". Определяет следующую по порядку внутреннюю SIP линию по столбцу systemnumstr. В качестве выходных параметров запрос выдает res - результат запроса (1- найдена линия, 0 -не найдена), systemnumstr - номер внутренней линии.

declare @min int
select @min = min(systemnumstr)
from [oktell_settings].[dbo].[A_ServerSipLines]
where systemnumstr>@systemnumstr_before

if (@min is not null)
select @systemnumstr=@min

set @res=@@rowcount

РаботаВнутреннихЛиний-002.png


3. Компонент "Проверка на завершение". Определяет конец цикла (был осуществлен перебор всех линий). Сравнение переменной res с нулем.

4. Компонент "id_before = id_after". Переприсваивает переменную для поиска следующей sip линии на следующем цикле.

5. Компонент "Статус линии". Определяет состояние линии по ее номеру и записывает в переменную status.

6. Компонент "Идентификатор пользователя". Определяет пользователя, контролирующего линию ("Пользователь по умолчанию" или логически связанный пользователь), и записывает его в переменную user.

7. Компонент "Определяем пользователя по умолчанию". Используется SQL запрос, определяющий по идентификатору пользователя его имя.

select @name=name from a_users where ID =@id

8. Компонент "Определяем статус линии". В компоненте определяется состояние линии по ее статусу - включена или выключена. В сценарии, линия считается выключенной если ее статус = 1 ( не подключена) или 1024 (не определена). Более подробно по статусам вы можете прочитать Общие компоненты сценариев


В данной статье обсуждается вопрос о работе линий, работающих по SIP. Сценарий использует таблицу:

  • [oktell_settings].[dbo].[A_ServerSipLines] — столбец SystemNumStr показывает номера внутренних SIP линий, определенных в системе.

Вы можете использовать также:

  • [oktell_settings].[dbo].[A_ServerUSBLines] — столбец SystemNumStr показывает номера внутренних Voip линий (гарнитура или usb телефон).
  • [oktell_settings].[dbo].[A_ServerExtLines] — столбец SystemNumStr показывает номера внешних SIP линий