Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

falseIntegerhttp://localhost:8123/wcs?

Option

Default

Type

Need restart

Description

aac_bitrate

128000

Integer

false

AAC encoding bitrate

aac_encoder_sync_drop_threshold

1000

Long

true

JitterBuffer will be reset upon reaching this number of dropped sync packets

aac_test_start_codec

20

Integer

true

AAC test codecs count

aac_test_transcode_iterations

1000

Integer

true

AAC test interval

add_register_auth_headers

false

Boolean

false

If true, then add Authorization header in REGISTER request when first registering.
Some SIP servers are configured so that they do not accept such requests. In that case this setting should be set to false''

agent_set_local_session_debug

false

Boolean

false

If true, enable local agent session debug

agent_use_subscriber_listener

true

Boolean

false

If true, does the agent have to wait for the subscriber

allow_domains

null

String

false

If set, then WebSocket connections from these domains only will be allowed

allow_domains_allow_empty_origin

true

Boolean

false

If set, then WebSocket connections with empty origin will be allowed

allow_outside_codecs

true

Boolean

false

If false, dont add outside (browser) codecs to SDP'

allow_reinvite_in_hold_state

true

Boolean

false

If true, process re-INVITE requests within the session even if the call is in hold state

allow_stream_names

*

String

false

If set, then client stream name from these stream names only will be allowed

answer_with_one_codec_in_sdp

false

Boolean

false

If true, answer with one codec only in SDP.
It can be useful in cases of improper operation of SIP equipment from some vendors, which incorrectly interpret two or more codecs in SDP during a connection establishment in Offer-Answer model

audio_force_sync_timeout

100

Integer

false

Waiting for RTCP sync packet on this interval in ms, for audio

audio_frames_per_packet

6

Integer

false

RTMFP. Audio will be flushed after this number of audio frames in the packet is reached

audio_incoming_min_buffer_size

2

Integer

false

Waiting for RTCP sync packet at least on this interval in packets, for audio

audio_mixer_max_delay

300

Integer

false

Audio mixer max delay in milliseconds

audio_mixer_output_channels

1

Integer

false

Audio mixer output channels, default is 1 channel, mono

audio_mixer_output_codec

opus

String

false

Audio mixer output codec (multiple codecs not allowed)

audio_mixer_output_sample_rate

48000

Integer

false

Audio mixer output samle rate in Hz

audio_reliable

partial

on
partial
off

false

RTMFP, reliability for audio

audio_stream_mode_udp

true

Boolean

true

Not in use

auto_login_url

null

String

false

Not in use

av_paced_sender

false

Boolean

false

If true, enable paced sender for output stream. EXPERIMENTAL

av_paced_sender_max_buffer_size

5000

Integer

false

Max size of audio or video buffer. Once size is reached buffers are cleared

avatar_dir

avatar

String

true

Avatar base folder

avcc_buffer_wait_frames_count

5

Integer

false

Wait until the buffer is filled with frames

avcc_send_buffer_size

500000

Integer

false

Avcc send buffer size in bytes

aws_s3_credentials

null

String

true

AWS s3 credentials: region;accessKey;secretKey

balance_header

balance

String

false

This SIP header will be sent to client as a balance

burst_avoidance_count

100

String

false

Burst avoidance count

busy_state

null

String

false

Used if send_busy_when_on_call=true, and an incoming call comes during another established call. Caller will receive this status.
If true, the value of ip_local= setting will be used in SIP and SDP. If false, then the value of ip= will be used

call_record_listener

com.flashphoner.server.client.DefaultCallRecordListener

String

false

Full name of Java class that implements interface ICallRecordListener
public interface ICallRecordListener {
void onRecordReport(RecordReport recordReport);
}

case_sensitive_auth_match

true

Boolean

false

If false, ignore case on url auth

cdn_advertise_pulled

false

Boolean

true

If true, pulls CDN advertise

cdn_advertise_streams_by_kframe

false

Boolean

false

Advertise stream to CDN by key frame

cdn_allowed_ips

ArrayList

true

Comma-separated list of allowed IPs or networks for CDN.
Example: 88.198.98.1/24, 88.198.99.219

cdn_auto_pull

false

Boolean

true

Pull CDN stream once it becomes available

cdn_connection_quality_calculation_timeout_ms

10000

Integer

true

Connection quality calculation update timeout ms

cdn_connection_tcp_no_delay

true

Boolean

true

Turns on tcp no delay for CDN signalling connections

cdn_controller_request_timeout

5000

Integer

true

Timeout for requests sent to CDN controller

cdn_controller_response_cache_expire

10000

Integer

true

TTL for cached records received from CDN controller

cdn_dtls_force_version_0

false

Boolean

false

Force DTLS version 1.0 inside cdn

cdn_enabled

false

Boolean

true

If true, enables CDN

cdn_force_version

2.0

String

true

Force to set CDN version

cdn_group_origin_to_transcoder_relation

false

Boolean

true

Use CDN group indications to relate origin to transcoder rather than transcoder to edge

cdn_groups

ArrayList

true

CDN groups for this node

cdn_inbound_auditor_interval

1000

Integer

true

Time interval to check inbound connections, in milliseconds

cdn_inbound_connection_unanswered_pings

3

Integer

true

Inbound connection unanswered pings number.
Connection considered to be lost when this number is reached

cdn_inbound_ws_read_socket_timeout

true

Boolean

true

Enable WebSocket read timeout for inbound cdn connactions

cdn_inbound_ws_read_socket_timeout_sec

60

Integer

true

WebSocket read timeout value (if enabled) for inbound cdn connections

cdn_ip

null

String

true

CDN node IP address (or domain name when cdn_nodes_resolve_ip=true)

cdn_load_interval

500

Integer

true

load interval

cdn_load_node

false

Boolean

true

Turn on cdn load behaviour

cdn_load_pool_size

500

Integer

true

load pool

cdn_load_pool_size_change_interval

-1

Integer

true

Change pool size every interval

cdn_load_pool_size_lower_threshold

-1

Integer

true

Lower threshold for pool size change

cdn_load_pool_size_upper_threshold

-1

Integer

true

Upper threshold for pool size change

cdn_load_proto_pull

websocket

String

true

CDN load protocol stream

cdn_load_reserved_stream

String

true

CDN load reserved stream

cdn_load_step

10

Integer

true

load step

cdn_load_unique_streams

false

Boolean

true

Pull only unique streams

cdn_load_use_profile_name

false

Boolean

true

Put profile name in stream name. Use if entry point is edge

cdn_load_use_profiles

false

Boolean

true

Pull with profiles

cdn_node_load_average_threshold

1.0

Double

true

If threshold reached node will advertise it's state as GROUP_CONNECTIONS

cdn_nodes_acl_refresh_interval

60000

Integer

true

Time interval to refresh CDN node acl list, in milliseconds

cdn_nodes_auditor_interval

1000

Integer

true

Time interval to check available CDN nodes, in milliseconds

cdn_nodes_group_refresh_interval

60000

Integer

true

Time interval to refresh CDN node group, in milliseconds

cdn_nodes_on_single_server

false

Boolean

true

If true, cdn nodes can be located on single server

cdn_nodes_resolve_ip

false

Boolean

true

If true, resolve CDN node domain names to IP addresses

cdn_nodes_role_refresh_interval

60000

Integer

true

Time interval to refresh CDN node role, in milliseconds

cdn_nodes_route_refresh_interval

60000

Integer

true

Time interval to refresh CDN routes, in milliseconds

cdn_nodes_state_refresh_interval

60000

Integer

true

Time interval to refresh CDN node state, in milliseconds

cdn_nodes_timeout

-1

Integer

true

CDN nodes timeout in seconds. -1 means nodeTimeout disabled

cdn_nodes_version_refresh_interval

90000

Integer

true

Time interval to refresh CDN node version, in milliseconds

cdn_origin_allowed_to_transcode

false

Boolean

true

In case no transcoders left node will request transcoding profile from origin

cdn_origin_to_origin_route_propagation

false

Boolean

true

If true, origin sends routes to other origins

cdn_outbound_auditor_interval

2000

Integer

true

Time interval to check outbound connections, in milliseconds

cdn_outbound_connection_timeout

6000

Integer

true

Outbound connection timeout, in milliseconds

cdn_outbound_ws_read_socket_timeout

true

Boolean

true

Enable WebSocket read timeout for outbound cdn connactions

cdn_outbound_ws_read_socket_timeout_sec

60

Integer

true

WebSocket read timeout value (if enabled) for outbound cdn connections

cdn_point_of_entry

String

true

CDN point of entry node IP address (or domain name when cdn_nodes_resolve_ip=true)

cdn_port

8084

Integer

true

CDN server port

cdn_role

EDGE

ORIGIN
EDGE
TRANSCODER
CONTROLLER

true

CDN role:
origin - the source of media streams for other CDN nodes
edge (default) pulls media streams from origin CDN node(s)

cdn_role_strict

false

Boolean

false

If true, sets restrictions on publishing streams by role

cdn_role_strict_stream_name

null

String

false

Reserved name for setting cdn_role_strict bypass

cdn_skip_pulled_streams

true

Boolean

true

If true, skip pulled streams

cdn_ssl

false

Boolean

true

If true, enables SSL

cdn_standalone

false

Boolean

true

If true, start server in CDN standalone mode, streaming will not available

cdn_strict_transcoding_boundaries

false

Boolean

true

Prevent transcoding to the same or higher resolution of original stream by placing resolution boundary

cdn_strict_transcoding_throws_exception

false

Boolean

true

Whether to fail play or substitute requested profile with original stream if profile hit the strict transcoding boundary

cdn_test_enabled

false

Boolean

true

Turn on cdn tests

cdn_test_interval

500

Integer

true

test interval

cdn_test_max_subscribers_for_stream

10

Integer

true

Max subscribers for each CDN stream. Edge-only setting

cdn_test_pool_size

500

Integer

true

test pool

cdn_test_step

10

Integer

true

test step

cdn_transcoder_degraded_streams_threshold

-1

Integer

true

If threshold reached node will advertise it's state as GROUP_CONNECTIONS. Threshold is the percent of degraded streams

cdn_transcoder_for_new_connects_expire

10000

Integer

true

CDN transcoder cache expire for new stream requests

cdn_transcoder_threshold_state

GROUP_CONNECTIONS_ALLOWED

UNKNOWN
PASSIVE
GROUP_CONNECTIONS_ALLOWED
CONNECTIONS_ALLOWED
NEW_STREAMS_ALLOWED

true

If threshold reached node will change state to provided value

cdn_transcoder_video_decoders_load_threshold

-1

Integer

true

If decoders load threshold reached node will advertise it's state as GROUP_CONNECTIONS. Threshold is the sum of decoderWidth*decoderHeight*decoderFPS

cdn_transcoder_video_encoders_load_threshold

-1

Integer

true

If encoders load threshold reached node will advertise it's state as GROUP_CONNECTIONS. Threshold is the sum of encoderWidth*encoderHeight*encoderFPS

cdn_transcoder_video_encoders_threshold

10000

Integer

true

If threshold reached node will advertise it's state as GROUP_CONNECTIONS

cdn_transport

udp

String

true

CDN internal transport (udp, tcp, srt)

chat_listener

null

String

false

Full name of Java class that implements interface IChatListener
public interface IChatListener {
void onMessage(InstantMessage message);
}

check_receiver_origin

false

Boolean

false

If true, check origin of RTCP packet and discard if unknown

cli.address

localhost

String

true

Listening address for CLI SSH server

cli_auth_keys

/usr/local/FlashphonerWebCallServer/.ssh/authorized_keys

String

true

CLI client auth keys file path

cli_auth_server_keys

/usr/local/FlashphonerWebCallServer/conf/cli-hostkey.pem

String

true

CLI host identification key file path

cli_enabled

true

Boolean

true

If true, enables CLI

cli_port

2001

Integer

true

CLI server port

cli_v2.address

localhost

String

true

Listening address for CLI_V2 SSH server

cli_v2_port

2002

Integer

true

CLI V2 server port

client_acl_property_name

aclAuth

String

true

Access list identifier property key that server should look for in custom config when client connects

client_appkey_property_name

appKey

String

true

Property name to get application name used in authentication

client_dump_level

0

Integer

false

If tcpdump is installed in the system, it will be started and will capture client session traffic:
0 - do not capture traffic
1 - capture SIP traffic only
2 - capture SIP and media traffic: ICE, RTP, SRTP, RTCP, WebRTC

client_handler

null

String

true

Not in use

client_log_exclude

String

false

Do not log events listed

client_log_force_debug

false

Boolean

false

Enable client logs for every newly connected client for a period of time specified by client_log_force_debug_timeout regardless of other settings

client_log_force_debug_timeout

60

Integer

false

Timeout after which client logs will be turned off

client_log_level

INFO

String

false

Log4j level.
Logs related to client sessions will be recorded on the server in /usr/local/FlashphonerWebCallServer/logs/client_logs directory with the set logging level.
Will work only if enable_extended_logging=true

client_mode

true

Boolean

false

If true, the value of ip_local= setting will be used in SIP and SDP. If false, then the value of ip= will be used

client_subscribe_streams_max

10

Integer

false

Max subscribe streams allowed for client

client_timeout

3600000

Integer

false

Client timeout value in milliseconds

client_timeout_check_interval

300000

Integer

false

Client timeout interval value in milliseconds

codec_terminator_timeout

5000

Integer

false

Codec release timeout, in seconds.
Default: If codec has been marked as terminated, and if no new packets went through this codec in 5 seconds, the codec will be released

codecs

null

String

false

List of supported codecs ordered by priority

codecs_exclude_cdn

null

String

false

Comma-separated list of codecs which will not be used for CDN

codecs_exclude_sfu

alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,h265,flv,mpv,vp9,h264

String

false

Comma-separated list of codecs which will not be used for SIP as RTMP case

codecs_exclude_sip

null

String

false

Comma-separated list of codecs which will not be used for SIP phone cases

codecs_exclude_sip_rtmp

null

String

false

Comma-separated list of codecs which will not be used for SIP as RTMP case

codecs_exclude_streaming

null

String

false

Comma-separated list of codecs which will not be used for streaming

compact_media_port_usage

false

Boolean

true

Use odd media ports for transferring data (requires rtcpMux)

complex_test_config

String

false

Complex transcoder test configuration

complex_test_decode

false

Boolean

false

Enable decoding during complex transcoding test

complex_test_fps

15

Integer

true

Complex transcoder test FPS

complex_test_replay

3

Integer

true

Complex transcoder test repeats count

complex_test_thread

3

Integer

true

Complex transcoder test threads count

core_standalone_web_dir

null

String

false

Web directory for standalone mode

cost_header

cost

String

false

This SIP header will be sent to client as a call cost

cps_client

null

String

false

