Skip to end of metadata
Go to start of metadata

Основные команды и контроль запуска

После активации лицензии запустите WCS командой

sudo systemctl start webcallserver

Остановка сервера выполняется командой

sudo systemctl stop webcallserver

Есть несколько способов убедиться в том, что сервер стартовал и готов к работе:

1.Убедитесь, что серверный процесс работает.

ps aux | grep WebCallServer

В консоли должен отобразиться процесс WCS Core (11114 на примере ниже):

[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. Убедитесь, что серверный процесс слушает основные порты.

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

Если вы использовали стандартный набор портов, в выводе слушаемых портов, командой netstat, должны появится порты 8080 (Websockets) и 1935 (RTMP) или другие порты, которые вы сконфигурировали для WCS сервера.

3. Убедитесь, что WCS сервер пишет основной серверный лог Ядра.

tail -f /usr/local/FlashphonerWebCallServer/logs/server_logs/flashphoner.log

В логе должна появиться информация о настройках, с которыми стартовал сервер.

Пример:

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

Логи должны реагировать на соединения web-клиентов. Если при тестировании этого не происходит, убедитесь что серверный процесс работает и web-клиент корректно настроен на соединение именно с этим сервером. См. раздел Возможные неисправности и способы их устранения для получения дополнительной информации.

Если серверный процесс запущен и в логах нет ошибок, это означает что WCS сервер готов к работе и можно начинать тестирование.

Способы запуска

Запуск сервера осуществляется командой:

sudo systemctl start webcallserver

Начиная со сборки 5.2.801, WCS запускается как сервис от пользователя flashphoner для большей безопасности.

Кроме этого запуск может быть осуществлен командой:

cd /usr/local/FlashphonerWebCallServer/bin
sudo ./webcallserver start

В сборках 5.2.840 - 5.2.863 эта команда запускает WCS также от пользователя flashphoner.

Настройка переменных окружения

Подготовка запуска и переменных окружения происходит в скрипте setenv.sh. В этом скрипте могут быть заданы дополнительные параметры для WCS Core. Кроме того, здесь же задается параметр, предотвращающий утечки памяти на многопроцессорных системах:

MALLOC_ARENA_MAX=4

Запуск с выводом в stdout

В некоторых случаях, например когда сервер не стартует и не выдает никаких ошибок, требуется запуск с прямым логгированием в консоль 'stdout'. Прямой вывод в stdout не может использоваться в production т.к. при закрытии консоли или потере SSH-соединения сервер будет остановлен. Поэтому рекомендуется использовать вывод stdout только в целях отладки.

Для того чтобы запустить сервер в данном режиме, необходимо выполнить команду:

cd /usr/local/FlashphonerWebCallServer/bin
sudo ./webcallserver start standalone

Запуск с различными правами пользователя

Начиная со сборки 5.2.864, права, с которыми запускается WCS, подчиняются следующей логике:

1. Команда

sudo systemctl start webcallserver

запускает WCS всегда от пользователя flashphoner, если он есть в системе

2. Команда

./webcallserver start

запускает WCS от пользователя root, если она выполнена с правами root, например.

sudo ./webcallserver start

или от пользователя flashphoner, если запущена другим пользователем

Это касается и запуска с выводом на консоль

./webcallserver start standalone

Параметры JVM

Параметры задаются в файле wcs-core.properies.

Дополнительные опции запуска могут быть также добавлены в файле bin/setenv.sh в следующие переменные:

WCS_JAVA_OPTS - список опций для WCS Core

При запуске параметры JVM проверяются на совместимость с текущей установленной версией Java. Если JVM не может стартовать с заданными параметрами, информация об этом выводится в файл /usr/local/FlashphonerWebCallServer/logs/startup.log