Инструменты пользователя

Инструменты сайта


e3

Сервис приема событий

e3srv

Сервис обработки событий включает в себя программный сервис (демон) для ОС Unix под названием e3srv.

Сервис обработки событий необходим для реализации интерфейса приема информации (событий) от драйверов СПИ и передачи им команд телеуправления. Сервис обработки событий позволяет осуществлять интеграцию с разными типами СПИ путем описания всех передаваемых данных в стандартизованном виде с использованием формата передачи данных «JSON».

Конфигурирование сервиса обработки событий e3srv осуществляется с помощью файла конфигурации e3srv.cfg.

Пример e3srv.cfg по умолчанию:

[server]
port=1110
connections=256
[database]
socket=/var/run/mysqld/mysqld.sock
;host=localhost
;port=3306
database=dozor
user=dozor
password=
[log]
level=8

Где секции «server»:
port – номер порта сервиса;
connections – максимальное число одновременных соединений,
в секции «database»:
socket – unix socket для взаимодействия с БД;
database – имя БД;
user – имя пользователя для доступа к БД;
password – пароль пользователя для доступа к БД.

Файл конфигурации

Парсинг баланса операторов связи

Для парсинга (разбора) ответов, получаемых в SMS и USSD сообщениях в сервисе приема сообщений используются расширенные регулярные выражения POSIX, те же что используются в утилитах egrep, gawk и т.п. Процессор регулярных выражений работает в текущей системной локали (по умолчанию utf-8) и производит регистронезависимый поиск и сопоставление.

В качестве результата используется указанная для регулярного выражения группа совпадения (но не более 9-й), содержимое которой приводится к числу с плавающей точкой.

По умолчанию все тексты SMS и USSD прогоняются через следующие регулярные выражения:

{ "баланс[ \t\n\r:=]*(-?[0-9]{1,}([.,][0-9]{2})?)", 1 },
{ "(^|[ \t\r\n])(-?[0-9]+([.,][0-9]{2})?) *р(уб)?\\.", 2 }

Для проверки регулярных выражений необходимо сохранить тестовые строки в отдельный файл, например:

Баланс: 220,81. Рекомендуйте друзьям мобильную связь и получайте вместе по 150 бонусов!
102.11 руб.
120 руб.
Долг -123,22р. Обещанный платеж *107*13#
123,222р.
120.00руб.
20 р

А затем пропустить его через утилиту egrep с проверяемым регулярным выражением:

cat balance.txt | egrep "баланс[ \t\n\r:=]*(-?[0-9]{1,}([.,][0-9]{2})?)"

И оценить результат:

220,81

Для всех регулярных выражений

cat balance.txt | egrep "(^|[ \t\r\n])(-?[0-9]+([.,][0-9]{2})?) *р(уб)?\\."

результат:

102.11
120
-123,22
120.00
e3.txt · Последние изменения: 2018/12/18 13:46 — irina