Comma-separated list of IPs or networks with corresponding CPS limits.
Example: 192.168.88.2:10,192.168.88.0/16:15

cps_interval

1000

Long

false

Time window for measuring CPS, in milliseconds

cps_node

2147483647

Integer

false

Global CPS limitation for node

cpu_load_avg_size

20

Integer

true

CPU load average size

cpu_load_refresh

50

Integer

true

CPU load refresh rate

cpu_load_reject

false

Boolean

false

If true, reject streams when CPU load exceeds treshold

cpu_load_threshold

80

Integer

true

CPU load treshold

cpu_load_window

2000

Integer

true

Timeslice to estimate CPU load

custom_ice_agent

true

Boolean

false

If true, use custom ICE agent

custom_stats_script

String

false

Script can be used to provide custom stat params with action=stat request

custom_watermark_filename

null

String

false

Sets custom PNG file for watermark. The file should be placed in /usr/local/FlashphonerWebCallServer/conf directory. The feature is not available for Trial license

custom_watermark_mix

false

Boolean

false

Enables watermark mixing for alpha-layer

data_packet_decoder_fire_null_messages

true

Boolean

false

If true, pass special data packet up the RTP process chain when original received data failed to decode

decoded_frame_interceptor

null

String

false

Full name of Java class that implements interface IDecodedFrameInterceptor. This class should be wrapped to .jar file placed in /usr/local/FlashphonerWebCallServer/lib directory

decoded_pcm_interceptor

null

String

false

Full name of Java class that implements interface IDecodedPcmInterceptor. This class should be wrapped to .jar file placed in /usr/local/FlashphonerWebCallServer/lib directory

decoder_binary_log_enable

false

Boolean

false

Binary log decoder

decoder_binary_log_size

5

Integer

true

Binary log decoder size

decoder_buffer_pool

false

Boolean

true

Enable buffer pool usage during video decoding

decoder_buffer_pool_stats

false

Boolean

false

Enable buffer pool stats, might slow down video transcoding

decoder_mode

JNI

QUEUE
JNI

false

Decoder mode

decoder_priority

FF,OPENH264

String

false

Decoder priority

decoder_stat_log

false

Boolean

false

Enable decoder statistics logging

default_packetization_mode

0

Integer

false

Packetization mode default value if incoming SDP doesn't contains packetization_mode parameter.

default_sdp_state

sendrecv

String

false

If SDP from SIP side comes without sendrecv, recvonly, or sendonly attribute, then it is assumed that the attribute defined in this setting was received

degraded_streams_threshold

20

Integer

true

Degraded streams threshold

degraded_streams_window

2000

Integer

true

Timeslice to estimate stream degradation

delta_threshold

100

Integer

false

RTMFP. If delta between UDP media packets is greater than the threshold, it will be reported

depacketizer_dump_dir

depacketizer_dump_dir

String

true

H264 RTP stream dump base folder

detect_flash_2_flash_calls

true

Boolean

false

If true, WCS server will use an RTP extension header in RTP packets, which can be used for designation of WCSs own streams, even if they are traced through third-party PBX, e.g. Asterisk'

disable_drop_aac_frame

true

Boolean

false

If true, disables dropping AAC frames

disable_manager_rmi

true

Boolean

true

If true, disables RMI communications between WCS Core and WCS Manager

disable_rest_auth

true

Boolean

false

If true, disables authorization in rest api

disable_rest_requests

false

Boolean

true

If true, disables Rest requests to application

disable_rtc_ata

null

String

false

By default WCS server will try to avoid transcoding and send its supported codec to the other side, even if codecs will be chosen asymmetrically. This behaviour is called Avoid Transcoding Algorithm (ATA).
This option defines comma-separated list of SIP User Agents, for which the algorithm will be disabled. It means that if codecs are asymmetrical, then for these User Agents transcoding will proceed

disable_rtc_avoid_transcoding_alg

false

Boolean

false

If true, disables RTC ATA (see above)

disable_streaming_proxy

false

Boolean

false

If true, disable proxy and enable transcoding for all streams. For debug only

disable_streaming_proxy_aac

false

Boolean

false

If false, enable AAC proxying

dns_test_enable

false

Boolean

true

Enable dns test statistic

dns_test_name

String

true

DNS name for time resolved statistic

domain

null

String

false

SIP domain. If this parameter is set, it will redefine values that were transmitted during connection

dtls0_ua_match_substring

false

Boolean

false

If true, DTLS User-Agent matching will be by substring. Ex: Chrome/70.0

dtls_close_socket_after_tries

10

Integer

false

Disable / enable DTLS session termination after the specified number of connection attempts.
By default, DTLS session will not be terminated: dtls_close_socket_after_tries=0

dtls_force_version_0

false

Boolean

false

Force DTLS version 1.0

dtls_message_timeout

15

Integer

false

DTLS handshake timeout in seconds, must be set to a non-zero value

dtls_socket_timeout_ms

1000

Integer

false

DTLS socket SO_TIMEOUT in milliseconds. With this option set to a non-zero value, a read() call on the InputStream associated with this Socket will block for only this amount of time

dtls_use_socket_timeout

true

Boolean

false

If true, enable DTLS socket SO_TIMEOUT

dtmf

null

String

false

This type will be used if DTMF type (INFO, INFO_RELAY, RFC2833) was not specified when DTMF was sent

dump_avcc_relay

false

Boolean

false

If true, write outgoing MSE packets to file. That file can afterwards be processed as VoD at client side. Used for MSE development tests

enable_candidate_harvester

false

Boolean

false

If true, gather ICE candidates using external STUN server

enable_empty_shift_writer

false

Boolean

false

Enable empty shift writer for conference

enable_extended_logging

true

Boolean

false

When extended logging is enabled, these settings are used:
- client_log_level
- client_dump_level
Then logs for all client sessions are saved in /usr/local/FlashphonerWebCallServer/logs/client_logs directory

enable_flight_recorder

false

Boolean

false

Enable flight recorder

enable_flight_recorder_test

false

Boolean

false

Enable flight recorder test

enable_hardware_acceleration

false

Boolean

true

Enable hardware acceleration for transcoding

enable_local_videochat

false

Boolean

false

Not in use

enable_network_address_cache

false

Boolean

true

Enable cache for resolved addresses.

enable_new_client_logger

true

Boolean

false

If true, enable new client logger

enable_rtc_video_generator

false

Boolean

false

Designed to avoid video negotiation issue in SIP cases. If true, generated video will be sent once session is established. It is a workaround and should not be used in normal situation

enable_sip_stack_thread_audit

true

Boolean

false

If true, enable audit of SIP stack

enable_sync_time_normalizer

false

Boolean

true

If true, then enable sync time normalizer

encode_record_name

null

String

true

Encode record name setting

encoder_buffer_length_sec

1

Integer

false

Encoding buffer for audio, in seconds

encoder_default_video_resolution

640x480

String

false

encoder_default_video_resolution

encoder_mode

JNI

QUEUE
JNI

Encoder mode

encoder_priority

FF,OPENH264

String

false

Encoder priority

encoder_stat_log

false

Boolean

false

Enable encoder statistics logging

event_scanner_cached_pool

false

Boolean

false

If true, use event scanner cached pool

event_scanner_pool_size

10

Integer

false

Event scanner pool size

exclude_record_name_characters

null

String

true

Exclude characters from record name

fetch_caller_from_pai

false

Boolean

false

If true, then for an incoming call the caller should be taken from PAI (P-Asserted-Identity) header. If that header is empty, the caller will be displayed as Unknown/Anonymous

fetch_caller_from_pai_set_from_if_empty

false

Boolean

false

If true, fetch caller from PAI from' when caller is empty'

file_recorder_error_interval

60

Integer

false

Error counter's interval in minutes

file_recorder_max_errors_per_interval

3

Integer

false

Max errors per interval

file_recorder_min_space

1g

String

false

Minimum available disk space for recording in GiB(G|g), MiB(M|m) or KiB(K|k). By default, GiB is used if no suffix specified

file_recorder_thread_pool_max_size

4

Integer

true

Maximum core threads count in record thread pool

file_recorder_thread_queue_initial_size

50

Integer

true

Initial size of queue of samples in record thread pool

flash_codecs

alaw,ulaw,speex16,h264,vp8

String

false

This set of codecs (if it is not empty) will be used if either party of a call is Flash

flash_detect_metadata_by_traffic

true

Boolean

false

If true try to detect flash SDP by incoming traffic

flash_detect_metadata_by_traffic_timeout

1000

Integer

false

Traffic metadata waiting time (ms), if no metadata has been received after this time, the media (video or audio) will be excluded from the SDP.

flash_handler_play_sdp_filename

flash_handler_play.sdp

String

true

Filename of RTMP subscriber sdp

flash_handler_publish_sdp_filename

flash_handler_publish.sdp

String

true

Filename of RTMP publisher sdp

flash_policy.port

843

Integer

true

Listening port for flash policy requests to crossdomain.xml file

flash_rtp_activity_enabled

false

Boolean

false

If true, enable RTP activity for Flash streams

flash_streaming_enable

true

Boolean

false

Not in use

flight_recorder_capacity

500

Integer

false

Flight recorder's buffer capacity in records

flight_recorder_categories

NONE

NONE
WCS1438

true

Flight recorder categories

flush_audio_interval

80

Integer

true

RTMFP flush interval in milliseconds for flash-audio data from server

flush_video_interval

0

Integer

true

RTMFP flush interval in milliseconds for flash-video data from server

force_client_requested_video_resolution

true

Boolean

false

If true, use client-specified resolution passed in Stream object

force_expires

-1

Integer

false

If this parameter is set, WCS server will assume that Expires header had this value in 200 OK received in response to SIP REGISTER request

force_local_audio_codec

null

String

false

This setting is used for Flash SIP calls. You can enforce audio codec, e.g. ulaw, and Flash client should switch to that audio codec

force_periodic_fir_request_for_sip_as_rtmp

true

Boolean

false

If true, FIR request will be sent to SIP endpoint every 5 seconds

force_profile_level

null

String

false

If set, this profile will be used regardless of profiles which figured in H.264 codec negotiation.
Example: force_profile_level=420020

force_rtmp_audio_codec

null

String

false

Forced codec for old as-RTMP cases using RTMPOutputWriter and for the latest HLS writer

force_sendrecv_for_outgoing_calls

false

Boolean

false

If true, force sendrecv' for audio and video for outgoing SIP calls'

frame_cnt_to_determine_their_type

10

Integer

false

How long to wait for frames to determine their type

frep_database_address

jdbc:mysql://localhost/wcs?user=wcs&password=wcs

String

false

Address of database that will be used for FREP data storing

frep_enabled

false

Boolean

false

If true, enables Flashphoner remote event protocol

frep_filter_events

CONNECT,CONNECTION_STATUS_EVENT,STREAM,CONNECTION_STATUS_EVENT

ArrayList

true

List of allowed events, which client can send and server can handle

frep_port

8085

Integer

false

FREP port

frep_role

CLIENT

CLIENT
SERVER

false

Role of the frep stack, client or server

frep_secret_key

dsjfoiewqhriywqtrfewfiuewqiufh

String

false

Secret key for FREP authentication

frep_server_ip

null

String

false

Address of FREP server. Has no effect in server mode.

generate_av_for_ua

null

String

true

WCS server generates RTP traffic (inaudible audio and video with Flashphoner logo) when SIP session is established if detected that the other party's SIP User Agent name is specified in the setting.
Required in case of 'SIP as RTMP' stream with Zoom or Twilio SIP Domain as the SIP endpoint.
Example:
generate_av_for_ua = Twilio Media Gateway

generate_av_start_delay

0

Integer

true

Generator start delay in ms, 0 - no delay

get_callee_url

null

String

false

Not in use

global_bandwidth_check_enabled

false

Boolean

false

If true, enable global bitrate in and out in statistics

gpu_load_switch_encoding_percentage_limit

80

false

Switch to another GPU or CPU if GPU has reached it's encoding load limit

gpu_load_switch_min_available_memory_limit

734003200

Long

false

Switch to another GPU or CPU if GPU has reached it's memory limit

gpu_load_switch_overall_percentage_limit

80

Integer

false

Switch to another GPU or CPU if GPU has reached it's overall load limit

gpu_max_encoding_sessions_per_gpu

0

Integer

false

How many sessions can open on a GPU

gpu_max_encoding_sessions_per_host

-1

Integer

false

How many concurrent gpu sessions supported on host

h264_allowed_nal_types

1,5,7,8,12

String

false

List of NAL unit types allowed for decoding

h264_b_frames_force_transcoding

false

Boolean

false

If true, force transcoding by higher profile

h264_buffer_nack_list_threshold

30

Integer

false

JitterBuffer will be reset upon reaching this number of NACK packets

h264_buffer_reset_on_flush_indicator

true

Boolean

false

Clear h264 buffer state upon flush indication

h264_encoder_filler_data_padding

false

Boolean

false

Fill frames with Filler Data NAL Units to always maintain max bitrate

h264_encoder_rc_buffer_size

2

Integer

false

Coefficient for rc buffer

h264_max_nalu_size

1346

Integer

true

Maximum size of outgoing NALU while H.264 is encoded. The option is used to prevent MTU excess while encoding high resolution video

h264_new_buffer

false

Boolean

false

Not in use

h264_remove_filler_data

false

Boolean

false

Enables condition to remove FILLER_DATA from h264 bitstream

h264_sps_buff_scale

1.6

Double

false

Buffer scale for H264 SPS

h264_sps_default_size

100

Integer

false

Default size of H264 sps buffer

h264_sps_max_dec_frame_buffering

-1

Integer

false

SPS VUI decoder buffer

h264_sps_rbsp_scale

1.5

Double

false

Buffer scale for H264 SPS RBSP

h264_strict_kframe_detect

false

Boolean

true

If true, set frame as keyframe only if contains SPS and PPS NAL units or IDR NAL

h265_buffer_nack_list_threshold

30

Integer

false

JitterBuffer will be reset upon reaching this number of NACK packets

h265_buffer_reset_on_flush_indicator

true

Boolean

false

Clear h265 buffer state upon flush indication

h265_max_rtp_packet_size

1400

Integer

false

Maximum size of H265 carrying packet

handler_async_disconnect

true

Boolean

false

If true, enable asynchronous disconnect handler

hangup_incoming_call_state

null

String

false

Send BUSY_HERE by default.
It is also possible to set custom status that should be returned as BUSY response.
This can be used for IMS use cases.
If true, do not send SIP messages to browser

hardware_acceleration_enable_soft_reconfiguration

true

Boolean

false

hardware_acceleration_enable_soft_reconfiguration

hardware_acceleration_reconfigure_max_height

1088

Integer

false

Max height for reconfiguring

hardware_acceleration_reconfigure_max_width

