Сервис обработки событий включает в себя программный сервис (демон) для ОС 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