Backend server setup
After installation, backend server configuration files are in /usr/local/FlashphonerWebCallServerOAM/conf folder:
#cd /usr/local/FlashphonerWebCallServerOAM/conf #ls log4j2.properties wcsoam-core.properties wcsoam.properties WCS-OAM.version wss.jks
Where
- log4j2.properties - backend server logging configuration
- wcsoam-core.properties - backend server JVM configuration
- wcsoam.properties - backend server main configuration file
- WCS-OAM.version - backend server version
- wss.jks - SSL certificate storage
To apply any configuration changes, backend server must be restarted.
Metrics storage DB connection setup
Influx BD connection setup
The following parameter in wcsoam.properties file should be set to allow to store metrics to Influx DB
influxdb_enabled=true
DB URL should be set for connection setup. By default, if Influx DB is on the same server, URL should be set as
influxdb_url=http://localhost:8086
DB name and access parameters should also be set
influxdb_database=wcs_oam influxdb_user=root influxdb_password=root
By default, WCS OAM connects to Influx DB via UDP:
influxdb_udp=true influxdb_udp_port=8089
In this case, metric values can be lost. To escape loss, metric values can be passed using HTTP POST query as follows
POST /write?u=root&p=root&db=wcs_oam&rp=default&precision=n&consistency=one HTTP/1.1 3-5062030c-9def-49c2-a89e-639d664ab806 AUDIO_CODEC=102i,AUDIO_LOST=3795015i,AUDIO_RATE=137776i,AUDIO_SYNC=123432141899i,seq=26558i 1562263828767000000
Metrics writing can be switched to HTTP with the following parameter
influxdb_udp=false
Anyway, metric values are read from Influx DB using HTTP GET query as follows
GET /query?u=root&p=root&db=wcs_oam&q=SELECT+*+FROM+%221-89dc5510-a198-11e9-a049-030fe6b5675c%22+order+by+time+desc+limit+10+offset+0 HTTP/1.1
Timescale DB connection setup
The following parameter in wcsoam.properties file should be set to allow to store metrics to Timescale DB
metric_store=timescale
DB URL and access parameters should be set for connection setup
timescale.url=jdbc:postgresql://127.0.0.1:5432/wcsstat timescale.username=wcsoam timescale.password=wcsoam
Connection tuning
Metric values batch size to write to DB can be set with the following parameter
timescale_batch_size=1000
In this case metrics will be written to DB in batches of 1000 values.
Stream history and data acquisition settings DB connection setup
History storage support is enabled with the following parameter
historydb_enabled=true
Using H2
If H2 connection is necessary, add to wcsoam.properties file the following
spring.h2.console.enabled=true spring.datasource.url=jdbc:h2:./wcs_oam spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.jpa.show-sql=false spring.jpa.hibernate.ddl-auto=update
Using Postgresql
To connect to Postgresql, add to wcsoam.properties file the following
spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/wcsoam spring.datasource.driver-class-name=org.postgresql.Driver spring.datasource.username=wcsoam spring.datasource.password=wcsoam spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect spring.jpa.show-sql=false spring.jpa.hibernate.ddl-auto=create spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
Where
- 'wcsoam' - database name, user name and password which are set for Posgresql
SQL DB connection tuning
Under high load, it may be necessary to change DB records queue size. It may be done with the following parameter
historydb_queue_size=3000
By default, queue size is 3000 records.
SQL queries logging
If necessary, SQL queries logging can be enabled for debug purposes using the following parameters in wcsoam.properties file
logging.level.org.hibernate.SQL=debug logging.level.org.hibernate.type.descriptor.sql=trace
Note that metrics store to TimescaleDB will also be logged in this case.
WCS interaction setup
By default, backend server listens to WCS server connections for metrics acquisition on TCP port 7777. This port can be changed with the following parameter
listening_port=7777
Connection authentication key should be set with the following parameter
security_key=123456789
By default, authentication key is set to 123.
Also, backend server connects to WCS server to get published stream data using REST API. WCS port to connect is set with the following parameter
wcs_rest_port=8081
Client connection setup
SSL configuration
Backend server allows client connections using HTTPS and Secure Websocket. SSL is configured with the following parameters
server.ssl.key-store-type=JKS server.ssl.key-store=file:/usr/local/FlashphonerWebCallServerOAM/conf/wss.jks server.ssl.key-store-password=password server.ssl.key-alias=selfsigned
Where
- server.ssl.key-store-type - SSL certificate storage type; only JKS is supported
- server.ssl.key-store - SSL certificate storage location
- server.ssl.key-store-password - SSL certificate storage password
- server.ssl.key-alias - domain name
By default, backend server is shipped with self-signed certificate. SSL certificate can be imported to backend server SSL storage using keytool in the same way as for WCS server. If wildcard certificate is used, and backend server is in the same domain with WCS server, WCS SSL storage file can be copied to backend server configuration folder, for example
cp -f /usr/local/FlashphonerWebCallServer/conf/wss.jks /usr/local/FlashphonerWebCallServerOAM/conf/
Port configuration
HTTPS port to handle REST queries, WSS connections and for web interface access is set with the following parameter
server.port = 8090
Backend server starting
Backend server can be started from /usr/local/FlashphonerWebCallServerOAM/bin folder
cd /usr/local/FlashphonerWebCallServerOAM/bin ./wcsoam start
or, if it was installed as system service
systemctl start wcsoam
Backend server stopping
Backend server can be stopped from /usr/local/FlashphonerWebCallServerOAM/bin folder
cd /usr/local/FlashphonerWebCallServerOAM/bin ./wcsoam stop
or, if it was installed as system service
systemctl stop wcsoam