1920

Integer

false

Max width for reconfiguring

hide_all

false

Boolean

false

If true, do not send SIP messages to browser

hls.address

0.0.0.0

InetAddress[]

true

Listening address for HLS server

hls.http.port

8082

Integer

true

HLS server HTTP port

hls.https.port

8445

Integer

true

HLS server HTTPS port

hls_abr_auto_start

false

Boolean

false

If true, enable HLS ABR autostart

hls_abr_enabled

false

Boolean

false

Enable ABR and master playlist for HLS

hls_abr_path_template

{streamName}{abrSuffix}/{streamName}{abrSuffix}.m3u8

String

true

Template for HLS ABR streams path

hls_abr_stream_name_suffix

-HLS-ABR-STREAM

String

true

This is a suffix for HLS ABR stream names, client that wants to get ABR version instead of ordinary version should append this suffix to original stream name'

hls_abr_with_cdn

false

Boolean

true

Use HLS ABR with CDN or use current node for transcoding

hls_acao_header_domain_mask

true

Boolean

false

Enable origin replacement in HLS Access-Control-Allow-Origin header

hls_access_control_headers

null

String

true

HLS response headers

_access_control_headers

null

String

true

HLS response headers

hls_always_start_segment_with_key_frame

false

Boolean

false

If true always wait for keyframe to start new parent segment

hls_auth_enabled

false

Boolean

false

Enable check auth tokens for hls

hls_auth_token_cache

10

Integer

false

Timeout for cache auth tokens in seconds

hls_auto_start

false

Boolean

false

If true, enable HLS autostart

hls_debug_dir

hls-debug

String

true

Folder for debug HLS stream dumps

hls_debug_stream_name_suffix

-DEBUG

String

true

This is a suffix for recorded stream names, used only for debug purposes

hls_delayed_shutdown

true

Boolean

false

If true waits some time before removing HLS provider

hls_delta_list_size

6

Integer

false

Number of segments in playlist delta

hls_dir

hls

String

true

HLS base folder

hls_disable_cleanup

false

Boolean

false

Do not remove inactive hls files from hdd

hls_enabled

true

Boolean

false

If true, enable HLS support

hls_fps_discontinuity

false

Boolean

false

If false, disable discontinuity tag on fps change

hls_fps_threshold

10

Integer

false

Value of the threshold in percent change in fps, at which the segment is marked as discontinuity when the setting hls_fps_discontinuity is enabled

hls_fragmented_mp4

true

Boolean

true

If true, enables FragmentedMP4 container for low-latency hls media files

hls_hold_segments_before_delete

true

Boolean

false

If true, hold segments on disk before delete

hls_hold_segments_size

5

Integer

false

How many segments to hold, before delete. May be useful for high-latency HLS subscribers.

hls_keep_min_segment_duration

false

Boolean

false

If true keep minimum duration of parent segments, so duration will be >= hls_time_min

hls_list_size

8

Integer

false

Maximum number of segments in playlist

hls_ll_enabled

false

Boolean

false

If true, enable Low Latency HLS

hls_manager_provider_timeout

300

Long

false

HLS manager provider timeout

hls_manifest_file

index.m3u8

String

true

HLS master playlist file name. Default is 'index.m3u8'

hls_max_size_queue

50

Integer

false

Maximum size of buffer for hls media data

hls_metrics_log_size

50

Integer

false

Number of HLS log lines in hls/find_all response

hls_min_list_size

1

Integer

false

Minimum number of segments in playlist (should be less than 11)

hls_min_size_queue

10

Integer

false

Minimal size of buffer for hls media data

hls_path_template

{streamName}/{streamName}.m3u8

String

true

Template for HLS non ABR streams path

hls_player_height

480

0

Integer

false

HLS player height

hls_player_width

640

0

Integer

false

HLS player width

hls_playlist_delta_enabled

true

Boolean

false

LL-HLS playlist delta

hls_preloader_dir

hls/.preloader

String

false

HLS preloader dir

hls_preloader_enabled

true

Boolean

false

If true, enables HLS preloader

hls_preloader_segment_count

5

Integer

false

LL-HLS Preloader segment count

hls_preloader_time_min

2000

Long

false

Minimal size of preloader's HLS segment in milliseconds

hls_provider_traffic_waiting_time

6000

Integer

false

Time in milliseconds that hls provider waits traffic

hls_sdp_filename

hls.sdp

String

true

Filename of HLS sdp

hls_segment_name_suffix_randomizer_enabled

false

Boolean

false

HLS segment name suffix randomizer

hls_server_enabled

true

Boolean

true

If true, activate HLS server

hls_session_log_level

INFO

String

false

Level (INFO, DEBUG, ERROR) for HLS session

hls_static_dir

client2/examples/demo/streaming/hls_static

String

false

HLS static dir

hls_static_enabled

false

Boolean

false

If true, enables HLS static content

hls_store_segment_in_memory

true

Boolean

false

Store HLS segments in memory

hls_subscriber_active_timeout

2000

Long

false

Timeout for active state for hls subscriber

hls_test_interval

182000

Integer

true

HLS test interval

hls_test_run_for

180

Integer

true

HLS test duration in seconds

hls_test_start_streams

10

Integer

true

HLS test streams count

hls_test_start_writers

10

Integer

true

HLS test writers count

hls_time

4

Integer

false

Size of one HLS segment in seconds

hls_time_min

2000

Long

false

Minimal size of one HLS segment in milliseconds

hls_version

9

Integer

false

HLS version

hls_wrap

20

Integer

false

Maximum number of ts-files. The option is necessary to prevent disc overflow

http.address

0.0.0.0

InetAddress[]

true

Listening address for HTTP server (statistics)

http.port

8081

Integer

true

WCS server HTTP port

http_client_connection_read_timeout

2000

Integer

false

HTTP client connection read timeout in milliseconds

http_client_connection_timeout

2000

Integer

false

HTTP client connection timeout in milliseconds

http_enable_paths

rest,action,admin,shared,client,client_records,embed_player,empty,health-check,zclient-invite,zclient-join,join-space,role-permissions,verify,rest-api-spec

String

false

List of permitted access to the web interface

http_enable_root_redirect

true

Boolean

false

Enable root redirect to /admin

https.address

0.0.0.0

InetAddress[]

true

Listening address for HTTPS server (statistics)

https.port

8444

Integer

true

WCS server HTTPS port

https_server_enabled

true

Boolean

true

If true, activate HTTPS server

ice_add_ipv6_candidate

false

Boolean

false

If true, server will try to add IPv6 ICE candidates

ice_authorize_by_address

false

Boolean

false

If true, authorize ICE by IP address only. So, if we receive packets from authorized address but another port, the packets will be accepted even though the port was not authorized

ice_consent_freshness

true

Boolean

false

If true, send binding request instead of binding indication for consent freshness

ice_keep_alive_enabled

true

Boolean

false

If true, enables ICE keep-alive

ice_keep_alive_timeout

15

Integer

false

ICE establishing timeout in seconds. By default, if ICE is in running (waiting COMPLETE) state after 15 seconds, the session will be terminated

ice_tcp_channel_high_water_mark

104857600

Integer

true

High watermark for ICE tcp channels

ice_tcp_channel_low_water_mark

10485760

Integer

true

Low watermark for ICE tcp channels

ice_tcp_receive_buffer_size

1048576

Integer

true

Receive buffer size for ice tcp channels

ice_tcp_send_buffer_size

1048576

Integer

true

Send buffer size for ice tcp channels

ice_tcp_transport

false

Boolean

false

If true, use tcp transport only

ice_tcp_transport_force

false

Boolean

false

If true, use tcp transport regardless of client config

ice_timeout

15

Integer

false

ICE keep-alive timeout in seconds. By default, ICE session will be terminated if no refresh packets from browser in 15 seconds

ice_transport_new

true

Boolean

false

If true, use new udp transport

ice_udp_channel_high_water_mark

104857600

Integer

false

High watermark for ice udp channels

ice_udp_channel_low_water_mark

10485760

Integer

false

Low watermark for ice udp channels

ice_udp_receive_buffer_size

1048576

Integer

false

Receive buffer size for ice udp channels

ice_udp_send_buffer_size

1048576

Integer

false

Send buffer size for ice udp channels

ice_udp_transport_new

true

Boolean

false

If true, use new udp transport

ignore_incoming_call_if_sip_login_port_does_not_match_request_uri

false

Boolean

false

If true, terminate incoming call if the SIP port does not correspond to the user indicated in Request-URI

ignore_incoming_rtp

false

Boolean

false

Discard incoming rtp before decoding/decryption. For test purposes only

in_jitter_buffer_enabled

false

Boolean

false

If true, switch on intermediary buffer on server side, which will reset downstream packets according to reset algorithm and min_drop_rate=, max_drop_rate=, min_queue_size=, max_queue_size= and in_jitter_buffer_enabled= settings

inbound_video_rate_stat_rels_throttle

1800

Integer

false

Inbound video rate stats interval throttle for RELS. 0 - disabled

inbound_video_rate_stat_send_interval

0

Integer

false

Inbound video rate stat send interval in sec needed to calculate channel quality. 0 - disabled

increase_equals_timestamp

100

Integer

false

Timestamps are equal within this interval in milliseconds

inject_wait_keyframe_ms

1000

Long

false

Time server should wait for the injected stream to produce keyframe. Once elapsed server will start to generate video stream with the watermark. Use -1 to turn it off.

injector_pli_request_interval

1000

Long

true

PLI interval at changeover inject to target stream

injector_queue_threshold

1000

Long

true

Minimum injector's queue size for overload identification

ip

0.0.0.0

String

true

External IPv4 address. This IP address will differ from specified with ip_local option when WCS server is behind NAT

ip_local

0.0.0.0

String

true

WCS server will create sockets and listen on this interface

ip_v6

String

true

External IPv6 address. This IP address will differ from specified with ip_local option when WCS server is behind NAT

jitter_buffer_always_detect_frame_type

false

Boolean

false

Enables mandatory detecting frame type from rtp packets

jitter_buffer_attempt_to_correct_broken_timestamp

false

Boolean

false

If enabled, jitter buffer adding +1 to broken rtp timestamp

jitter_buffer_capacity

0

Integer

false

JitterBuffer will drop frames when value exceeded

jitter_buffer_strictness

DEFAULT

TOLERANT
DEFAULT
STRICT

false

Sets jitter buffer strictness

jitter_threshold

50

Integer

false

RTMFP. If jitter between UDP media packets is greater than the threshold, it will be reported

jni_cache_class

true

Boolean

false

If true, cache JNI Class object

jni_debug_enable

truefalse

Boolean

false

If true, enables jni logs in stdout

keep_alive.algorithm

HIGH_LEVEL

INTERNAL
NONE
HIGH_LEVEL

true

Keep-alive algorithm: INTERNAL, NONE, or HIGH_LEVEL

keep_alive.enabled

websocket,rtmfp

String

true

Enable keep-alive for the listed protocols

keep_alive.peer_interval

2000

Integer

true

Keep-alive peer interval (Not in use)

keep_alive.probes

10

Integer

true

Number of unsuccessfull attempts to ping connected client (WebSocket, RTMP, RTMFP).
If reached, server will consider the client as disconnected and will release the associated resources.

keep_alive.server_interval

5000

Integer

true

Interval in milliseconds between attempts to ping connected client (WebSocket, RTMP, RTMFP)

keep_alive_streaming_sessions_enabled

false

Boolean

true

If true, server sends keep-alive REST requests to check if stream playback is allowed to continue / resume

kill_event_scanner

false

Boolean

false

Debug option, for development only

ll_hls_can_skip_segments_for_delta_list

6

Integer

false

Number of segments in playlist can skipped for delta playlist

ll_hls_create_preloader

false

Boolean

true

If true, enables LL-HLS Preloader creator

ll_hls_custom_preloader_dir

custom-preloader

String

true

LL-HLS custom preloader base folder

ll_hls_max_number_of_parent_segments_containing_partials

5

Integer

false

Max number of parent segments containing partials

ll_hls_part_hold_back_count

6

Integer

false

PART-HOLD-BACK attribute value in Part Target Duration

ll_hls_partial_time_max

400

Long

false

Maximum size of one partial HLS segment in milliseconds

ll_hls_preloader_segment_duration

400

Long

false

Duration of preloader LL-HLS segment in milliseconds

load_balancing_acao_header

String

true

Use this value for Access-Control-Allow-Origin (ACAO) header in the response when cross-domain HTTP request to the loadbalancer received

load_balancing_enabled

false

Boolean

true

If true, activate loadbalancer

log_metrics_stats

false

Boolean

false

Enables/Disables log metrics statistic

log_metrics_time_buffer

10000

Long

true

Setting for time buffer(lesser value = faster result, higher value = slower and more accurate). min 1 second

mail.password

null

String

true

Password for the mail server

mail.username

null

String

true

Username for the mail server

mail.verification.ttl

86400000

Long

true

Verification transaction TTL

mail.verification.ttl.active

true

Boolean

true

Remove invalid verification transactions

mail.verification.ttl.interval

60000

Long

true

Verification transaction cleanup interval

mail.verification.url

null

String

true

Base url for verification service, e.g. http://my.wcs.ip:8081/

manager_http_ports_enabled

true

Boolean

true

If true, bind old manager http(s) ports 9091 and 8888

matroska_unknown_segment_size

false

Boolean

false

Unknown segment atom size

max_callid_length

32

Integer

false

Maximum length of SIP callID. If the length of generated callID exceeds this value, it will be cut to this length

max_drop_rate

null

String

false

Queue size will be increased if loss raises up to this value.
Is used only if out_jitter_buffer_enabled=true or in_jitter_buffer_enabled=true

max_queue_size

null

String

false

Packets will be reset if queue size exceeds this maximum value.
Is used only if out_jitter_buffer_enabled=true or in_jitter_buffer_enabled=true

media_dir

media

String

true

Media base folder

media_port_from

31001

Integer

true

Beginning of media ports range for ICE, RTP, SRTP, RTCP

media_port_stress_test_iterations

1

Integer

false

Media port stress test iterations

media_port_stress_test_thread_sleep

5

Integer

false

Media port stress test thread sleeping interval

media_port_stress_test_threads

5

Integer

false

Media port stress test threads count

media_port_to

32000

Integer

true

End of media ports range for ICE, RTP, SRTP, RTCP

media_ports_auditor_interval

5000

Integer

true

Audit interval for busy and free ports, in milliseconds

media_ports_auditor_max_attempts

3

Integer

true

Number of audits to make sure freed port is not bound.
Freed port will be returned to the pool of free ports if this number of successfull audits is reached

media_processor_input_data_stat_window

30000

Integer

false

Window for gathering min and max incoming data arrival time, in ms

media_session_connection_stats_log

false

