Main commands to launch and check
After you activate the license, start WCS using the command:
sudo systemctl start webcallserver
Stopping the server is done with the command
sudo systemctl stop webcallserver
Here are a few ways to make sure the server has started and is ready to work:
1. Make sure the server process is running.
ps aux | grep WebCallServer
The console should display WCS Core process (11114 on the example below):
[root@localhost tmp]# ps aux | grep WebCallServer root 11114 1.5 57.1 3014240 1076652 ? Sl Jan18 124:45 java -Xmx1024M -XX:+UseConcMarkSweepGC -XX:NewSize=1024m -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=50999 -Djava.rmi.server.hostname=p11.flashphoner.com -XX:ErrorFile=/usr/local/FlashphonerWebCallServer/logs/error%p.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:/usr/local/FlashphonerWebCallServer/logs/gc-core-2019-01-18_18-19.log -XX:+ExplicitGCInvokesConcurrent -Dsun.rmi.dgc.client.gcInterval=36000000000 -Dsun.rmi.dgc.server.gcInterval=36000000000 -Dcom.flashphoner.fms.AppHome=/usr/local/FlashphonerWebCallServer -Djava.library.path=/usr/local/FlashphonerWebCallServer/lib/so:/usr/local/FlashphonerWebCallServer/lib -DWCS_NON_ROOT=false -DsessionDebugEnabled=false -Djdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2" -cp /usr/local/FlashphonerWebCallServer/lib/* com.flashphoner.server.Server root 17709 0.0 0.0 112704 976 pts/0 S+ 12:42 0:00 grep --color=auto WebCallServer [root@localhost tmp]#
2. Make sure the server process listens the main ports.
netstat -nlp | grep java [root@localhost tmp]# netstat -nlp | grep java tcp 0 0 0.0.0.0:554 0.0.0.0:* LISTEN 11114/java tcp 0 0 0.0.0.0:1098 0.0.0.0:* LISTEN 11114/java tcp 0 0 0.0.0.0:843 0.0.0.0:* LISTEN 11114/java tcp 0 0 0.0.0.0:1935 0.0.0.0:* LISTEN 11114/java tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 11114/java tcp 0 0 0.0.0.0:2001 0.0.0.0:* LISTEN 11114/java tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 11114/java tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 11114/java tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 11114/java tcp 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN 11114/java tcp 0 0 0.0.0.0:8444 0.0.0.0:* LISTEN 11114/java tcp 0 0 0.0.0.0:8445 0.0.0.0:* LISTEN 11114/java tcp 0 0 0.0.0.0:9091 0.0.0.0:* LISTEN 11114/java udp 0 0 0.0.0.0:1935 0.0.0.0:* 11114/java
If you used a standard number of ports, you should see ports 8080 (Websockets) and 1935 (RTMP) as well as other port you configured for the WCS server in the netstat listened ports output.
3. Make sure the WCS server writes the main server log.
tail -f /usr/local/FlashphonerWebCallServer/logs/server_logs/flashphoner.log
The log should display information about settings the server started with.
For example:
18:29:51,945 INFO SettingsLoader - main Override setting allow_outside_codecs: from true to false 18:29:51,974 INFO SettingsLoader - main Override setting codecs: from null to opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,h264,vp8,flv,mpv 18:29:51,975 INFO SettingsLoader - main Override setting media_port_from: from 31001 to 31001 18:29:51,978 INFO SettingsLoader - main Override setting keep_alive.enabled: from websocket,rtmp,rtmfp to websocket,rtmfp 18:29:51,978 INFO SettingsLoader - main Override setting webrtc_cc_min_bitrate: from 30000 to 3000000 18:29:51,979 INFO SettingsLoader - main Override setting codecs_exclude_sip: from null to mpeg4-generic,flv,mpv,opus,ulaw,h264,g722,g729 18:29:51,979 INFO SettingsLoader - main Override setting wss.port: from 8443 to 8443 18:29:51,980 INFO SettingsLoader - main Override setting codecs_exclude_sip_rtmp: from null to opus,g729,g722,mpeg4-generic,vp8,mpv 18:29:51,980 INFO SettingsLoader - main Override setting codecs_exclude_streaming: from null to telephone-event 18:29:51,980 INFO SettingsLoader - main Override setting webrtc_cc_max_bitrate: from 10000000 to 7000000 18:29:51,980 INFO SettingsLoader - main Override setting ip: from 0.0.0.0 to 192.168.1.5 18:29:51,980 INFO SettingsLoader - main Override setting client_log_level: from INFO to DEBUG 18:29:51,980 INFO SettingsLoader - main Override setting ip_local: from 0.0.0.0 to 192.168.1.5 18:29:51,980 INFO SettingsLoader - main Override setting media_port_to: from 32000 to 32000 18:29:51,981 INFO SettingsLoader - main Override setting ws.port: from 8080 to 8080
Logs should react on connection of web clients. If that does not happen during testing, make sure the server process is running and the web client is configured properly to connect this particular server. See the Troubleshooting section for additional information.
If the server process is running and logs have no error, this means the WCS server is ready to work and you can start testing it.
All the ways to start WCS
Starting the server is performed with this command:
sudo systemctl start webcallserver
Since build 5.2.801, WCS is starting as service from flashphoner user for better security
Besides, you can start the server using:
cd /usr/local/FlashphonerWebCallServer/bin sudo ./webcallserver start
In builds 5.2.840 - 5.2.863 this command starts WCS also from flashphoner user.
Environment variables setup
Environment variables and parameters of the start are set in the setenv.sh script. In this script you can se additional parameters for WCS Core and WCS Manager. Also, here you can set the parameter that prevent memory leaks on multi-CPU systems:
MALLOC_ARENA_MAX=4
Starting with stdout output
In some cases, for example, if the server won't start and does not produce any errors, you may need to start the server with direct logging to the 'stdout' console. Direct output to stdout cannot be used in production, because the server will be stopped if the console is closed or the SSH connection is lost. That is why we recommend using stdout output only for debug purposes.
To start the server in this mode, use the following command:
cd /usr/local/FlashphonerWebCallServer/bin sudo ./webcallserver start standalone
Launching with different user permissions
Since build 5.2.864, the permissions to launch WSC are defined as follows:
1. The command
sudo systemctl start webcallserver
starts WCS always from flashphoner user, if the user exists in system
2. The command
./webcallserver start
starts WCS from root when executing from root
sudo ./webcallserver start
or from flashphoner user, when executing from other non-root user
This affects the stanadlone mode too
./webcallserver start standalone
JVM parameters
Parameters are set in the wcs-core.properties file.
Additional launching options can be set in bin/setenv.sh file using the following varaibles:
WCS_JAVA_OPTS - the list of options for WCS Core
JVM parameters are checked for compatibility with current Java version on startup. The error messages are written to /usr/local/FlashphonerWebCallServer/logs/startup.log file if JVM cannot start with parameters specified.