Im setting up GenieACS 1.2.9 with ejabberd XMPP Server but there is no packet from CPE/HomeGateway/ACS to XMPP but when trying from any XMPP Client like astrachat it is working fine.
Please find End to End Configuration and setup info as in sate.
Topology
DNS Setting
Testing ejabberd XMPP using Astrachat client
Astrachat client Setting
Astrachat client showing online
ejabberd Server side configuration
Users:
Check DNS on XMPP server
root@cacti:~# dig cacti.fnlab.com
; <<>> DiG 9.16.1-Ubuntu <<>> cacti.fnlab.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: FORMERR, id: 31864
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 31340f17eae3ba62 (echoed)
;; QUESTION SECTION:
;cacti.fnlab.com. IN A
;; Query time: 0 msec
;; SERVER: 192.168.200.43#53(192.168.200.43)
;; WHEN: Sat Dec 10 08:41:03 UTC 2022
;; MSG SIZE rcvd: 56
root@cacti:~#
ejabberdctl.cfg
In this file you can configure options that are passed by ejabberdctl
to the erlang runtime system when starting ejabberd
#’ POLL: Kernel polling ([true false])
The kernel polling option requires support in the kernel.
Additionally, you need to enable this feature while compiling Erlang.
Default: true
#POLL=true
#.
#’ SMP: SMP support ([enable auto disable])
Explanation in Erlang/OTP documentation:
enable: starts the Erlang runtime system with SMP support enabled.
This may fail if no runtime system with SMP support is available.
auto: starts the Erlang runtime system with SMP support enabled if it
is available and more than one logical processor are detected.
disable: starts a runtime system without SMP support.
Default: auto
#SMP=auto
#.
#’ ERL_MAX_PORTS: Maximum number of simultaneously open Erlang ports
ejabberd consumes two or three ports for every connection, either
from a client or from another Jabber server. So take this into
account when setting this limit.
Default: 65536 (or 8196 on Windows)
Maximum: 268435456
#ERL_MAX_PORTS=65536
#.
#’ FIREWALL_WINDOW: Range of allowed ports to pass through a firewall
If Ejabberd is configured to run in cluster, and a firewall is blocking ports,
it’s possible to make Erlang use a defined range of port (instead of dynamic
ports) for node communication.
Default: not defined
Example: 4200-4210
#FIREWALL_WINDOW=
#.
#’ INET_DIST_INTERFACE: IP address where this Erlang node listens other nodes
This communication is used by ejabberdctl command line tool,
and in a cluster of several ejabberd nodes.
Default: 0.0.0.0
#INET_DIST_INTERFACE=127.0.0.1
#.
#’ ERL_PROCESSES: Maximum number of Erlang processes
Erlang consumes a lot of lightweight processes. If there is a lot of activity
on ejabberd so that the maximum number of processes is reached, people will
experience greater latency times. As these processes are implemented in
Erlang, and therefore not related to the operating system processes, you do
not have to worry about allowing a huge number of them.
Default: 262144
Maximum: 268435456
#ERL_PROCESSES=262144
#.
#’ ERL_MAX_ETS_TABLES: Maximum number of ETS and Mnesia tables
The number of concurrent ETS and Mnesia tables is limited. When the limit is
reached, errors will appear in the logs:
** Too many db tables **
You can safely increase this limit when starting ejabberd. It impacts memory
consumption but the difference will be quite small.
Default: 2053
#ERL_MAX_ETS_TABLES=2053
#.
#’ ERL_OPTIONS: Additional Erlang options
The next variable allows to specify additional options passed to erlang while
starting ejabberd. Some useful options are -noshell, -detached, -heart. When
ejabberd is started from an init.d script options -noshell and -detached are
added implicitly. See erl(1) for more info.
It might be useful to add “-pa /usr/local/lib/ejabberd/ebin” if you
want to add local modules in this path.
Default: “-env ERL_CRASH_DUMP_BYTES 0”
ERL_OPTIONS=“-env ERL_CRASH_DUMP_BYTES 0”
#.
#’ ERLANG_NODE: Erlang node name
The next variable allows to explicitly specify erlang node for ejabberd
It can be given in different formats:
ERLANG_NODE=ejabberd
Lets erlang add hostname to the node (ejabberd uses short name in this case)
ERLANG_NODE=ejabberd@hostname
Erlang uses node name as is (so make sure that hostname is a real
machine hostname or you’ll not be able to control ejabberd)
ERLANG_NODE=ejabberd@hostname.domainname
The same as previous, but erlang will use long hostname
(see erl (1) manual for details)
Default: ejabberd@localhost
#ERLANG_NODE=ejabberd@localhost
#.
#’ EJABBERD_PID_PATH: ejabberd PID file
Indicate the full path to the ejabberd Process identifier (PID) file.
If this variable is defined, ejabberd writes the PID file when starts,
and deletes it when stops.
Remember to create the directory and grant write permission to ejabberd.
Default: don’t write PID file
EJABBERD_PID_PATH=/run/ejabberd/ejabberd.pid
#.
#’ EJABBERD_CONFIG_PATH: ejabberd configuration file
Specify the full path to the ejabberd configuration file. If the file name has
yml or yaml extension, it is parsed as a YAML file; otherwise, Erlang syntax is
expected.
Default: $ETC_DIR/ejabberd.yml
EJABBERD_CONFIG_PATH=/etc/ejabberd/ejabberd.yml
#.
#’ CONTRIB_MODULES_PATH: contributed ejabberd modules path
Specify the full path to the contributed ejabberd modules. If the path is not
defined, ejabberd will use ~/.ejabberd-modules in home of user running ejabberd.
Note: this is not needed for the ejabberd-mod-* packages
Default: $HOME/.ejabberd-modules
#CONTRIB_MODULES_PATH=/opt/ejabberd-modules
#.
#’ CONTRIB_MODULES_CONF_DIR: configuration directory for contributed modules
Specify the full path to the configuration directory for contributed ejabberd
modules. In order to configure a module named mod_foo, a mod_foo.yml file can
be created in this directory. This file will then be used instead of the
default configuration file provided with the module.
Default: $CONTRIB_MODULES_PATH/conf
CONTRIB_MODULES_CONF_DIR=/etc/ejabberd/modules.d
#.
#’
vim: foldmarker=#',#. foldmethod=marker:
ejabberd.yml
###
### ejabberd configuration file
###
### The parameters used in this configuration file are explained at
###
### Configuring ejabberd | ejabberd Docs
###
### The configuration file is written in YAML.
*### ********************************************************
*### ******* !!! WARNING !!! ********
*### ******* YAML IS INDENTATION SENSITIVE ********
*### ******* MAKE SURE YOU INDENT SECTIONS CORRECTLY ********
*### ********************************************************
### Refer to YAML - Wikipedia for the brief description.
###
#
—
## loglevel: Verbosity of log files generated by ejabberd
## 0: No ejabberd log at all (not recommended)
## 1: Critical
## 2: Error
## 3: Warning
## 4: Info
## 5: Debug
loglevel: 4
## rotation: Disable ejabberd’s internal log rotation, as the Debian package
## uses logrotate(8).
log_rotate_count: 0
log_rotate_date: “”
## hosts: Domains served by ejabberd.
## You can define one or several, for example:
## hosts:
## - “example.net”
## - “example.com”
## - “example.org”
hosts:
-
- localhost*
certfiles:
-
- “/etc/ejabberd/ejabberd.pem”*
## - /etc/letsencrypt/live/localhost/fullchain.pem
## - /etc/letsencrypt/live/localhost/privkey.pem
- “/etc/ejabberd/ejabberd.pem”*
## TLS configuration
define_macro:
- ‘TLS_CIPHERS’: “HIGH:!aNULL:!eNULL:!3DES:@STRENGTH”*
- ‘TLS_OPTIONS’:*
-
- “no_sslv3”*
-
- “no_tlsv1”*
-
- “no_tlsv1_1”*
-
- “cipher_server_preference”*
-
- “no_compression”*
-
‘DH_FILE’: “/path/to/dhparams.pem”*
-
generated with: openssl dhparam -out dhparams.pem 2048*
c2s_ciphers: ‘TLS_CIPHERS’
s2s_ciphers: ‘TLS_CIPHERS’
c2s_protocol_options: ‘TLS_OPTIONS’
s2s_protocol_options: ‘TLS_OPTIONS’
## c2s_dhfile: ‘DH_FILE’
## s2s_dhfile: ‘DH_FILE’
listen:
- -*
- port: 5222*
- ip: “0.0.0.0”*
- module: ejabberd_c2s*
- max_stanza_size: 262144*
- shaper: c2s_shaper*
- access: c2s*
- starttls_required: true*
- #protocol_options: ‘TLS_OPTIONS’*
- -*
- port: 5223*
- ip: “0.0.0.0”*
- module: ejabberd_c2s*
- max_stanza_size: 262144*
- shaper: c2s_shaper*
- access: c2s*
- tls: false*
- #protocol_options: ‘TLS_OPTIONS’*
- -*
- port: 5269*
- ip: “::”*
- module: ejabberd_s2s_in*
- max_stanza_size: 524288*
- -*
- port: 5443*
- ip: “::”*
- module: ejabberd_http*
- tls: false*
- protocol_options: ‘TLS_OPTIONS’*
- request_handlers:*
-
/api: mod_http_api*
-
/bosh: mod_bosh*
-
/admin: ejabberd_web_admin*
-
## /captcha: ejabberd_captcha*
-
## /upload: mod_http_upload*
-
/ws: ejabberd_http_ws*
- -*
- port: 5280*
- ip: “::”*
- module: ejabberd_http*
- tls: false*
- protocol_options: ‘TLS_OPTIONS’*
- request_handlers:*
-
/admin: ejabberd_web_admin*
-
/.well-known/acme-challenge: ejabberd_acme*
- -*
- port: 1883*
- ip: “::”*
- module: mod_mqtt*
- backlog: 1000*
## Disabling digest-md5 SASL authentication. digest-md5 requires plain-text
## password storage (see auth_password_format option).
disable_sasl_mechanisms:
-
- “digest-md5”*
-
- “X-OAUTH2”*
s2s_use_starttls: required
## Store the plain passwords or hashed for SCRAM:
auth_password_format: scram
## Full path to a script that generates the image.
## captcha_cmd: “/usr/share/ejabberd/captcha.sh”
acl:
-
admin:*
-
user:*
-
- "admin@cacti.fnlab.com"*
-
- "admin1@cacti.fnlab.com"*
-
- "admin"*
-
- "admin1"*
-
local:*
-
user_regexp: “”*
-
loopback:*
-
ip:*
-
- 127.0.0.0/8*
-
- ::1/128*
access_rules:
- local:*
- allow: local*
- c2s:*
- deny: blocked*
- allow: all*
- announce:*
- allow: admin*
- configure:*
- allow: admin*
- muc_create:*
- allow: local*
- pubsub_createnode:*
- allow: local*
- trusted_network:*
- allow: loopback*
api_permissions:
- “console commands”:*
- from:*
-
- ejabberd_ctl*
- who: all*
- what: ""
- “admin access”:*
- who:*
-
access:*
-
allow:*
-
acl: loopback*
-
acl: admin*
-
oauth:*
-
scope: "ejabberd:admin"*
-
access:*
-
allow:*
-
acl: loopback*
-
acl: admin*
- what:*
-
- "*"*
-
- "!stop"*
-
- "!start"*
- “public commands”:*
- who:*
-
ip: 127.0.0.1/8*
- what:*
-
- status*
-
- connected_users_number*
shaper:
- normal: 1000*
- fast: 50000*
shaper_rules:
- max_user_sessions: 10*
- max_user_offline_messages:*
- 5000: admin*
- 100: all*
- c2s_shaper:*
- none: admin*
- normal: all*
- s2s_shaper: fast*
modules:
- mod_adhoc: {}*
- mod_admin_extra: {}*
- mod_announce:*
- access: announce*
- mod_avatar: {}*
- mod_blocking: {}*
- mod_bosh: {}*
- mod_caps: {}*
- mod_carboncopy: {}*
- mod_client_state: {}*
- mod_configure: {}*
-
mod_delegation: {} # for xep0356*
- mod_disco: {}*
- mod_echo: {}*
- mod_fail2ban: {}*
- mod_http_api: {}*
-
mod_http_upload:*
-
put_url: https://@HOST@:5443/upload*
- mod_last: {}*
-
mod_mam:*
-
## Mnesia is limited to 2GB, better to use an SQL backend*
-
## For small servers SQLite is a good fit and is very easy*
-
## to configure. Uncomment this when you have SQL configured:*
-
## db_type: sql*
-
assume_mam_usage: true*
-
default: always*
- mod_mqtt: {}*
- mod_muc:*
- access:*
-
- allow*
- access_admin:*
-
- allow: admin*
- access_create: muc_create*
- access_persistent: muc_create*
- access_mam:*
-
- allow*
- default_room_options:*
-
mam: true*
- mod_muc_admin: {}*
- mod_offline:*
- access_max_user_messages: max_user_offline_messages*
- mod_ping: {}*
- mod_pres_counter:*
- count: 5*
- interval: 60*
- mod_privacy: {}*
- mod_private: {}*
-
mod_proxy65:*
-
access: local*
-
max_connections: 5*
- mod_pubsub:*
- access_createnode: pubsub_createnode*
- plugins:*
-
- flat*
-
- pep*
- force_node_config:*
-
"eu.siacs.conversations.axolotl.*":*
-
access_model: open*
-
## Avoid buggy clients to make their bookmarks public*
-
storage:bookmarks:*
-
access_model: whitelist*
- mod_push: {}*
- mod_push_keepalive: {}*
-
mod_register:*
-
## Only accept registration requests from the “trusted”*
-
## network (see access_rules section above).*
-
## Think twice before enabling registration from any*
-
## address. See the Jabber SPAM Manifesto for details:*
-
## GitHub - JabberSPAM/jabber-spam-fighting-manifesto: Manifesto for Public Jabber server operators fighting against spam*
-
ip_access: trusted_network*
- mod_roster:*
- versioning: true*
- mod_s2s_dialback: {}*
- mod_shared_roster: {}*
- mod_sic: {}*
- mod_stream_mgmt:*
- resend_on_timeout: if_offline*
- mod_vcard:*
- search: false*
- mod_vcard_xupdate: {}*
- mod_version: {}*
### Local Variables:
### mode: yaml
### End:
### vim: set filetype=yaml tabstop=8
root@cacti:/etc/ejabberd#
GenieACS Side
root@genieacs2:~# cat /opt/genieacs/genieacs.env
GENIEACS_CWMP_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-cwmp-access.log
GENIEACS_NBI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-nbi-access.log
GENIEACS_FS_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-fs-access.log
GENIEACS_UI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-ui-access.log
GENIEACS_DEBUG_FILE=/var/log/genieacs/genieacs-debug.yaml
NODE_OPTIONS=–enable-source-maps
GENIEACS_EXT_DIR=/opt/genieacs/ext
GENIEACS_UI_JWT_SECRET=secret
GENIEACS_EXT_DIR=/opt/genieacs/ext
GENIEACS_UI_JWT_SECRET=secret
GENIEACS_XMPP_JID=acs@cacti.fnlab.com
GENIEACS_XMPP_PASSWORD=12345
root@genieacs2:~#
root@genieacs2:~# dig cacti.fnlab.com
; <<>> DiG 9.18.1-1ubuntu1.2-Ubuntu <<>> cacti.fnlab.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13914
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;cacti.fnlab.com. IN A
;; ANSWER SECTION:
cacti.fnlab.com. 3600 IN A 192.168.200.52
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Sat Dec 10 14:00:01 IST 2022
;; MSG SIZE rcvd: 60
root@genieacs2:~#
Rebuild with XMPP Brach
cd /opt/
mkdir XMPP
cd XMPP/
git clone GitHub - genieacs/genieacs: A fast and lightweight TR-069 Auto Configuration Server (ACS)
cd genieacs/
ls
git branch -a
git checkout -b remotes/origin/xmpp
npm install --unsafe-perm
npm run build
root@genieacs2:/opt/XMPP/genieacs# git status
On branch remotes/origin/xmpp
nothing to commit, working tree clean
root@genieacs2:/opt/XMPP/genieacs#
root@genieacs2:/opt/XMPP/genieacs# git branch -a
master
- remotes/origin/xmpp
remotes/origin/ChangeDUState
remotes/origin/HEAD → origin/master
remotes/origin/attributes
remotes/origin/master
remotes/origin/uploads
remotes/origin/v1.0
remotes/origin/v1.1
remotes/origin/xmpp
root@genieacs2:/opt/XMPP/genieacs#
root@genieacs2:/opt/XMPP/genieacs/dist/bin# ls -ltr
total 952
-rwxr-xr-x 1 root root 414729 Dec 10 11:18 genieacs-cwmp
-rwxr-xr-x 1 root root 2902 Dec 10 11:18 genieacs-ext
-rwxr-xr-x 1 root root 188676 Dec 10 11:19 genieacs-nbi
-rwxr-xr-x 1 root root 48783 Dec 10 11:19 genieacs-fs
-rwxr-xr-x 1 root root 309621 Dec 10 11:19 genieacs-ui
root@genieacs2:/opt/XMPP/genieacs/dist/bin#
sudo systemctl edit --force --full genieacs-cwmp
[Unit]
Description=GenieACS CWMP
After=network.target
[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
#ExecStart=/usr/bin/genieacs-cwmp
ExecStart=/opt/XMPP/genieacs/dist/bin/genieacs-cwmp
[Install]
WantedBy=default.target
sudo systemctl edit --force --full genieacs-nbi
[Unit]
Description=GenieACS NBI
After=network.target
[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
#ExecStart=/usr/bin/genieacs-nbi
ExecStart=/opt/XMPP/genieacs/dist/bin/genieacs-nbi
[Install]
WantedBy=default.target
sudo systemctl edit --force --full genieacs-ui
[Unit]
Description=GenieACS UI
After=network.target
[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
#ExecStart=/usr/bin/genieacs-ui
ExecStart=/opt/XMPP/genieacs/dist/bin/genieacs-ui
[Install]
WantedBy=default.target
sudo systemctl edit --force --full genieacs-fs
[Unit]
Description=GenieACS FS
After=network.target
[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
#ExecStart=/usr/bin/genieacs-fs
ExecStart=/opt/XMPP/genieacs/dist/bin/genieacs-fs
[Install]
WantedBy=default.target
root@genieacs2:~# systemctl status genieacs-cwmp.service
● genieacs-cwmp.service - GenieACS CWMP
Loaded: loaded (/etc/systemd/system/genieacs-cwmp.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-12-10 11:50:55 IST; 1h 51min ago
Main PID: 57078 (node)
Tasks: 55 (limit: 4578)
Memory: 283.9M
CPU: 10.019s
CGroup: /system.slice/genieacs-cwmp.service
├─57078 node /opt/XMPP/genieacs/dist/bin/genieacs-cwmp
├─57124 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-cwmp
├─57125 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-cwmp
├─57126 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-cwmp
└─57127 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-cwmp
Dec 10 11:50:55 genieacs2 systemd[1]: Started GenieACS CWMP.
Dec 10 11:50:56 genieacs2 genieacs-cwmp[57078]: 2022-12-10T06:20:56.120Z [INFO] genieacs-cwmp starting; pid=57078 version=“1.2.9+20221>
Dec 10 11:50:56 genieacs2 genieacs-cwmp[57078]: 2022-12-10T06:20:56.511Z [INFO] Worker listening; pid=57125 address=”::" port=7547
Dec 10 11:50:56 genieacs2 genieacs-cwmp[57078]: 2022-12-10T06:20:56.593Z [INFO] Worker listening; pid=57124 address=“::” port=7547
Dec 10 11:50:56 genieacs2 genieacs-cwmp[57078]: 2022-12-10T06:20:56.611Z [INFO] Worker listening; pid=57126 address=“::” port=7547
Dec 10 11:50:56 genieacs2 genieacs-cwmp[57078]: 2022-12-10T06:20:56.640Z [INFO] Worker listening; pid=57127 address=“::” port=7547
root@genieacs2:~#
root@genieacs2:~#
root@genieacs2:~#
root@genieacs2:~# systemctl status genieacs-ui.service
● genieacs-ui.service - GenieACS UI
Loaded: loaded (/etc/systemd/system/genieacs-ui.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-12-10 11:50:57 IST; 1h 51min ago
Main PID: 57348 (node)
Tasks: 55 (limit: 4578)
Memory: 224.0M
CPU: 10.947s
CGroup: /system.slice/genieacs-ui.service
├─57348 node /opt/XMPP/genieacs/dist/bin/genieacs-ui
├─57367 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-ui
├─57368 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-ui
├─57369 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-ui
└─57375 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-ui
Dec 10 11:50:57 genieacs2 systemd[1]: Started GenieACS UI.
Dec 10 11:50:57 genieacs2 genieacs-ui[57348]: 2022-12-10T06:20:57.590Z [INFO] genieacs-ui starting; pid=57348 version=“1.2.9+202212100>
Dec 10 11:50:58 genieacs2 genieacs-ui[57348]: 2022-12-10T06:20:58.011Z [INFO] Worker listening; pid=57368 address=”::" port=3000
Dec 10 11:50:58 genieacs2 genieacs-ui[57348]: 2022-12-10T06:20:58.012Z [INFO] Worker listening; pid=57367 address=“::” port=3000
Dec 10 11:50:58 genieacs2 genieacs-ui[57348]: 2022-12-10T06:20:58.026Z [INFO] Worker listening; pid=57375 address=“::” port=3000
Dec 10 11:50:58 genieacs2 genieacs-ui[57348]: 2022-12-10T06:20:58.063Z [INFO] Worker listening; pid=57369 address=“::” port=3000
root@genieacs2:~#
root@genieacs2:~#
root@genieacs2:~#
root@genieacs2:~#
root@genieacs2:~# systemctl status genieacs-nbi.service
● genieacs-nbi.service - GenieACS NBI
Loaded: loaded (/etc/systemd/system/genieacs-nbi.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-12-10 11:50:56 IST; 1h 51min ago
Main PID: 57160 (node)
Tasks: 55 (limit: 4578)
Memory: 156.2M
CPU: 5.212s
CGroup: /system.slice/genieacs-nbi.service
├─57160 node /opt/XMPP/genieacs/dist/bin/genieacs-nbi
├─57215 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-nbi
├─57217 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-nbi
├─57218 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-nbi
└─57219 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-nbi
Dec 10 11:50:56 genieacs2 systemd[1]: Started GenieACS NBI.
Dec 10 11:50:56 genieacs2 genieacs-nbi[57160]: 2022-12-10T06:20:56.604Z [INFO] genieacs-nbi starting; pid=57160 version=“1.2.9+2022121>
Dec 10 11:50:57 genieacs2 genieacs-nbi[57160]: 2022-12-10T06:20:57.021Z [INFO] Worker listening; pid=57217 address=”::" port=7557
Dec 10 11:50:57 genieacs2 genieacs-nbi[57160]: 2022-12-10T06:20:57.069Z [INFO] Worker listening; pid=57215 address=“::” port=7557
Dec 10 11:50:57 genieacs2 genieacs-nbi[57160]: 2022-12-10T06:20:57.137Z [INFO] Worker listening; pid=57218 address=“::” port=7557
Dec 10 11:50:57 genieacs2 genieacs-nbi[57160]: 2022-12-10T06:20:57.142Z [INFO] Worker listening; pid=57219 address=“::” port=7557
root@genieacs2:~#
root@genieacs2:~#
root@genieacs2:~#
root@genieacs2:~# systemctl status genieacs-fs.service
● genieacs-fs.service - GenieACS FS
Loaded: loaded (/etc/systemd/system/genieacs-fs.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-12-10 11:50:56 IST; 1h 51min ago
Main PID: 57254 (node)
Tasks: 55 (limit: 4578)
Memory: 146.6M
CPU: 4.964s
CGroup: /system.slice/genieacs-fs.service
├─57254 node /opt/XMPP/genieacs/dist/bin/genieacs-fs
├─57308 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-fs
├─57309 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-fs
├─57312 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-fs
└─57313 /usr/bin/node /opt/XMPP/genieacs/dist/bin/genieacs-fs
Dec 10 11:50:56 genieacs2 systemd[1]: Started GenieACS FS.
Dec 10 11:50:57 genieacs2 genieacs-fs[57254]: 2022-12-10T06:20:57.105Z [INFO] genieacs-fs starting; pid=57254 version=“1.2.9+202212100>
Dec 10 11:50:57 genieacs2 genieacs-fs[57254]: 2022-12-10T06:20:57.492Z [INFO] Worker listening; pid=57312 address=”::" port=7567
Dec 10 11:50:57 genieacs2 genieacs-fs[57254]: 2022-12-10T06:20:57.524Z [INFO] Worker listening; pid=57313 address=“::” port=7567
Dec 10 11:50:57 genieacs2 genieacs-fs[57254]: 2022-12-10T06:20:57.554Z [INFO] Worker listening; pid=57308 address=“::” port=7567
Dec 10 11:50:57 genieacs2 genieacs-fs[57254]: 2022-12-10T06:20:57.580Z [INFO] Worker listening; pid=57309 address=“::” port=7567
root@genieacs2:~#
**GenieACS Preset and provision **
Genie Inform Provision
// Device ID as user name
const username = declare(“DeviceID.ID”, {value: 1}).value[0]
// Password will be fixed for a given device because Math.random() is seeded with device ID by default.
//const password = Math.trunc(Math.random() * Number.MAX_SAFE_INTEGER).toString(36);
const informInterval = 10800;
//const itms = “something” // declared the itms
// Refresh values daily
const daily = Date.now();
// Unique inform offset per device for better load distribution
const informTime = daily % 86400000;
declare(“InternetGatewayDevice.ManagementServer.ConnectionRequestUsername”, {value: daily}, {value: “something”});
declare(“InternetGatewayDevice.ManagementServer.ConnectionRequestPassword”, {value: daily}, {value: “password”});
declare(“InternetGatewayDevice.ManagementServer.PeriodicInformEnable”, {value: daily}, {value: true});
declare(“InternetGatewayDevice.ManagementServer.PeriodicInformInterval”, {value: daily}, {value: informInterval});
declare(“InternetGatewayDevice.XMPP.Connection.*.Enable”, {path: daily, value: daily}, {value: true});
declare(“InternetGatewayDevice.XMPP.Connection.*.Username”, {path: daily, value: daily}, {value: “cpe”});
declare(“InternetGatewayDevice.XMPP.Connection.*.Password”, {path: daily, value: daily}, {value: “12345”});
declare(“InternetGatewayDevice.XMPP.Connection.*.Resource”, {path: daily, value: daily}, {value: “cpe”});
declare(“InternetGatewayDevice.XMPP.Connection.*.Domain”, {path: daily, value: daily}, {value: “cacti.fnlab.com”});
declare(“InternetGatewayDevice.ManagementServer.ConnReqAllowedJabberIDs”, {path: daily, value: daily}, {value: “acs@cacti.fnlab.com”});
Home Gateway to XMPP using name
** CPE to XMPP using Name**
CPE WAN Info
ACS Summon Home Gateway
ACS Summon CPE