Boolean

false

Enable MediaSessionConnectionStats statistics logging

media_transponder_sdp_filename

media_transponder.sdp

String

true

Filename of transponder sdp

min_drop_rate

null

String

false

Queue size will be decreased if loss reduces to this value.
Is used only if out_jitter_buffer_enabled=true or in_jitter_buffer_enabled=true

min_queue_size

null

String

false

Queue size will not be decreased lower that this minimum value.
Is used only if out_jitter_buffer_enabled=true or in_jitter_buffer_enabled=true

mixer_activity_timer_cool_off_period

1

Integer

false

Mixer will be terminated after {mixer_activity_timer_cool_off_period * mixer_activity_timer_timeout} since last stream activity for the corresponding mixer

mixer_activity_timer_timeout

-1

Integer

false

If there is no streams added to mixer within this timeout in milliseconds, corresponding mixer will be terminated

mixer_app_name

defaultApp

String

false

AppName for mixer streams

mixer_audio_enabled

true

Boolean

false

When false, mixer stream has video-only

mixer_audio_only_height

360

Integer

false

Height constraint for mixer audio only frame

mixer_audio_only_width

640

Integer

false

Width constraint for mixer audio only frame

mixer_audio_opus_float_coding

false

Boolean

false

Use float optimisations for opus audio coding.

mixer_audio_silence_threshold

-50.0

Double

false

Audio silence threshold in db

mixer_audio_threads

4

Integer

false

How many threads should multithreaded audio mixer use

mixer_auto_create_delimiter

#

String

false

Mixer auto create stream/room delimiter

mixer_auto_start

true

Boolean

false

If true, enable mixer autostart

mixer_autoscale_desktop

true

Boolean

false

Separate screen share font size from other frames

mixer_debug_mode

false

Boolean

false

Turns on debug mode, this will output debug information directly onto mixers canvas'

mixer_decode_stream_name

false

Boolean

false

Decode stream name to mixer's canvas

mixer_desktop_align

TOP

TOP
BOTTOM
LEFT
RIGHT
CENTER

false

Alignment of screen sharing stream

mixer_display_stream_name

false

Boolean

false

Output stream name to mixer's canvas

mixer_font_size

20

Integer

false

Font size for stream name and debug info

mixer_font_size_audio_only

40

Integer

false

Font size for stream name and debug info for audio only streams

mixer_frame_background_colour

0x2B2A2B

String

false

Hex value of frame background colour

mixer_idle_timeout

60000

Long

false

Mixer idle timeout in milliseconds

mixer_in_buffering_ms

200

Integer

false

How much stream should be buffered before it gets into mix

mixer_incoming_time_rate_lower_threshold

0.95

Double

false

Relation between incoming stream time and actual machine mixing time, 0.9 means that incoming time rate can be 10% lower then actual stream playback rate

mixer_incoming_time_rate_upper_threshold

1.05

Double

false

Relation between incoming stream time and actual machine mixing time, 1.2 means that incoming time rate can be 20% bigger then actual stream playback rate

mixer_layout_class

com.flashphoner.media.mixer.video.presentation.GridLayout

String

true

Name of class for custom mixer layout

mixer_layout_dir

String

false

Directory name for custom mixer descriptors

mixer_linear_smoothing_audio

true

Boolean

false

Smoothly fade-in and fade-out audio in mixer. 20ms of audio is lost during fade-in

mixer_lossless_video_processor_enabled

false

Boolean

false

Enable custom video processor for mixer incoming streams, setting this to true may degrade realtime part

mixer_lossless_video_processor_max_mixer_buffer_size_ms

200

Integer

false

Max size that is allowed for mixers incoming buffer, after reaching this point processor will use own buffer instead'

mixer_lossless_video_processor_wait_time_ms

20

Integer

false

How long to wait before checking mixer's incoming buffer again in case it was full

mixer_maintain_streams_delay_while_buffered

true

Boolean

false

If false, mixer does not drop audio video frames to maintain minimum set delay mixer_in_buffering_ms

mixer_mcu_audio

false

Boolean

false

Enable mcu like audio mixing, each added stream will have dedicated audio mix available as a separate stream

mixer_mcu_multithreaded_delivery

false

Boolean

false

Use separate threads for mcu streams injest into engine.

mixer_mcu_multithreaded_mix

false

Boolean

false

Mix audio/video in separate threads.

mixer_mcu_video

false

Boolean

false

Works only with mcu audio, send video to each audio mcu stream. Video stays the same as in the root mixer.

mixer_minimal_font_size

1

Integer

false

Minimal font size for stream name if autoscaling is on

mixer_out_buffer_enabled

false

Boolean

false

If true, enable buffer for out mixer streams

mixer_out_buffer_initial_size

2000

Long

false

Initial size of output mixer buffer in milliseconds

mixer_out_buffer_max_bufferings_allowed

-1

Integer

false

mixer_out_buffer_max_bufferings_allowed

mixer_out_buffer_overflow_allowed_deviation

1000

Long

false

max allowed difference between min(buffer) and max(buffer). if this constraint met over the rtmp_in_buffer_overflow_deviation_window overflow state will be set leading to clock acceleration

mixer_out_buffer_overflow_deviation_window

30000

Integer

false

window for gathering min and max buffer sizes over time, in ms

mixer_out_buffer_overflow_rate

0.15

Double

false

buffer clock acceleration rate. To calculate increase in output speed use (1 + rate) / buffer = 1/x

mixer_out_buffer_polling_time

100

Long

false

Output mixer buffer polling time in milliseconds

mixer_out_buffer_start_size

150

Long

false

Start size of output mixer buffer in milliseconds

mixer_prune_streams

false

Boolean

false

When true, prune mixer stream

mixer_realtime

true

Boolean

false

Turns on realtime version of mixer

mixer_separate_buffering_audio_video

false

Boolean

false

If true, separate audio video buffering in mixer

mixer_show_separate_audio_frame

true

Boolean

false

Show audio frame for audio+video stream if added with hasVideo: false

mixer_text_align

BOTTOM_LEFT

TOP_LEFT
TOP_CENTER
TOP_RIGHT
CENTER
BOTTOM_LEFT
BOTTOM_CENTER
BOTTOM_RIGHT
EXTERNAL_TOP_CENTER
EXTERNAL_BOTTOM_CENTER

true

Text position relative to frame

mixer_text_autoscale

true

Boolean

false

Enable stream name autoscaling

mixer_text_background_colour

0x2B2A2B

String

false

Hex value of stream names background colour

mixer_text_background_opacity

100

Integer

false

Opacity of text background percentage

mixer_text_bulk_write

true

Boolean

false

Use bulk write with DirectByteBuffer for text

mixer_text_bulk_write_with_buffer

true

Boolean

false

Use bulk write with DirectByteBuffer for text, cache whole text as a frame

mixer_text_colour

0xFFFFFF

String

false

Hex value of stream names colour

mixer_text_cut_top

3

Integer

false

Clip top part of the text

mixer_text_display_room

true

Boolean

false

Display room name in participant stream names

mixer_text_font

Serif

String

false

Font of mixer text

mixer_text_outside_frame

NO

String

true

Text position relative to frame

mixer_text_outside_frame_padding

50

Integer

true

External padding for outside frame text

mixer_text_padding_bottom

5

Integer

false

Padding for the bottom side of text in pixels

mixer_text_padding_left

5

Integer

false

Padding for the left side of text in pixels

mixer_text_padding_right

4

Integer

false

Padding for the right side of text in pixels

mixer_text_padding_top

5

Integer

false

Padding for the top side of text in pixels

mixer_thread_priority

5

Integer

false

Mixer thread priority, min 1 max 10

mixer_type

NATIVE

JAVA
NATIVE
MULTI_THREADED_NATIVE

false

Mixer implementation, can be JAVA, NATIVE or MULTI_THREADED_NATIVE

mixer_use_sdp_state

true

Boolean

false

Enable audio/video only stream detection via sdp state

mixer_video_background_filename

null

String

false

Mixer video background. Example: background.png

mixer_video_bitrate_kbps

2000

Integer

false

Encoded video bitrate kbps

mixer_video_buffer_length

1000

Integer

false

Video buffer length for decoded frames

mixer_video_desktop_fullscreen

false

Boolean

false

Display desktop stream in fullscreen mode

mixer_video_desktop_layout_inline_padding

10

Integer

false

Padding between video streams in bottom row (under screen sharing stream)

mixer_video_desktop_layout_padding

30

Integer

false

Padding between top row (screen sharing stream) and bottom row (other streams)

mixer_video_enabled

true

Boolean

false

When false, mixer stream has audio-only

mixer_video_fps

30

Integer

false

Fps constraint for mixer stream

mixer_video_grid_layout_middle_padding

10

Integer

false

Padding between video streams in one row (when there is no screen sharing stream)

mixer_video_grid_layout_padding

30

Integer

false

Padding between rows of video streams (when there is no screen sharing stream)

mixer_video_height

720

Integer

false

Height constraint for mixer stream

mixer_video_layout_desktop_key_word

desktop

String

false

Keyword for screen sharing streams

mixer_video_profile_level

42c02a

String

false

Mixer video profile and level in hex. Example: 42c02a

mixer_video_quality

24

Integer

false

Encoded video quality (CRF)

mixer_video_stable_fps_threshold

15

Integer

false

Streams with fps lower then threshold won't trigger buffering of the stream if video buffer was exhausted

mixer_video_threads

4

Integer

false

How many threads should multithreaded video mixer use

mixer_video_width

1280

Integer

false

Width constraint for mixer stream

mixer_voice_activity

true

Boolean

false

Enable/disable voice activity frame

mixer_voice_activity_colour

0x00CC66

String

false

Hex value of voice activity colour

mixer_voice_activity_frame_position_inner

false

Boolean

false

Draw voice activity frame inside the frame. If false - draw around the frame

mixer_voice_activity_frame_thickness

6

Integer

false

Thickness of voice activity frame

mixer_voice_activity_switch_delay

0

Integer

false

Voice activity indicator switch off delay in milliseconds

mp4_container_moov_first

true

Boolean

false

When recording mp4 write moov atom first so recording can be played/downloaded progressively

mp4_container_moov_first_reserve_space

false

Boolean

false

Turn on space reservation for moov atom to avoid additional filesystem copyavoid additional filesystem copy

mp4_container_moov_reserved_space_size

2048

Integer

false

When writing moov first how much space should be reserved for moov atom in kilobytes

mp4_container_write_header_on_fly

false

Boolean

true

Write header with same period while stream is recording when space reservation is turned on

mp4_container_moovwrite_header_reservedon_spacefly_sizeinterval

20485

Integer

falsetrue

When writing moov first how much space should be reserved for moov atom in kilobytesInterval for writing header in seconds

mp4_cutter_dir

records

String

true

Folder to place MP4 fragments while playing recording files in browser

mp4_cutter_manager_cache_expire

60000

Integer

true

Mp4 cutter manager cache expire

mpeg1.gop_size

60

Integer

false

GOP size or k-frame interval

mpeg1.qmax

24

Integer

false

Maximum value of quality parameter. The lower the value, the better is quality, and the higher is bitrate. If it is too low (e.g. 1), bitrate is too high and vice versa

mpeg1.qmin

4

Integer

false

Minimum value of quality parameter. The lower the value, the better is quality, and the higher is bitrate. If it is too low (e.g. 1), bitrate is too high and vice versa

mpeg1.trellis

0

Integer

false

Trellis quantization

mpegts_agent_sdp_filename

mpegts_agent.sdp

String

true

Filename of MPEG-TS publisher sdp

mpegts_max_pts_diff

1

Integer

false

if server receives a packet whose PTS differs by more than this value in seconds, sessions of subscribers will be terminated

mpegts_reserved_port_from

42001

Integer

true

Beginning of mpegts reserved ports range

mpegts_reserved_port_to

43000

Integer

true

End of mpegts reserved ports range

mpegts_stream_timeout

90000

Long

false

MpegTS stream with no data will be terminated after this timeout in milliseconds

mpegts_udp_change_socket_time

5000

Long

false

Time to wait for switch to antoher udp mpegts stream if previous was stopped

mpegts_udp_constant_socket

true

Boolean

false

if true, the server accepts packets only from the first client socket. Packets from other sockets will be ignored

mse_sdp_filename

mse.sdp

String

true

Filename of MSE sdp

msrp_port

2855

Integer

false

Port for receiving MSRP / TCP connections

multi_record_dir

records

String

true

MultiRecord base folder

multi_recorder_mkv_fill_gaps

true

Boolean

false

Fill gaps in matroska tracks

multi_recorder_type

MP4

MKV
MP4

false

MP4 or MKV multiRecorder format

multipart_message_service_uri

null

String

false

SIP URI for sending message to multiple destinations.
A message is sent from client with Content-Type:multipart/mixed and then sent by SIP server to multiple destinations

multiple_pull_test_server_url

null

String

true

Server url for mpt test

multiple_pull_test_stream_name

null

String

true

Stream name for mpt test

multiple_pull_test_subscribers

100

Integer

false

multiple_pull_test_subscribers

native_test_aac

true

Boolean

true

If true, enable AAC native test

native_test_decoder

true

Boolean

true

If true, enable decoder native test

native_test_encoder

true

Boolean

true

If true, enable encoder native test

native_test_opus

true

Boolean

true

If true, enable Opus native test

native_test_resampler

true

Boolean

true

If true, enable native test resampler

native_test_run_for

180

Integer

true

Native test duration

native_test_start_threads

10

Integer

true

Native test threads count

native_test_thread_interval

200

Integer

true

Native test interval

netty_deadlock_aware_worker_timeout

10000

Integer

false

Timeout to detect SSL connection with Netty deadlock

no_media_dump_interval

15000

Long

false

Period in milliseconds, within which media traffic should be captured by tcpdump when client sends bug report with no_media type

notification_apns_key_id

null

String

false

Key Id for ios apns

notification_apns_key_path

/usr/local/FlashphonerWebCallServer/conf/apns_auth_key.p8

String

false

Full path to p8 key file for ios apns

notification_apns_team_id

null

String

false

Team Id for ios apns

notify_message_call_timeout

null

String

false

Timeout in milliseconds to wait for client confimation of receiving an incoming message.
When an incoming message is received, it is sent to the destination client, and the confirmation timeout is started. If the client does not confirm receiving the message within the timeout, WCS server responds to the sender that the message was not received and delivered (in cases when delivery report is required)

on_multiple_record_hook_script

on_multiple_record_hook.sh

String

false

This option points to shell script located in /usr/local/FlashphonerWebCallServer/bin directory, which is started when multipleRecorder is terminated. By default, the script run offline_mixer_tool.sh script located in /usr/local/FlashphonerWebCallServer/tools with default offlineMixer config located in /usr/local/FlashphonerWebCallServer/conf.

