RetrieveUserLocationHistory - Запрос статистики пользователя по перемещению между ТД по логину
Общая информация
-
Команда актуальна, начиная с версии 1.8.
-
До версии 1.17 при обработке запроса данные ТД получались из EMS. NBI обращался в EMS-NBI по URL 'getAPListExtended'.
-
Начиная с версии 1.17 от этого отказались, и данные NBI получает сам из MySQL eltex_ems.ELTEX_OBJ_GEO. Поведение аналогично обработке команды GetGeoObjectsList
Входные параметры
| Параметр | Значение | Формат значения | Расшифровка формата | Ссылка |
|---|---|---|---|---|
trackingObjectType |
Тип объекта, по которому будет показана история перемещения ("ap" либо "ssid"), обязательно |
^(ap|ssid)$ |
ap либо ssid |
|
username |
Имя пользователя |
^.{1,64}$ |
Текст до 64-х символов. |
Wi-Fi пользователь |
mac |
MAC-адрес устройства пользователя |
^([0-9a-fA-F]{2}[:-]){5}([0-9a-fA-F]{2})$ |
6 двузначных шестнадцатеричных чисел, разделенных ':'. |
|
APDomain |
Фильтр по домену. Если домен начинается с символа '.' , то статистика будет по всем ТД для данного домена и его поддоменов. |
(?=^.{1,235}$)(^((?!-|_|.*(__|--).*)[a-zA-Z0-9_\-]\{1,63}\.)*((?!-|_|.*(__|--).*)[a-zA-Z0-9_\-]{1,63})$) |
Текст длиной до 235 символов, удовлетворяющий правилам FQDN (за исключением варианта с точкой в начале) |
Domain |
startTime |
Начальный момент активности пользователя |
.* |
Время по стандарту "ISO 8601" в формате «yyyy-MM-ddTHH:mm:ssZ», например "2007-12-03T10:15:30Z" |
|
endTime |
Конечный момент активности пользователя |
.* |
Время по стандарту "ISO 8601" в формате «yyyy-MM-ddTHH:mm:ssZ», например "2008-12-03T10:15:30Z |
|
pauseBetweenSessions |
Минимальное время между сессиями |
PnDTnHnMn.nS |
Есть четыре раздела, каждый из которых состоит из числа и суффикса. Разделы имеют суффиксы в ASCII «D», «H», «M» и «S» для дней, часов, минут и секунд, принимаемых в верхнем или нижнем регистре. Должен присутствовать хотя бы один из четырех разделов. Например: 'PT20.345S' - 20.345 секунд, 'PT15M' - 15 минут |
|
ssidType |
Тип SSID, обязательно |
^(hotspot|enterprise|equipment)$ |
hotspot (0), enterprise (1) или equipment (2). Можно указывать цифрами |
|
count |
Число записей, обязательно |
^[1-9][0-9]*$ |
Целое положительное число |
|
offset |
Сдвиг по записям, обязательно |
^[0-9]*$ |
Целое положительное число или ноль |
|
orderBy |
Поле для сортировки (рекомендуется "minAcctStartTime") |
^(minAcctStartTime| maxAcctStopTime| sumAcctSessionTime)$ |
minAcctStartTime - время начала первой сессии на ТД/ssid, maxAcctStopTime - время окончания последней сессии на ТД/ssid, sumAcctSessionTime - суммарное время всех сессий на ТД/ssid |
|
orderType |
Поле определяющее тип сортировки. (По умолчанию ASC), обязательно |
^(ASC|DESC)$ |
ASC или DESC |
|
queryTotalCount |
Сделать запрос общего количества записей, обязательно |
^(true|false)$ |
true - получить значение total, false - не получать значение total (будет равен -1) |
Выходные параметры
| Параметр | Значение | Формат значения |
|---|---|---|
array |
Массив объектов NbiLocationArrayItem |
|
total |
Общее число объектов |
Целое число |
code |
Код ответа |
Целое число |
detail |
Пояснение к ответу |
Строка |
Примеры команд и кодов
| Код | Описание |
|---|---|
0 |
Успешно |
Запрос
<nbi:RetrieveUserLocationHistory>
<nbi:trackingObjectType>ssid</nbi:trackingObjectType>
<nbi:username>favarish</nbi:username>
<nbi:mac>1A-6d-c5-ba-09-01</nbi:mac>
<nbi:APDomain>root</nbi:APDomain>
<nbi:startTime>2007-12-03T10:15:30Z</nbi:startTime>
<nbi:endTime>2021-10-03T10:15:30Z</nbi:endTime>
<nbi:pauseBetweenSessions>PT15M</nbi:pauseBetweenSessions>
<nbi:ssidType>enterprise</nbi:ssidType>
<nbi:count>2</nbi:count>
<nbi:offset>1</nbi:offset>
<nbi:orderBy>minAcctStartTime</nbi:orderBy>
<nbi:orderType>ASC</nbi:orderType>
<nbi:queryTotalCount>true</nbi:queryTotalCount>
</nbi:RetrieveUserLocationHistory>
Ответ
<ns:RetrieveUserLocationHistoryResponse>
<ns:return>
<ax23:code>0</ax23:code>
<ax23:detail>Success</ax23:detail>
<ax241:array>
<ax241:items>
<ax241:acct>
<ax241:SSID>ent</ax241:SSID>
<ax241:apDomain>root</ax241:apDomain>
<ax241:clientDomain>root</ax241:clientDomain>
<ax241:clientIP>10.25.96.51</ax241:clientIP>
<ax241:clientMAC>1A-6D-C5-BA-09-01</ax241:clientMAC>
<ax241:clientName>favarish</ax241:clientName>
<ax241:inputOctets>98093</ax241:inputOctets>
<ax241:nasIP>10.25.96.115</ax241:nasIP>
<ax241:nasMAC>A8-F9-4B-B2-48-E0</ax241:nasMAC>
<ax241:outputOctets>433589</ax241:outputOctets>
<ax241:startTime>2021-04-19T01:33:29Z</ax241:startTime>
<ax241:stopTime>2021-04-19T01:46:45Z</ax241:stopTime>
<ax241:summarySessionTime>PT13M16S</ax241:summarySessionTime>
<ax241:timeSinceLastSession>PT71H13M38S</ax241:timeSinceLastSession>
</ax241:acct>
<ax241:ap>
<ax241:building/>
<ax241:city/>
<ax241:domain/>
<ax241:floor/>
<ax241:house/>
<ax241:ip/>
<ax241:mac/>
<ax241:name/>
<ax241:office/>
<ax241:street/>
<ax241:type/>
</ax241:ap>
</ax241:items>
<ax241:items>
<ax241:acct>
<ax241:SSID>ent</ax241:SSID>
<ax241:apDomain>root</ax241:apDomain>
<ax241:clientDomain>root</ax241:clientDomain>
<ax241:clientIP>10.25.96.51</ax241:clientIP>
<ax241:clientMAC>1A-6D-C5-BA-09-01</ax241:clientMAC>
<ax241:clientName>favarish</ax241:clientName>
<ax241:inputOctets>42480</ax241:inputOctets>
<ax241:nasIP>10.25.96.115</ax241:nasIP>
<ax241:nasMAC>A8-F9-4B-B2-48-E0</ax241:nasMAC>
<ax241:outputOctets>128132</ax241:outputOctets>
<ax241:startTime>2021-05-04T06:38:11Z</ax241:startTime>
<ax241:stopTime>2021-05-04T06:39:53Z</ax241:stopTime>
<ax241:summarySessionTime>PT1M42S</ax241:summarySessionTime>
<ax241:timeSinceLastSession>PT364H51M26S</ax241:timeSinceLastSession>
</ax241:acct>
<ax241:ap>
<ax241:building/>
<ax241:city/>
<ax241:domain/>
<ax241:floor/>
<ax241:house/>
<ax241:ip/>
<ax241:mac/>
<ax241:name/>
<ax241:office/>
<ax241:street/>
<ax241:type/>
</ax241:ap>
</ax241:items>
</ax241:array>
<ax241:total>3</ax241:total>
</ns:return>
</ns:RetrieveUserLocationHistoryResponse>
| Код | Описание ошибки |
|---|---|
2 |
Ошибка взаимодействия с базой данных MySQL |
8 |
Некорректный домен |
10 |
У роли нет прав на данный домен |
13 |
Клиент заблокирован |
62 |
Несуществующий домен |
63 |
Некорректный формат MAC-адреса пользовательского устройства. |
105 |
Некорректный формат поля startTime |
106 |
Некорректный формат поля endTime |
107 |
Некорректно указан период времени (startTime позже endTime) |
112 |
Некорректно указан параметр count (должно быть указано положительное число) |
131 |
Некорректно указан параметр offset (должно быть указано положительное число или ноль) |
312 |
Некорректное значение параметра |
436 |
Не указан обязательный параметр |
437 |
Некорректный тип сортировки (параметр запроса 'orderType') |
438 |
Некорректный тип объекта для показа истории перемещения (параметр запроса 'trackingObjectType') |
439 |
Не корректный формат паузы между сессиями |
Пример использования
См. также
Вернуться к списку команд
Версия 1.22-2494
Дата публикации 05-04-2022 04:47:30