Сервис представляет собой интерфейс для взаимодействия компонентов платформы и внешними SMS-шлюзами, Call-центрами и серверами электронной почты. Служит для отправки уведомлений пользователям платформы, а также пользователям Wi-Fi.
apt-get install eltex-ngw |
Действие | Команда | Ответ | ||
---|---|---|---|---|
Проверка состояния | systemctl status eltex-ngw | Сервис запущен
Cервис не запущен
| ||
Запуск сервиса | systemctl start eltex-ngw | Сервис успешно запущен
| ||
Остановка сервиса | systemctl stop eltex-ngw | Сервис успешно остановлен
| ||
Перезапуск сервиса | systemctl restart eltex-ngw | Сервис успешно перезапущен
| ||
Создание пользователя базы данных | eltex-ngw create-db-user | |||
Удаление базы данных | eltex-ngw remove-db |
Содержит основные настройки сервиса.
// Server configuration server { port = 8040 # порт, который слушает сервис eltex-ngw } sms { // Incoming (user to service) sms config incoming.config = "smsc.conf" # выбор конфигурации для исходящих сообщений // Outgoing (service to user) sms config outgoing.config = "smsc.conf" # выбор конфигурации для входящих сообщений // Sms gateway pool settings # настройка пула до смс шлюза pool { min = 1 max = 20 waitTimeout = 5s } } call { // Incoming (user to service) call config incoming.config = "sbc.conf" # выбор конфигурации для входящих звонков // Outgoing (service to user) call config outgoing.config = "/smg.conf" # выбор конфигурации для исходящих звонков // Call gateway pool settings pool { min = 1 max = 20 waitTimeout = 5s } } email { // Outgoing (service to user) email config outgoing.config = "email.conf" # выбор конфигурации для электронной почты pool { min = 1 max = 20 waitTimeout = 5s } } database { host = localhost # адрес базы данных port = 3306 # порт name = eltex_ngw # название базы данных user = javauser # логин для доступа к бд password = javapassword # пароль для доступа к бд pool { // Time to wait for a connection connectionTimeout = 10s min = 1 max = 10 } # настройки планировщика заданий по очистке старых сообщений в базе данных // Configure the lifetime of different tables' content cleanup { // incoming events events = 365d # время хранения событий // sms messages = 365d # время хранения sms // email emails = 365d # время хранения электронных писем // files files = 7d # время хранения файлов // limit deletions by this number (0 if no limit) limit = 0 // cleanup schedule cron, e.g. "0 0 3 ? * *" # настройка времени запуска по cron // set to "-" to disable cron = "-" # включение планировщика, по умолчанию выключен } } |
каталог содержит конфигурационные файлы для подключения к различным шлюзам.
Для подключения к различным смс-шлюзам создан набор шаблонов конфигураций, которые находятся в каталоге /etc/eltex-ngw/gateway.d/. Если среди предложенных шаблонов и смс-шлюзов Вы не нашли свой, то обратитесь в техподдержку для интеграции с Вашим шлюзом.
SMS-центр - smsc_gate.conf.
Kaspi Bank - kaspib_gate.conf (Индивидуальная интеграция).
Seven Sky - 7sky_gate.conf.
Связной загрузка - zagruzka_gate.conf.
SMS - шлюз с поддержкой SMPP - smpp_gate.conf.
GSM-шлюз NetPing SMS - netping_gate.conf.
GSM-шлюз Fargo maestro 100 - serial_port.conf.
Банк Левобережный - levob_gate.conf (Индивидуальная интеграция).
Связьбанк шлюз - sviaz_bank_gate.conf (Индивидуальная интеграция).
rtk_sbc.conf - исходящий звонок.
smg_gate.conf - входящий звонок.
Ростелеком - rtk_gate.conf (Индивидуальная интеграция).
Возможность интеграции с другими шлюзами уточняйте в техподдержке компании.
Содержит параметры инициализации сервиса.
# Eltex Notification Gateway daemon parameters # Initial size of Java heap JAVA_INIT_HEAP=16m # Maximum size of Java heap JAVA_MAX_HEAP=128m # Additional arguments to pass to java JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-ngw" |
# Initial size of Java heap JAVA_INIT_HEAP=16m |
# Maximum size of Java heap JAVA_MAX_HEAP=128m |
# Additional arguments to pass to java JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-ngw" |
/etc/eltex-ngw/log4j2.xml
Содержит параметры логирования.
<?xml version="1.0" encoding="UTF-8"?> <Configuration monitorInterval="600"> <Properties> <Property name="baseDir">/var/log/eltex-ngw</Property> <Property name="maxFileSize">20 MB</Property> <Property name="accumulatedFileSize">100 GB</Property> <Property name="lastModified">4d</Property> <Property name="maxCount">10</Property> <Property name="logPattern">%d{ISO8601} [%t] %-5p %logger{12} %C{1}.%M(line:%L). %m%n</Property> <Property name="gelfLevel">OFF</Property> <Property name="gelfHost">udp:lab3-test.eltex.loc</Property> <Property name="gelfPort">12201</Property> </Properties> <Appenders> <RollingFile name="RollingFile" filename="${baseDir}/notification-gateway.log" filepattern="${baseDir}/notification-gateway-%i.log.gz"> <PatternLayout pattern="${logPattern}"/> <Policies> <SizeBasedTriggeringPolicy size="${maxFileSize}"/> <OnStartupTriggeringPolicy/> </Policies> <!-- Ограничение на кол-во файлов. для боевой реализации - не более 20 штук. --> <DefaultRolloverStrategy max="3"> <Delete basePath="${baseDir}" maxDepth="1"> <IfFileName glob="notification-gateway-*.log.gz"> <IfLastModified age="${lastModified}"/> <IfAny> <IfAccumulatedFileSize exceeds="${accumulatedFileSize}"/> <IfAccumulatedFileCount exceeds="${maxCount}"/> </IfAny> </IfFileName> </Delete> </DefaultRolloverStrategy> </RollingFile> <Gelf name="Gelf" host="${gelfHost}" port="${gelfPort}" version="1.1" facility="notification-gateway" extractStackTrace="true" originHost="%host{fqdn}" maximumMessageSize="8192"> <Field name="thread" pattern="%t"/> <Field name="level" pattern="%level"/> <Field name="severity" pattern="%-5level"/> <Field name="logger" pattern="%logger{12}"/> <Field name="location" pattern="%C{1}.%M(line:%L)"/> </Gelf> </Appenders> <Loggers> <Root level="ERROR"> <AppenderRef ref="RollingFile"/> <AppenderRef ref="Gelf" level="${gelfLevel}"/> </Root> <Logger name="org.eclipse.jetty" level="WARN"/> <Logger name="org.mongodb" level="ERROR"/> <Logger name="org.jsmpp" level="ERROR"/> <Logger name="org.springframework" level="ERROR"/> <logger name="jndi" level="OFF"/> <!--log4j configuration logger--> <Logger name="EventLogger" additivity="false" level="ERROR"> <AppenderRef ref="console"/> </Logger> </Loggers> </Configuration> |
<Configuration monitorInterval="600"> |
<Property name="baseDir">/var/log/eltex-ngw</Property> |
<Property name="maxFileSize">20 MB</Property> |
<Property name="accumulatedFileSize">100 GB</Property> |
<Property name="lastModified">4d</Property> |
<Property name="maxCount">10</Property> |
<Property name="gelfLevel">OFF</Property> <Property name="gelfHost">udp:lab3-test.eltex.loc</Property> <Property name="gelfPort">12201</Property> |
<Root level="ERROR"> |
Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл docker-compose.yml
version: "2.4" volumes: softwlc_logs: driver: local services: ngw: container_name: ngw image: hub.eltex-co.ru/softwlc/eltex-ngw:1.19-<tag> network_mode: host ports: - 1814:1814 - 8040:8040 volumes: - "/etc/eltex-ngw:/etc/eltex-ngw" |
Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке. |
На данный момент нельзя конфигурировать настройки смс-шлюза через переменные окружения, то для применения необходимых настроек нужно сделать маппинг конфигурационных файлов ранее установленной deb-версии.
Некоторые параметры можно сконфигурировать через переменные окружения представленные ниже. Для этого необходимо создать файл .env и разместить его рядом с docker-compose.yml, указав в последнем необходимые переменные.
NGW_PORT=8040 NGW_SMS_INCOMING_CONF=smsc.conf NGW_SMS_OUTGOING_CONF=smsc.conf NGW_CALL_INCOMING_CONF= NGW_CALL_OUTGOING_CONF= NGW_EMAIL_OUTGOING_CONF= NGW_DB_HOST=<IP-address> NGW_DB_PORT=3306 NGW_DB_NAME=eltex_ngw NGW_DB_USER=javauser NGW_DB_PASSWORD=javapassword NGW_DB_POOL_CONNECTION_TIMEOUT=10s NGW_DB_POOL_MIN_IDLE=1 NGW_DB_POOL_SIZE=10 NGW_DB_CLEANUP_EVENTS=365d NGW_DB_CLEANUP_MESSAGES=365d NGW_DB_CLEANUP_EMAILS=365d NGW_DB_CLEANUP_FILES=7d NGW_DB_CLEANUP_LIMIT=0 NGW_DB_CLEANUP_CRON=- |