on_record_hook_script

on_record_hook.sh

String

false

This option points to shell script located in /usr/local/FlashphonerWebCallServer/bin directory, which is started when stream is unpublished, if a recording of the stream has been created. Two parameters will be passed to the script:
$1 - the stream name
$2 - absolute name of the file with recording of audio and video of the stream
This script can be used to copy or move a stream record from /usr/local/FlashphonerWebCallServer/records directory to another location as soon as the recording is completed. By default, the script does not contain such commands and should be edited as required.
Example:
STREAM_NAME=$1
SRC_FILE=$2
SRC_DIR=/usr/local/FlashphonerWebCallServer/records/
REPLACE_STR=/var/www/html/stream_records/$STREAM_NAME-
DST_FILE=${SRC_FILE/$SRC_DIR/$REPLACE_STR}
cp $SRC_FILE $DST_FILE
Make sure the script works correctly: start it manually, e.g.
./on_record_hook.sh streamName /usr/local/FlashphonerWebCallServer/records/stream-a58aea39-6333-4cb2-8jtn93gtmgr6mrq0nilk6l958j.mp4

options2flash_delegate

null

String

false

If true, then wait for a client response prior to responding with 200 OK to an OPTIONS request

opus.encoder.bitrate

-1

Integer

false

Target bitrate for Opus encoder, in bps

opus.encoder.complexity

-1

Integer

false

Target complexity for Opus encoder

opus_formats

null

String

false

Comma-separated list of Opus formats (name=value).
Example: maxaveragebitrate=20000.
These formats will be listed in SDP

order_threads_by_seq

true

Boolean

false

If true, order incoming SIP messages by sequence number and wait if number is out of order

out_jitter_buffer_enabled

null

String

false

If true, switch on intermediary buffer on server side, which will reset upstream packets according to reset algorithm and min_drop_rate=, max_drop_rate=, min_queue_size=, max_queue_size= and in_jitter_buffer_enabled= settings

outbound_port

null

String

false

SIP port. If this parameter is set, it will redefine values that were transmitted during connection

outbound_proxy

null

String

false

SIP outbound proxy. If this parameter is set, it will redefine values that were transmitted during connection

outbound_video_rate_stat_rels_throttle

1800

Integer

false

Outbound video rate stats interval throttle for RELS. 0 - disabled

outbound_video_rate_stat_send_interval

0

Integer

false

Outbound video rate stat send interval in sec needed to calculate channel quality. 0 - disabled

parse_system_stats

false

Boolean

false

If true, gather system level statistics such as netstat, lsof, etc. The parsing may take a lot of time

periodic_fir_request

false

Boolean

false

If true, then every 5 seconds WCS server sends an RTCP Full Intra Request (FIR) message to the input stream source and then forwards its response to the RTMP CDN.
Required in case of SIP as RTMP' stream with Zoom as the SIP Endpoint and the input stream source, so that every new subscriber receives video keyframe (otherwise, stream video may be not played)'

periodic_fir_request_interval

5000

Integer

false

Interval to send RTCP FIR in milliseconds

play_stream_force_video_orientation

true

Boolean

false

Force negotiation of 3gpp video orientation extension for play stream requests

port_from

30000

Integer

false

Beginning of range of ports for SIP signaling

port_to

31000

Integer

false

End of range of ports for SIP signaling

preserve_non_mixed_recorded_files

false

Boolean

false

Two files are created when recording: one for incoming sound, and another for outgoing. Then those files are mixed in one resulting recording.
If this setting is false, the temporary files will be deleted after mixing.
If true, the files will be saved

print_publication_tables

false

Boolean

false

RTMFP. If true, print statistics of streams in logs

print_rtcp_stats

false

Boolean

false

If true, print RTCP report on end of session

priority_outside_codecs

false

Boolean

false

If true, then outside (browser) codecs will be in first place

process_remote_sdp_candidates

true

Boolean

false

If true, process candidates from SDP

profiles

640028

String

false

Comma-separated list of H.264 profiles. These profiles will be used in SDP for video calls

proxy_propagate_fir

true

Boolean

false

Propagate FIR requests through proxy

proxy_use_h264_packetization_mode_1_only

true

Boolean

false

If true, use H.264 packetization mode 1

ptime

20

Integer

true

Packetization time. Use carefully

ptime_corrector_enabled

true

Boolean

false

Enabling corrector by required packetization time

publication_report_format

null

String

false

RTMFP. Sets format for statistics.
Possible value: csv

pull_streams

null

String

true

Comma separated list of urls to pull from at server startup

queue_ping_period

2000

Integer

true

Queue ping interval in ms

queue_stat_log

true

Boolean

false

Enable queue statistics logging

queue_transcoder_core_router_uri

tcp://127.0.0.1:5555

String

false

Queue transcoder core router URI

queue_transcoder_receive_timeout

500

Integer

true

Queue transcoder receive timeout

queue_transcoder_shm_path

/dev/shm/

String

false

Path to shared memory objects for queue transcoder

queue_transcoder_shm_size

5

Integer

true

Shared memory object size for queue transcoder

queue_transcoder_transmit_timeout

500

Integer

true

Queue transcoder transmit timeout

queue_transcoder_worker_router_uri

ipc:///tmp/flashphoner.pipe

String

false

Queue transcoder core router URI

record

null

String

false

Path to the directory for audio call recordings. If this path is designated, then audio call recordings will be saved to that directory in WAV Track format.
Also, this is used for recording PCM audio on streams for debug needs (see record_audio_processor_pcm= setting)

record_audio_buffer_max_size

100

Integer

false

Record audio buffer size

record_audio_codec_channels

2

Integer

false

Codec channel count used for recording streams

record_audio_codec_sample_rate

44100

Integer

false

Codec sample rate used for recording streams

record_audio_processor_pcm

false

Boolean

false

If true, record audio on stream as PCM16. (Then record= option should point to a valid path, e.g. record=/tmp/)

record_close_scheduling_period

20

Integer

true

Buffer check period for closing a record in milliseconds

record_dir

records

String

true

Record base folder

record_fdk_aac_bitrate_mode

5

Integer

false

Record FDK bitrate mode. 0 - CBR, 1-5 - VBR

record_filename_template

null

String

false

Filename template for an audio call recording. Besides the default fields, {date} field can also be used

record_flash_published_streams

false

Boolean

false

If true, record streams published from native Flash clients and RTMP live encoders such as Wirecast, FFmpeg, FMLE, etc.

record_formats

h264-mp4,vp8-webm

RecordFormats

false

H264 and VP8 recorder type

record_h264_to_ts

false

Boolean

false

If set, record to TS instead of mp4

record_mixer_streams

false

Boolean

false

When true, mixer streams are recorded

record_response_content_disposition_header_value

null

String

false

/client/records/ path content-disposition header

record_rotation

null

String

false

If set, rotation for stream recording files is enabled, in seconds, Megabytes or in MegabytesheaderSize.
Example: 3600 - rotate every hour
Example: 10M - rotate after every 10 Megabytes

record_rotation_index_enabled

true

Boolean

false

If true, rotation for stream recording files is enabled

record_rtsp_streams

false

Boolean

false

If true, record RTSP streams

record_stop_timeout

15

Integer

false

Record stop timeout in seconds

record_streams

true

Boolean

false

If true, WebRTC and RTMFP streams published will be recorded if stream recording is enabled for the publishing client as well: session.createStream({record:true,...}).
The records will be saved to /usr/local/FlashphonerWebCallServer/records directory

record_tmp_dir

records

String

true

Recording temporary files base folder

recording_by_user

false

Boolean

true

If true, call is recorded for the initiator of the call only

red_max_encodings_number

0

Integer

false

Default number of red encoding, max value is 32

reg_expires

3600

Integer

false

Value in seconds, which will be used in Expires header when SIP REGISTER request is sent

rels_client_type

HTTPFILE

JDBC
HTTP
FILE

true

ClickHouse client implementation

rels_consumer_interval

1000

Integer

true

Buffer consumer interval

true

Buffer consumer interval

rels_database_address

localhost:8123

String

true

Address of ClickHouse database that will be used for events storing

rels_database_address

properties

user=wcs&password=wcs

String

falsetrue

Address Properties of ClickHouse database that will be used for events storing

rels_database_thread_pool_size

4

Integer

true

Database thread pool size, if value less then 1, default shared thread pool will be used

rels_enable_compression

false

Boolean

true

Enables compression of outgoing traffic

rels_enabled

EnumSet

false

Enables logging of the listed event types to database

rels_event_buffer_initial_size

5000

Integer

true

Initial buffer size

rels_event_buffer_interval

60000

Integer

false

Buffer interval

rels_event_buffer_max_size

40000

Integer

false

Max buffer size

rels_events_default_frequency

1000ms

String

false

Default frequency (100ms or 100th) of RELS events if not specified by REST API request

rels_media_session_events_default_frequency

1000

Integer

true

Default frequency (ms) of RELS media session events if not specified by REST API request

rels_test_start_threads

2

Integer

true

RELS test threads count

rels_test_thread_events

2

Integer

true

RELS test thread events

rels_test_thread_interval

2

Integer

true

RELS test thread interval

remove_ssrc_attr

false

Boolean

false

If true, remove ssrc attribute

replace_cached_pool_with_default_pool

false

Boolean

true

If true, replaces cached thread pool with default

resample_video

true

Boolean

false

If true, enable video rescaling.
Example:
1. Publish video as 640x480 (4:3)
2. Play video as 400x225 (16:9)
If resample_video=true, WCS server will rescale video from 640x480 to 400x225 and it will be flattened vertically.
If resample_video=false, video will be cut down to 400x225, and part of the video will be lost.
So, when setting playback width and height, you should specify appropriate ratio (e.g., 320x240 for 640x480 published stream); then, if resample_video=true, video will be rescaled properly

rest_access_control_allow_credentials

true

Boolean

false

Rest-api response access_control_allow_credentials header

rest_access_control_allow_headers

content-type,x-requested-with

String

false

Rest-api response access_control_allow_headers header

rest_access_control_allow_methods

POST

String

false

Rest-api response access_control_allow_methods header

rest_access_control_allow_origin

*

String

false

Rest-api response access_control_allow_origin header

rest_access_control_headers

null

String

true

REST response headers

rest_client_request_retry_count

3

Integer

true

How many times to retry sent request; 0 means no retries.

rest_client_request_sent_retry_enabled

true

Boolean

true

True if it's OK to retry non-idempotent requests that have been sent.

rest_hook_secret_key

null

String

false

Rest hook secret key

rest_hook_send_hash

false

Boolean

false

Rest hook send hash

rest_max_connections

200

Integer

true

Rest max connextions

rest_request_timeout

15

Integer

true

Rest request timeout in seconds

rfc2833_packets_count

null

String

false

Number of RTP packets for sending one DTMF

rmi.port

1098

Integer

true

Internal RMI port for communications with WCS Manager

room_idle_timeout

60000

Long

true

Room idle timeout in milliseconds

rtc_ice_add_local_component

true

Boolean

false

If true, add local component for ICE candidates

rtc_ice_add_local_interface

false

Boolean

false

If true, ip_local= address will be added to ICE candidates as another candidate. (External IP address specified in ip= setting is added to ICE candidates by default)

rtc_ip

null

String

false

External IP address for WebRTC. Can be used for WebRTC deployment on particular network interface having external address different from the one specified with ip= setting

rtc_ip_local

null

String

false

Local IP address for WebRTC. Can be used for WebRTC deployment on particular network interface having local address different from the one specified with ip_local= setting

rtcp_pli_request_interval

1000

Long

false

Minimal waiting time to send PLI after receiving K-frame

rtcp_sender_interval

0.1

Double

false

Guard RTCP interval based on the specified fraction of RTCP bitrate

rtmfp.address

0.0.0.0

InetAddress[]

true

Listening address for RTMFP server

rtmfp.port

1935

Integer

true

RTMFP server port, UDP

rtmfp_server_enabled

true

Boolean

true

Enable/disable rtmfp server

rtmp.address

0.0.0.0

InetAddress[]

true

Listening address for RTMP server

rtmp.port

1935

Integer

true

RTMP server port, TCP

rtmp.server_buffer_enabled

false

Boolean

false

Enable/disable buffering rtmp data on java's heap if socket buffer is full

rtmp.server_channel_high_water_mark

52428800

Integer

true

High watermark for connected rtmp channels

rtmp.server_channel_low_water_mark

5242880

Integer

true

Low watermark for connected rtmp channels

rtmp.server_channel_send_buffer_size

1048576

Integer

true

Send buffer size for rtmp channels

rtmp.server_read_socket_timeout

0

Integer

true

TCP socket write timeout for RTMP server, in seconds

rtmp.server_socket_timeout

0

Integer

true

TCP socket write and read timeout for RTMP server for, in seconds

rtmp.server_write_socket_timeout

0

Integer

true

TCP socket write timeout for RTMP server, in seconds

rtmp.use_server_socket_timeout

false

Boolean

true

DEPRECATED (use rtmp.server_socket_timeout, rtmp.server_read_socket_timeout, rtmp.server_write_socket_timeout). If true, use for RTMP server TCP socket timeout set with rtmp.server_socket_timeout option

rtmp_activity_timer_cool_off_period

1

Integer

false

RTMP agent will be terminated after {rtmp_activity_timer_cool_off_period * rtmp_activity_timer_timeout} since last subscriber activity for the corresponding RTMP stream

rtmp_activity_timer_timeout

60000

Integer

false

If there is no subscribers for an RTMP stream within this timeout in milliseconds, corresponding RTMP session will be terminated

rtmp_agent_sdp_filename

rtmp_agent.sdp

String

true

Filename of RTMP agent sdp

rtmp_appkey_source

default

String

false

RTMP appkey source: default/app

rtmp_command_amf3

true

Boolean

true

rtmp_command_amf3

rtmp_detect_h264_frame_type

false

Boolean

false

If true, for H264 frames, frame type will be determined by the NAL units instead of RTMP control field

rtmp_dump_dir

rtmp_dump_dir

String

true

Rtmp dump base folder

rtmp_dump_incoming_video

false

Boolean

false

If true, write incoming rtmp video (4 bytes length | flv packet)

rtmp_dump_republished_video

false

Boolean

false

If true, write republished outgoing rtmp video (4 bytes length | flv packet)

rtmp_flash_ver_publisher

FMLE/3.0

String

false

RTMP publisher Flash version

rtmp_flash_ver_subscriber

LNX 9,0,124,2

String

false

RTMP subscriber Flash version

rtmp_in_buffer_clear_threshold

30000

Long

false

once reached in overflow state buffer will clear up to overflow lower bound

rtmp_in_buffer_enabled

false

Boolean

false

If true, enable buffer for incoming RTMP streams

rtmp_in_buffer_increase_rate

0.25

Double

false

buffer increase rate

rtmp_in_buffer_initial_size

2000

Long

false

Initial size of incoming RTMP buffer in milliseconds

rtmp_in_buffer_input_delay_threshold

0

Long

false

Once stream delay reached the threshold buffer will passthrough stream without buffering, 0 - turned off

rtmp_in_buffer_max_bufferings_allowed

-1

Integer

false

rtmp_in_buffer_max_bufferings_allowed

rtmp_in_buffer_overflow_allowed_deviation

1000

Long

false

max allowed difference between min(buffer) and max(buffer). if this constraint met over the rtmp_in_buffer_overflow_deviation_window overflow state will be set leading to clock acceleration

rtmp_in_buffer_overflow_deviation_window

30000

Integer

false

window for gathering min and max buffer sizes over time, in ms

rtmp_in_buffer_overflow_lower_bound

1000

Long

false

Lower bound for switching from overflow to hold state

rtmp_in_buffer_overflow_rate

0.15

Double

false

buffer clock acceleration rate. To calculate increase in output speed use (1 + rate) / buffer = 1/x

rtmp_in_buffer_overflow_state_change_delay

10000

Long

false

Enforces delay between two consecutive overflow states

rtmp_in_buffer_polling_time

100

Long

false

Incoming RTMP buffer polling time in milliseconds

rtmp_in_buffer_start_size

300

Long

false

Start size of incoming RTMP buffer in milliseconds

rtmp_metadata_to_sdp_state

true

Boolean

false

Translate publishers metadata into sdp state, this is used in conjunction with mixer_use_sdp_state'

rtmp_out_buffer_enabled

false

Boolean

false

If true, enable buffer for outgoing RTMP streams

rtmp_out_buffer_initial_size

2000

Long

false

Initial size of outgoing RTMP buffer in milliseconds

rtmp_out_buffer_max_bufferings_allowed

-1

Integer

false

rtmp_out_buffer_max_bufferings_allowed

rtmp_out_buffer_overflow_allowed_deviation

1000

Long

false

max allowed difference between min(buffer) and max(buffer). if this constraint met over the rtmp_in_buffer_overflow_deviation_window overflow state will be set leading to clock acceleration

rtmp_out_buffer_overflow_deviation_window

30000

Integer

false

window for gathering min and max buffer sizes over time, in ms

rtmp_out_buffer_overflow_rate

0.15

Double

false

buffer clock acceleration rate. To calculate increase in output speed use (1 + rate) / buffer = 1/x

rtmp_out_buffer_polling_time

50

Long

false

Outgoing RTMP buffer polling time in milliseconds

rtmp_out_buffer_start_size

300

Long

false

Start size of outgoing RTMP buffer in milliseconds

rtmp_output_writer_bufsize

0

Integer

false

Buffer time for FFRtmpOutputWriter old outbound buffer for as-RTMP cases

rtmp_port_from

33001

Integer

false

First port in RTMP ports range, for RTMP republisher

rtmp_port_to

34000

Integer

false

Last port in RTMP ports range, for RTMP republisher

rtmp_ports_auditor_interval

10000

Integer

false

Audit interval for RTMP ports, in milliseconds

rtmp_ports_auditor_max_attempts

3

Integer

false

Number of audits to make sure freed port is not bound.
Freed port will be returned to the pool of free ports if this number of successfull audits is reached

rtmp_publisher_ip

String

true

IPv4 address for outgoing RTMP publishing

rtmp_publisher_start_time_ts

1000

Long

false

RTMP publisher start time

rtmp_pull_agent_account_for_lost_audio

false

Boolean

false

If true, enable RTMP pull agent account for lost audio

rtmp_pull_allow_to_reuse_uri

false

Boolean

false

If true, allow to multiple pulling with the same URI

rtmp_pull_rtp_activity_detection

true

Boolean

false

If true, enable RTP activity detection while RTMP pulling

rtmp_push_auto_start

false

Boolean

false

If true, enable RTMP push autostart for newly published streams

rtmp_push_auto_start_url

null

String

false

RTMP server address to auto start pushing to

rtmp_push_restore

false

Boolean

false

If true, then reconnect after connection reset by peer

rtmp_push_restore_attempts

3

Integer

false

RTMP push reconnect attempts

rtmp_push_restore_interval_ms

5000

Integer

false

RTMP push reconnect interval in ms

rtmp_receive_buffer_size_predictor_factory

2053

Integer

true

RTMP receive buffer size predictor factory in bytes

rtmp_send_video_first

false

Boolean

true

Send video first in RTMP

rtmp_server_channel_receive_buffer_size

0

Integer

true

RTMP receive buffer size in bytes

rtmp_server_enabled

true

Boolean

true

Enable/disable rtmp server

rtmp_transponder_force_kframe_interval

true

Boolean

false

If true, force k-frame interval for transponder in latest cases as-RTMP'. It is implemented sending RTCP PLI, if that is supported'

rtmp_transponder_full_url

false

Boolean

false

If true, ignore streamName and use full rtmpUrl in transponders and as RTMP' cases.
If false, streamName will be used as RTMP stream name and rtmpUrl will be treated as URL to RTMP application, e.g. rtmp://host:1935/live'

rtmp_transponder_kframe_interval

60

Integer

false

Forced k-frame interval in frames. See also rtmp_transponder_force_kframe_interval= setting.

rtmp_transponder_metadata

null

String

false

RTMP transponder metadata

rtmp_transponder_send_metadata

true

Boolean

false

If true, RTMP transponder will send metadata

rtmp_transponder_stream_name_prefix

rtmp_

String

false

The specified prefix is added for all as-RTMP stream names. By default, stream named stream1 will be republished as RTMP stream with name rtmp_stream1

rtmp_use_stream_params_as_connection

false

Boolean

true

Use stream params as connection

rtp_activity_audio

true

Boolean

false

If true, RTP activity check is enabled for audio.

rtp_activity_audio_exclude

String

false

Disable RTP activity for audio stream with name matches this regex pattern

rtp_activity_detecting

null

String

false

Disables / enables and sets value of RTP activity timeout, in seconds.
By default, RTP session will be closed if there is no media traffic in 60 seconds period (rtp_activity_detecting=true,60)

rtp_activity_timeout

60

Long

false

RTP activity timer in seconds

rtp_activity_video

true

Boolean

false

If true, RTP activity check is enabled for video.
If false, this check is enabled for audio only

rtp_activity_video_exclude

String

false

Disable RTP activity for video stream with name matches this regex pattern

rtp_bundle

true

Boolean

false

Enable rtp bundle

rtp_elapsed_time_threshold

10000

Long

false

RTP elapsed time threshold, in milliseconds

rtp_generator_start_timeout

2000

Integer

true

Time in ms for enable generator if no rtp in call

rtp_in_buffer

false

Boolean

false

If true, use RTP in buffer

rtp_in_buffer_initial_size

2000

Integer

false

Initial size of incoming RTP buffer in milliseconds

rtp_in_buffer_polling_time

100

Long

false

Incoming RTP buffer polling time in milliseconds

rtp_in_reset_marker

false

Boolean

false

If true, use RTP in reset marker

rtp_paced_sender

false

Boolean

false

If true, enable paced sender for WebRTC video session. EXPERIMENTAL

rtp_paced_sender_capacity

200000000

Long

false

RTP paced sender capacity

rtp_paced_sender_increase_interval

50

Integer

false

Paced sender increase interval

rtp_paced_sender_initial_rate

200000

Integer

false

Paced sender initial rate

rtp_paced_sender_k_deviation

0.02

Double

false

Paced sender K deviation

rtp_paced_sender_k_down

0.02

Double

false

Paced sender K down

rtp_paced_sender_k_up

0.04

Double

false

Paced sender K up

rtp_paced_sender_period

1000

Long

false

RTP paced sender period

rtp_paced_sender_queue_size

2000

Integer

false

Outgoing queue maximum size

rtp_paced_sender_refill

200000000

Long

false

RTP paced sender refill

rtp_packet_cache_size

250

Integer

false

Cache size for sent packets. This is used only on video sessions to provide response to NACK requests

rtp_receive_buffer_predicator_size

1500

Integer

false

DatagramSocket constructing: receiveBufferSizePredictorFactory size

rtp_receive_buffer_size

65536

Integer

false

Buffer size for incoming RTP and SRTP (WebRTC).
DatagramSocket constructing: receiveBufferSize

rtp_send_buffer_size

65536

Integer

false

Buffer size for outgoing RTP and SRTP (WebRTC).
DatagramSocket constructing: sendBufferSize

rtp_session_init_always

false

Boolean

false

If true init rtp session for all media providers

rtsp.address

0.0.0.0

InetAddress[]

true

Listening address for RTSP server

rtsp.port

554

Integer

true

RTSP server port

rtsp_activity_timer_cool_off_period

1

Integer

false

RTSP agent will be terminated after {rtsp_activity_timer_cool_off_period * rtsp_activity_timer_timeout} since last subscriber activity for the corresponding RTSP stream

rtsp_activity_timer_timeout

60000

Integer

false

If there is no subscribers for an RTSP stream within this timeout in milliseconds, corresponding RTSP session will be terminated

rtsp_auth_cnonce

1234567890

String

true

RTSP server port

rtsp_client_address

0.0.0.0

InetAddress

true

RTSP client address

rtsp_client_strip_audio_codecs

null

String

false

Comma-separated list of audio codecs which will not be used for RTSP

rtsp_fail_on_error_track

true

Boolean

true

If true, RTSP pulling fails on error in any track

rtsp_interleaved_channels

null

String

false

Interleaved mode channels: audio channels;video channels. Default: dynamic channels

rtsp_interleaved_enable_rtcp

true

Boolean

false

If true, enable replying to RTCP packets on the RTSP interleaved channel

rtsp_interleaved_mode

true

Boolean

false

If true, interleaved mode for RTSP (RTP over RTSP/TCP) is enabled

rtsp_pcap_server_custom_stream_name

null

String

false

User custom stream name for all pcap sources with incrementing #N at the end

rtsp_pcap_server_handler_redirect_url

null

String

true

Rtsp pcap server redirect URL

rtsp_pcap_server_redirect_method

OPTIONS

String

true

Rtsp pcap server redirect method: OPTIONS/DESCRIBE

rtsp_port_from

32001

Integer

false

First TCP port in the port range for RTSP pooling agent

rtsp_port_to

33000

Integer

false

Last TCP port in the port range for RTSP pooling agent

rtsp_ports_auditor_interval

10000

Integer

false

Audit interval for RTSP ports, in milliseconds

rtsp_ports_auditor_max_attempts

3

Integer

false

Number of audits to make sure freed port is not bound.
Freed port will be returned to the pool of free ports if this number of successfull audits is reached

rtsp_refresh_requests_limit

5

Integer

false

Maximum number of non-answered GET_PARAMETER refresh requests. Stop sending refresh requests if the limit has been reached

rtsp_server_auth_enabled

false

Boolean

false

If true, enable RTSP server authentication

rtsp_server_enabled

true

Boolean

true

If true, activate RTSP server

rtsp_server_forse_interleave

false

Boolean

false

If true, force interleaved mode for RTSP server and answer with interleaved mode SDP

rtsp_server_packetization_mode

null

String

false

H.264 packetization mode for RTSP server. FU-A by default

rtsp_server_profile_level_id

null

String

false

H.264 profile-level-id for RTSP server

rtsp_server_sdp_filename

rtsp_server.sdp

String

false

Filename of RTSP server sdp

rtsp_user_agent

String

false

User agent indicated in RTSP packets

rvg_timer_activity

500

Integer

false

RVG timer interval in milliseconds

rvg_timer_delay

500

Integer

false

RVG timer initial delay in milliseconds

scheduling_service_core_threads

5

Integer

true

Core threads count for scheduling service

sctp_buffer_size

20000

Long

true

SCTP buffer size in bytes

sdp_origin_username

Flashphoner

String

false

Sdp Origin value

send_receive_buffer_size

1600

Integer

true

RTMFP buffer size in bytes

send_receive_on_incoming_re_invite

true

Boolean

false

If true, send receive' on incoming re-INVITE'

session_idle_timeout

300000

Integer

true

RTMFP server-side timeout in milliseconds if no UDP messages received over RTMFP/UDP session

sessions_auditor_interval

60000

Integer

true

Audit interval for pending media sessions

sessions_auditor_session_timeout

60000

Integer

true

Audit timeout for pending media sessions

set_sync_time_from_ts

false

Boolean

false

Workaround for SIP audio only

sfu_bridge_enabled

false

Boolean

false

With the bridge SFU will wrap tracks into streams

sfu_mongo_storage_database

wcs_sfu

String

true

MongoDB database name

sfu_mongo_storage_url

mongodb://localhost/?w=majority

String

true

MongoDB connection url

sfu_periodic_fir_request

true

Boolean

false

If true, then every sfu_periodic_fir_request_interval' seconds WCS server sends an RTCP Full Intra Request (FIR) message to the input stream source'

sfu_periodic_fir_request_interval

30000

Integer

false

Interval to send RTCP FIR in milliseconds to SFU participant

sfu_proxy_pli_requests

true

Boolean

false

If true, then every PLI request from viewer will be forwarded to source

sfu_storage_type

YAML

YAML
MONGO

true

SFU storage type, YAML or MONGO

sip.pre_init

true

Boolean

true

If true, use SIP pre-initiation

sip_add_contact_id

true

Boolean

false

If true, record SIP as RTMP stream and SIP as stream

sip_as_rtmp_java_client

true

Boolean

false

If true, then the latest RTMP transponder implementation will be used for as-RTMP cases. See also use_rtmp_java_client option

sip_as_rtmp_stream_type

live

String

false

Sets RTMP AMF stream type for as-RTMP cases

sip_auditor_dialog_timeout

10000

Integer

false

SIP auditor dialog timeout

sip_auditor_transaction_timeout

50000

Integer

false

SIP auditor transaction timeout

sip_dns_failover

false

Boolean

false

If true, enable DNS failover.
See also sip_srv_lookup= option

sip_force_rtcp_feedback

false

Boolean

false

If true, force rtcp feedback to sip provider

sip_force_session_expires

1800

Integer

false

Forced session expiration timeout in seconds. WCS server will send refresh request before the timeout is reached

sip_force_tcp

false

Boolean

false

If true, force TCP usage for SIP messaging

sip_invite_params_to_headers

false

Boolean

false

If true, place SIP INVITE parameters to headers

sip_msg_listener

com.flashphoner.sdk.sip.ChangeCallIdListener

String

false

Full name of Java class that implements interface ISipMessageListener
public interface ISipMessageListener {
void processMessage(SIPMessage sipMessage);
}

sip_ports_auditor_interval

10000

Integer

false

Audit interval for SIP ports, in milliseconds

sip_ports_auditor_max_attempts

3

Integer

false

Number of audits to make sure freed port is not bound.
Freed SIP port will be returned to the pool of free ports if this number of successfull audits is reached

sip_record_stream

false

Boolean

false

If true, record SIP as RTMP stream and SIP as stream

sip_remove_video_sdp_section_instead_of_adding_inactive_with_zero_port

false

Boolean

false

If true, fully remove video part of SDP. If false, just set video part to inactive

sip_sdp_unsupported_protocols

String

UDP/DTLS/SCTP

UDP/TLS/,UDP/UDT/IX,UDP/BFCP

null

sip_session_expires_header

true

Boolean

false

If true, use Expires header

sip_single_route_only

false

Boolean

false

If true, then traffic is passed only to the streaming engine, and is not passed to the SIP caller

sip_srv_lookup

false

Boolean

false

If true, enable DNS SRV lookup.
See also sip_dns_failover= option

sip_thread_pool_size

null

String

false

Size of SIP thread pool

sip_timer

null

String

false

Value of timer T1 according to RFC 3261, in milliseconds

sip_traffic_class

null

String

false

QoS class for SIP traffic

sip_use_netty

false

Boolean

false

If true, use Netty

sip_use_reentrant_listener

false

Boolean

false

If true, enable SIP reentrant listener

sip_use_tls

false

Boolean

false

If true, TLS used for SIP connections

sip_user_agent_shutdown_timeout

5000

Integer

false

Timeout for remove sip user agent for unregister in sip provider. Default is 5000 ms

snapshot_auto_dir

/usr/local/FlashphonerWebCallServer/snapshots

String

false

Snapshots dir

snapshot_auto_enabled

false

Boolean

false

If true, then enable snapshot auto cut

snapshot_auto_naming

mediaSessionId

String

false

Snapshot auto naming

snapshot_auto_rate

60

Integer

false

Snapshot rate. By default save every 60 frame

snapshot_auto_retention

20

Integer

false

Snapshot retention. By default keep last 20 frames

snapshot_taking_attempts

30

Integer

true

The number of attempts to take a snapshot. By default 30

snapshot_taking_interval_ms

3000

Integer

true

Snapshot taking interval. By default 3000 milliseconds

speex_g711_speex_transcoding

false

Boolean

false

If true, then Speex16 codec is forcedly deleted from the list of supported codecs, which leads to double transcoding. The option was used for debugging

speex_in_policy

null

String

false

Speex encoding settings used in transcoding featuring the codec.
Default:
8 - Quality
false - VBR encoding
8 - Quality of VBR
4 - Algorithmic complexity

start_test

false

Boolean

false

If true, tests listed in streaming_tests= setting will be launched after WCS server startup

stats

false

Boolean

true

If true, enable sampling for streams. The sampling is used for charts

stats_average_calculation_window

30

Integer

true

Window size for general average stats calculation

stats_bitrate_window

1000

Integer

false

Window size to collect bitrate statistics

stats_fps_window

1000

Integer

false

Window size to collect FPS statistics

stats_incoming_stream_monitor_deviation_threshold

500

Integer

false

If deviation between audio and video is greater than the threshold in milliseconds, it will be logged

stats_sampling_frequency

1000

Long

true

Interval in milliseconds. Stream sampling will be taken with the specified frequency

stream_idle_bitrate_monitoring

false

Boolean

false

Enable monitoring of published streams based on bitrate

stream_idle_bitrate_monitoring_threshold_bps

10000

Long

false

Lowest bitrate possible for the active stream

stream_idle_bitrate_monitoring_window_sec

120

Integer

false

Mean stream bitrate calculation window in seconds

stream_record_policy

String

false

Available values: streamName, template.
By default, WCS server generates filename based on mediaSessionId and login.
If set to streamName', recorded file will have the exact name of stream with extension .mp4 or .webM (depending on the video codec).
If set to 'template', filename will be built using template.
See also stream_record_policy_template= option'

stream_record_policy_template

String

false

If set, name of recorded file will be built using the specified template.
Example: {streamName}-{startTime}-{sessionId}-{mediaSessionId}-{login}-{audioCodec}-{videoCodec}-{duration}
Note that if filename length exceeds system limit, recording may be not created.
See also stream_record_policy= option

streaming_custom_stream_stress_test_encoding_subscriber_groups

1

String

false

StreamingCustomStreamStressTest / Number of subscribers for transcoded stream, per encoding groups
E.g., three encoding groups with three subscribers in each
streaming_custom_stream_stress_test_encoding_subscriber_groups=3,3,3

streaming_custom_stream_stress_test_max_proxy_subscribers

1

Integer

false

StreamingCustomStreamStressTest / Number of subscribers for non-transcoded stream (codecs, resolution and bitrate are the same for publisher and subscriber)

streaming_custom_stream_stress_test_rate

1000

Long

false

StreamingCustomStreamStressTest / Period in milliseconds. Each period a new subscriber will be added

streaming_custom_stream_stress_test_stream_name

STRESS_TEST_STREAM

String

false

StreamingCustomStreamStressTest / Name of stream published on WCS server, which will be used for the test

streaming_custom_stream_stress_test_subscriber_ttl_sec

30

Long

false

StreamingCustomStreamStressTest / Lifetime of subscriber in seconds

streaming_distributor_audio_subgroup_queue_max_waiting_time

5000

Integer

false

Maximum time that subgroup thread will wait for frame arrival before executing next iteration

streaming_distributor_audio_subgroup_queue_size

300

Integer

false

Size of queue for distribution subgroup)

streaming_distributor_audio_subgroup_size

500

Integer

false

Video sessions per group

streaming_distributor_dump_interval

10

Integer

true

Interval in minutes for getting distributor thread dumps

streaming_distributor_queue_max_waiting_time

5000

Integer

true

Maximum time that distributor thread will wait for frame arrival before executing next iteration

streaming_distributor_queue_size

300

Integer

true

Size of queue. Processor will block distributor queue upon it reaching this size (i.e., no more space for new frames)

streaming_distributor_queue_size_dump_threshold

0.95

Double

false

Distributor queue size threshold for getting dump

streaming_distributor_queue_size_log_threshold

10

Integer

true

Threshold for logging distributor queue size

streaming_distributor_subgroup_enabled

false

Boolean

false

Enable video distribution subgroups)

streaming_distributor_subgroup_queue_max_waiting_time

5000

Integer

false

Maximum time that subgroup thread will wait for frame arrival before executing next iteration

streaming_distributor_subgroup_queue_size

300

Integer

false

Size of queue for distribution subgroup)

streaming_distributor_subgroup_size

2

Integer

false

Video sessions per group

streaming_distributor_video_proxy_pool_enabled

false

Boolean

false

Use thread pool for video distribution, proxy only

streaming_load_test_duration_minutes

5

Long

false

StreamingLoadTest / Test duration in minutes

streaming_load_test_encoding_subscriber_groups

1

String

false

StreamingLoadTest / Number of subscribers for transcoded stream, per encoding groups
E.g., two encoding groups: one with two subscribers and another with five
streaming_load_test_encoding_subscriber_groups =2,5

streaming_load_test_proxy_subscribers

1

Integer

false

StreamingLoadTest / Number of subscribers for non-transcoded stream (codecs, resolution and bitrate are the same for publisher and subscriber)

streaming_processor_queue_max_waiting_time

5000

Integer

true

Maximum time that processor thread will wait for frame arrival before executing next iteration

streaming_processor_queue_size

300

Integer

true

Size of queue. Feeding thread (e.g., RTP thread in case of WebRTC) will block processor queue upon it reaching this size (i.e., no more space for new frames)

streaming_sessions_keep_alive_app_keys

String

false

Comma-separated list of appKeys of server-side applications. If set, WCS server will periodically send StreamKeepAliveEvent for all streams within the listed applications.
For example, if set defaultApp,myApp', the event will be sent for all streams connected to those two applications.
See also streaming_sessions_keep_alive_interval= option'

streaming_sessions_keep_alive_interval

10000

Long

false

StreamKeepAliveEvent sending interval. See also streaming_sessions_keep_alive_app_keys= option

streaming_stress_test_duration_minutes

5

Long

false

StreamingStressTest / Test duration in minutes

streaming_stress_test_encoding_subscriber_groups

1

String

false

StreamingStressTest / Number of subscribers for transcoded stream, per encoding groups
E.g., five encoding groups with five or ten subscribers in each
streaming_stress_test_encoding_subscriber_groups=5,5,5,10,10

streaming_stress_test_max_proxy_subscribers

100

Integer

true

Websocket connections to test

streaming_stress_test_rate

1000

Long

false

StreamingStressTest / Period in milliseconds. Each period a new subscriber will be added

streaming_stress_test_subscriber_ttl_sec

30

Long

false

StreamingStressTest / Lifetime of subscriber in seconds

streaming_tests

String

false

Comma-separated list of tests which will be launched after WCS server startup if start_test=true.
Available tests:
- MP4AgentTest
- StreamingCustomStreamStressTest
- StreamingLoadTest
- StreamingStressTest

streaming_video_decoder_fast_start

false

Boolean

false

If true, all incoming streams are decoded.
If false, incoming stream is decoded only on demand, when codecs, resolution or bitrate are different for the stream publisher and subscriber

streaming_video_decoder_wait_for_distributors

true

Boolean

false

Stop decoding temporarily if one of the distributors fails to keep up with decoding

streaming_video_decoder_wait_for_distributors_max_queue_size

5

Integer

true

Stop decoding when one of distributors queue reaches specified size (See streaming_video_decoder_wait_for_distributors)

streaming_video_decoder_wait_for_distributors_timeout

33

Integer

true

Specifies how long decoding should wait before another distributors queue check (See streaming_video_decoder_wait_for_distributors)

streaming_video_decoder_warmup

true

Boolean

false

Warmup video decoder with P frame after I frame regardless of decoding point availability

streaming_video_decoder_warmup_frames

5

Integer

false

How many P frames should be used for warmup

strict_get_callee_policy

false

Boolean

false

Not in use

stun_freshness_period

1500

Integer

false

STUN freshness period in milliseconds

stun_freshness_timeout

15000

Integer

false

STUN freshness timeout in milliseconds

stun_server

stun1.l.google.com:19302

String

false

STUN server, which is used for WebRTC ICE, if enable_candidate_harvester=true

stun_socket_buffer_size

100

Integer

false

Size of STUN socket buffer

stun_socket_queue_timeout

1500

Integer

false

STUN socket queue timeout in milliseconds

stun_stack_default_thread_pool_size

0

Integer

false

STUN default thread pool size

stun_wait_candidate_timeout

1000

Integer

false

STUN waiting candidate timeout for nominate in milliseconds

suppress_audio

false

Boolean

false

If true, globally suppress audio on server. This feature is not available for Trial license

suppress_dynamic_logs

false

Boolean

false

If true, suppress dynamic logs update

suppress_dynamic_logs_to_server_log

false

Boolean

false

If true, suppress dynamic server logs update

sync_time_force_newest

true

Boolean

true

Force newest synctime after sync change, prevent new packet from getting synctime from past

tcp_relay_packetization2

true

Boolean

false

If true, enable TCP relay packetization for WSPlayer. Should be false when WSPLayer 1.0 is used

tcp_relay_packetization_time

20

Integer

false

Experimental option, allows to send audio packets with custom ptime to WSPlayer 1.0. This property was not tested with new versions and should be removed

tcp_relay_rtcp_interval

2000

Integer

false

RTCP packets generation interval for TCP relay in milliseconds. RTCP is used to carry stream synchronization

thread_pool_default_core_threads

4

Integer

true

Default core threads count in thread pool (equal to CPUs count)

thread_pool_default_max_threads

8

Integer

true

Maximum core threads count in thread pool

thread_pool_default_queue_size

100

Integer

true

Default thread pool queue size

thread_pool_default_thread_timeout_sec

300

Integer

true

Default thread timeout, in seconds

thread_pools_config_filename

thread_pools_config.json

String

true

Thread pools config filename

throughput_test_receivers_qty

1

Integer

false

Throughput test receivers quantity

throughput_test_sender_dst

localhost

String

false

Throughput test sender destination host

throughput_test_senders_qty

1

Integer

false

Throughput test senders quantity

timing_shift

null

String

false

Timer ambiguity in milliseconds, which is used in a stream stagnation (in case the stream is too fast in relation to timestamps) and compensates inaccuracy of system timers.
Is used only if in_jitter_buffer_enabled=true

trace_socket_fd

false

Boolean

true

If true, trace usage of socket file descriptors for HLS, HTTP, RTSP, WebSockets and HTTP LB client

transcoder_agent_activity_timer_cool_off_period

1

Integer

false

Transcoder agent will be terminated after {rtsp_activity_timer_cool_off_period * rtsp_activity_timer_timeout} since last subscriber activity for the corresponding RTSP stream

transcoder_agent_activity_timer_timeout

60000

Integer

false

If there is no subscribers for an Transcoder agent stream within this timeout in milliseconds, corresponding RTSP session will be terminated

transcoder_agent_key_frame_interval

60

Integer

false

Transcoder agent key frame interval

transcoder_agent_rtcp_send_interval

2000

Long

false

Interval in ms for send rtcp from transcoder agent

transcoder_align_encoders

false

Boolean

false

Align video encoders of the same video input by key frames

transcoding_disabled

false

Boolean

false

Force transcoding disabling

turn.server_channel_receive_buffer_size

1048576

Integer

true

Receive buffer size for turn channels

turn.server_channel_send_buffer_size

1048576

Integer

true

Send buffer size for turn channels

turn_ip

0.0.0.0

InetAddress

true

TURN external IP address

turn_ip_local

0.0.0.0

InetAddress

true

TURN internal IP address

turn_life_time

600

Integer

true

TURN Allocation life time

turn_media_port_from

36001

Integer

true

Beginning of media ports range for turn

turn_media_port_to

37000

Integer

true

End of media ports range for turn

turn_media_ports_auditor_interval

5000

Integer

true

Audit interval for busy and free ports, in milliseconds

turn_media_ports_auditor_max_attempts

3

Integer

true

Number of audits to make sure freed port is not bound.
Freed port will be returned to the pool of free ports if this number of successfull audits is reached

turn_password

coM77EMrV7Cwhyan

String

true

TURN password

turn_port

3478

Integer

true

TURN server port

unsupported_messages

null

String

false

If a message has body noted in this list, then such incoming message will be rejected. Can be useful for some service messages, when delivery to client is not required. The list consists of strings, divided by three colons :::

use_alaw_ulaw_speex_switch

true

Boolean

false

If true, switch to the local codec according to content received from SIP side.
If false, use Speex16

use_control_destination_from_incoming_rtcp

true

Boolean

false

If true, set RTCP destination by received RTCP packets

use_fdk_aac

true

Boolean

false

If true, use the fdk-aac fro encoding and decoding

use_ip_local_in_call_id

true

Boolean

false

If true, use value of ip_local= option when forming callID

use_mp4_h264_aac

true

Boolean

false

If true, use H.264 + AAC in MP4 container

use_new_aac_encoder

true

Boolean

false

If true, use the latest AAC encoder

use_new_injector

true

Boolean

true

If true, enable new injectors

use_new_rtcp

true

Boolean

false

If true, use the latest RTCP module

use_rtcp_synch

true

Boolean

false

If true, use RTCP synchronization for audio and video

use_rtmp_java_client

true

Boolean

false

If true, use the latest implementation of RTMP agent for republishing

use_speex_java_impl

true

Boolean

true

If true, use Java implementation for Speex codec

use_strict_jitter_buffer

false

Boolean

false

Enables strict jitter buffer

use_tcp_for_long_sip_messages

false

Boolean

false

If true, and size of SIP message is more than 1350 bytes, then such message will be sent via TCP.
By default, SIP messages are sent over UDP

use_trying_notification

false

Boolean

false

If true, then broadcast SIP response TRYING to client as a call status TRYING

user_agent

Flashphoner/1.0

String

true

User-Agent header value

video_bitstream_normalizer_consecutive_ts_errors_threshold

90

Integer

false

How many consecutive timestamp errors normalizer can absorb before falling back to original stream timestamp.

video_decoder_max_threads

2

Integer

false

How many threads will be used for decoding

video_decoder_second_thread_threshold

777000

Integer

false

Resolution threshold. Once it is reached, decoder should start using second thread.
Example: 800x600 = 480000, 1280x720=921600. So, by default all 720p streams will be decoded using two CPU threads

video_distributor_multi_test

false

Boolean

false

Enable video distributor multi test

video_enabled

true

Boolean

false

Not in use

video_encoder_h264_gop

60

Integer

false

GOP size for H.264 encoder

video_encoder_h265_preset

ultrafast

String

false

Preset value for H.265 encoder

video_encoder_max_threads

3

Integer

false

How many threads will be used for encoding

video_encoder_second_thread_threshold

777000

Integer

false

Resolution threshold. Once it is reached, encoder should start using second thread.
Example: 800x600 = 480000, 1280x720=921600. So, by default all 720p streams will be encoded using two CPU threads

video_encoder_vp8_gop

900

Integer

false

GOP size for VP8 encoder

video_encoding_quality

30

Integer

false

See information on FFmpeg CRF

video_filter_enable_fps

false

Boolean

true

Enable video filter

video_filter_enable_rotate

false

Boolean

true

Enable video rotate filter

video_filter_fps

30

Long

true

Video filter output fps

video_filter_fps_gap_coefficient

2.0

Double

true

Video filter gap coefficient (max gap C x FPS)

video_filter_fps_gop_synchronization

0

Integer

false

Filters gop value used to provide synchronization point for encoders, use with TRANSCODER_ALIGN_ENCODERS'

video_force_sync_timeout

100

Integer

false

Waiting for RTCP sync packet on this interval in ms, for video

video_mixer_output_codec

h264

String

false

Video mixer output codec (multiple codecs not allowed)

video_processor_multi_test

false

Boolean

false

Enable video processor multi test

video_reliable

partial

on
partial
off

false

RTMFP, reliability for video

video_stream_mode_udp

false

Boolean

true

Not in use

video_streamer_generate_seq

false

Boolean

false

Should be set to true for transfer of video calls. Otherwise, there may be no video after transfer

video_transcoder_preserve_aspect_ratio

true

Boolean

true

Try to preserve original aspect ratio of incoming video during transcoding

video_transcoder_round_ratio

0

Integer

false

Rounding up or down when preserving aspect ratio

vod_activity_timer_cool_off_period

1

Integer

false

VOD agent will be terminated after {vod_activity_timer_cool_off_period * vod_activity_timer_timeout} since last subscriber activity for the corresponding RTSP stream

vod_live_loop

false

Boolean

false

If true, loop streaming MP4 file as VoD. EXPERIMENTAL

vod_mp4_container_isoparser_heap_datasource

true

Boolean

false

If true, use heap datasource

vod_mp4_container_new

false

Boolean

false

Use new implementation of mp4 container for vod

vod_mp4_container_new_buffer_ms

0

Integer

false

New implementation of mp4 container will buffer specified time in milliseconds

vod_mp4_test_file

null

String

false

Path to MP4 file. If start_test=true and streaming_tests=MP4AgentTest, VoD stream playing the file will be published when WCS server is started

vod_mp4_test_loop

true

Boolean

false

If true, loop streaming MP4 file. Not in use, replaced by vod_live_loop=

vod_mp4_test_stream_name

null

String

false

This name will be used as name of VoD stream published for playing MP4 file for test MP4AgentTest.
See also vod_mp4_test_file= setting

vod_rtcp_send_interval

2000

Long

false

RTCP Send interval for VOD

vod_sink_ready_checks

50

Integer

false

Waiting for first packet on audio streamer. If no packets within the specified number of checks, then audio injection is aborted

vod_sink_wait_synch_time

true

Boolean

false

If false, not wait sync time for playing incoming traffic after audio sink

vod_stream_timeout

30000

Integer

false

VoD stream with no subscribers will be terminated after this timeout in milliseconds

vow_wait_for_sync

false

Boolean

false

If true, session will wait for audio AND video before sending stream to client

vp8_buffer_nack_list_threshold

200

Integer

false

JitterBuffer will be reset upon reaching this number of NACK packets

vp8_max_rtp_packet_size

1400

Integer

true

Maximum size of VP8 carrying packet

vp8_new_buffer

false

Boolean

false

Not in use

wcs_activity_timer_cool_off_period

1

Integer

false

WCS agent will be terminated after {wcs_agent_activity_timer_cool_off_period * wcs_agent_activity_timer_timeout} since last activity for the corresponding WCS agent session

wcs_activity_timer_timeout

60000

Integer

false

If there is no activity within this timeout in milliseconds, corresponding WCS agent session will be terminated

wcs_agent_force_video_orientation

true

Boolean

false

Force negotiation of 3gpp video orientation extension for wcs agent's

wcs_agent_port_from

34001

Integer

false

Beginning of range of ports for WCS agent

wcs_agent_port_to

35000

Integer

false

End of range of ports for WCS agent

wcs_agent_ports_auditor_interval

10000

Integer

false

Audit interval for WCS agent ports, in milliseconds

wcs_agent_ports_auditor_max_attempts

3

Integer

false

Number of audits to make sure freed port is not bound.
Freed WCS agent port will be returned to the pool of free ports if this number of successfull audits is reached

wcs_agent_session_alive_check_interval

30000

Integer

false

Interval in milliseconds to check if WCS agent session is alive

wcs_agent_session_audit

true

Boolean

false

If true, enable WCS agent session audit

wcs_agent_session_connect_timeout

10000

Integer

false

Connect timeout in milliseconds

wcs_agent_session_timeout

30000

Integer

false

WCS agent session timeout in milliseconds

wcs_agent_session_use_keep_alive_timeout

true

Boolean

true

If true, WCS agent session will use keep alive timeout

wcs_agent_ssl

false

Boolean

false

If true, enable SSL for pulling/re-publishing streams

wcs_agent_uri_path

/websocket

String

true

WCSAgent ws request uri path

wcs_sfu_bridge_enabled

false

Boolean

false

With the WCS SFU bridge wcs will wrap streams into tracks

wcsoam_batch_timeout

500

Integer

true

WCS OAM receive timeout

wcsoam_buffer_size

20000

Integer

true

WCS OAM buffer size in kB

wcsoam_chunk_size

64

Integer

true

WCS OAM send chunk size in kB

wcsoam_hostname

null

String

true

WCS OAM server hostname

wcsoam_ip

null

String

true

WCS OAM server IP address

wcsoam_keepalive_period

3000

Integer

true

WCS OAM keep alive period

wcsoam_keepalive_timeout

8000

Integer

true

WCS OAM keep alive timeout

wcsoam_ping_enabled

true

Boolean

false

WCS OAM server ping enable

wcsoam_ping_interval

10000

Integer

true

WCS OAM server ping interval in ms

wcsoam_port

7777

Integer

true

WCS OAM server port

wcsoam_reconnect_interval

5000

Integer

true

WCS OAM reconnect interval in ms

wcsoam_sha_salt

123

String

true

WCS OAM server SHA salt

web_start_with_demo_user

false

Boolean

false

Enable demo user

web_token_life_time

3600000

Long

false

Web token life time, default value 1 hour

webm_java_writer_enable

true

Boolean

false

Replace ffmpeg webm writer with java implementation

webrtc_aes_crypto_provider

BC

BC
JCE

false

Crypto provider for WebRTC

webrtc_agent_use_webrtc

true

Boolean

false

If true, switch WebRTC push and pull to AVP profile

webrtc_cc2

true

Boolean

false

If true, the latest congestion control CC2 is used

webrtc_cc2_bitrate_overuse_event

false

Boolean

false

If true, enable NBE evant raising

webrtc_cc2_bitrate_overuse_event_interval

5000

Long

false

NBE event will be raised periodically with this interval in milliseconds

webrtc_cc2_bitrate_overuse_event_threshold

0.05

Double

false

NBE event will be raised when loss on stream being played reaches this value (5% by default)

webrtc_cc2_cc

false

Boolean

false

If true, react upon WebRTC playback endpoint (e.g. Chrome) requests, e.g. request the publisher to decrease bitrate

webrtc_cc2_cc_interval

500

Long

false

Congestion control interval, not in use

webrtc_cc2_cc_k_noise

0.1

Double

false

Congestion control noise value, not in use

webrtc_cc2_cc_retransmit_rate_threshold

0.15

Double

false

Fraction of send bitrate that retransmit bitrate can raise to. By default, retransmit bitrate can use 15% of send bitrate

webrtc_cc2_cc_track_joined_retransmit_bitrate

true

Boolean

false

If true, enable tracking of retransmit bitrate across all media groups

webrtc_cc2_enable_burst_grouping

false

Boolean

false

Internal bitrate estimation configuration, must not be exposed to public. CC2 estimation will account for packet burst

webrtc_cc2_local_congestion_event_interval

2000

Long

false

Not in use, legacy code

webrtc_cc2_local_k_threshold

0.1

Double

false

Not in use, legacy code

webrtc_cc2_min_remb_bitrate_bps

100000

Long

false

Minimum value for received REMB (Receiver Estimated Max Bitrate) boundary in bps. Ignore the boundary if the received value is less than the minimum defined

webrtc_cc2_receiver_state_window

1000

Long

false

Window size for receiver state, in milliseconds. Default: 1000 - keep and account reports received in last second

webrtc_cc2_twcc

true

Boolean

true

If true, enable TWCC reports. EXPERIMENTAL

webrtc_cc_bitrate_window

1000

Integer

false

Time window in milliseconds. Bitrate estimator works on this time frame

webrtc_cc_initial_avg_noise

0.0

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_initial_e_0_0

100.0

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_initial_e_0_1

0.0

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_initial_e_1_0

0.0

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_initial_e_1_1

0.1

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_initial_offset

0.0

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_initial_process_noise_0

1.0E-13

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_initial_process_noise_1

0.001

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_initial_slope

0.015625

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_initial_threshold

15.0

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_initial_var_noise

50.0

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_k_down

1.8E-4

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_k_up

0.01

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_max_bitrate

10000000

Long

false

Maximum global bitrate for publishing WebRTC streams

webrtc_cc_min_bitrate

30000

Long

false

Minimum global bitrate for publishing WebRTC streams

webrtc_cc_overusing_threshold

10.0

Double

false

Internal bitrate estimation configuration, must not be exposed to public

webrtc_cc_use_sync_ts

true

Boolean

false

If true, timestamp is used as synchronization source

webrtc_pre_init

true

Boolean

true

If true, use WebRTC pre-initialization

webrtc_pre_init_timeout

20000

Integer

true

Maximum allowed time for WebRTC preinit

webrtc_sdes_extensions

true

Boolean

false

Enable sdes rtp header extensions

webrtc_sdp_bandwidth_bps

0

Long

false

b=AS/b=TIAS in publish sdp

webrtc_sdp_h264_exclude_profiles

String

false

List of H264 profiles which should be excluded in response on SDP negotiation.
42 - Baseline, 4d - Main, 64 - High

webrtc_sdp_max_bitrate_bps

0

Long

false

x-google-max-bitrate in publish sdp

webrtc_sdp_min_bitrate_bps

0

Long

false

x-google-min-bitrate in publish sdp

websocket_uri_path

String

true

WebSocket request uri path

work_around

false

Boolean

false

Not in use

ws.address

0.0.0.0

InetAddress[]

true

Listening address for WebSocket server

ws.dashboard.port

8086

Integer

true

WebSocket dashboard connection port

ws.ip_forward_header

X-Real-IP

String

false

Header for IP forwarding

ws.map_custom_headers

false

Boolean

true

If true, parse and inject custom HTTP headers to REST requests

ws.port

8080

Integer

true

WebSocket connection port

ws_client_id_unique_part

true

Boolean

false

Add unique part to ws client id

ws_connections_test_run_for

1800

Integer

true

Websocket connections test duration in seconds

ws_connections_test_uri

ws://192.168.88.100:8080

String

true

Websocket connections test URI

ws_read_socket_timeout

true

Boolean

true

Enable WebSocket read timeout

ws_read_socket_timeout_sec

120

Integer

true

WebSocket read timeout value (if enabled)

wss.address

0.0.0.0

InetAddress[]

true

Listening address for WebSocket SSL server

wss.cert.password

password

String

true

Key password to the SSL certificate in keystore

wss.dashboard.port

8446

Integer

true

Secure websocket dashboard connection port

wss.keystore.file

/usr/local/FlashphonerWebCallServer/conf/wss.jks

String

true

Keystore file containing SSL certificate for secure WebSocket connection

wss.keystore.password

password

String

true

SSL certificate keystore password

wss.port

8443

Integer

true

WebSocket SSL connection port

wss.ssl.cache_size

0

Integer

true

SSL session objects cache size

wss.ssl.session_timeout

0

Integer

true

Cached SSL session objects timeout, in seconds

zapp_conf_dir

/usr/local/FlashphonerWebCallServer/conf/zclient/conf/

String

true

Zapp configuration directory

zgc_log_parser_enable

false

Boolean

true

Launch ZGC parser for stat output

zgc_log_parser_path

logs/gc-core-[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}.log

String

true

ZGC logs path to parse

zgc_log_time_format

yyyy-MM-dd'T'HH:mm:ss.SSSZ

String

true

ZGC logs time format used to parse gc pause time