Versions Compared

Key

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

...

Опция

Значение по умолчанию

Тип

Требуется перезапуск

Описание

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

allow_domains

null

String

false

If set, then WebSocket connections from these domains only 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

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_frames_per_packet

6

Integer

false

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

audio_incoming_buffer_size

20

Integer

false

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

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_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"

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);
}"

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_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_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_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"

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_auth_keys

/usr/local/FlashphonerWebCallServer/.ssh/authorized_keys

String

true

"CLI Auth keys file path"

cli_enabled

true

Boolean

true

If true, enables CLI

cli_port

2001

Integer

true

"CLI server port"

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_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"

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_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"

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

datagram_channel_factory

NioDatagramChannelFactory

String

true

NioDatagramChannelFactory, OioDatagramChannelFactory - channel factory used for server sockets

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"

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_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

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

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_local_videochat

false

Boolean

false

"Not in use"

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"

false

"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_thread_pool_max_size

4

Integer

true

"Maximum core threads count 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_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'

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

h264_buffer_nack_list_threshold

30

Integer

false

"JitterBuffer will be reset upon reaching this number of NACK packets"

h264_check_and_skip_annexb

false

Boolean

false

"Check and skip annexB magic bytes"

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_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_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

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

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_enabled

false

Boolean

false

"Enable ABR and master playlist for HLS"

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_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"

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_dir

hls

String

true

"HLS base folder"

hls_disable_cleanup

false

Boolean

false

"Do not remove inactive hls files from hdd"

hls_discontinuity_enabled

false

Boolean

false

If true, enables HLS discontinuity

hls_enable_session_debug

false

Boolean

false

If true, enable debug logging for HLS session

hls_enabled

true

Boolean

false

If true, enable HLS support

hls_hold_segments_before_delete

false

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_list_size

10

Integer

false

"Maximum number of segments in playlist"

hls_manager_provider_timeout

300

Integer

false

"HLS manager provider timeout"

hls_manifest_file

index.m3u8

String

true

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

hls_min_list_size

1

Integer

false

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

hls_player_height

480

Integer

false

"HLS player height"

hls_player_width

640

Integer

false

"HLS player width"

hls_preloader_dir

hls/.preloader

String

false

"HLS preloader dir"

hls_preloader_enabled

true

Boolean

false

If true, enables HLS preloader

hls_preloader_time_min

2000

Long

false

"Minimal size of preloader's HLS segment in milliseconds"

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_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

false

Boolean

false

"Store HLS segments in memory"

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

8

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

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

52428800

Integer

true

"High watermark for ICE tcp channels"

ice_tcp_channel_low_water_mark

5242880

Integer

true

"Low watermark for ICE tcp channels"

ice_tcp_nio

true

Boolean

false

If true, use NIO 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_nio

true

Boolean

false

If true, use NIO 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

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_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"

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_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

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

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

manager_http_ports_enabled

true

Boolean

true

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

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"

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

60000

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

true

"Height constraint for mixer audio only frame"

mixer_audio_only_width

640

Integer

true

"Width constraint for mixer audio only frame"

mixer_audio_silence_threshold

-50.0

Double

false

"Audio silence threshold in db"

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_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_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_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_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_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_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_show_separate_audio_frame

true

Boolean

false

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

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_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_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_thread_timeout_ms

33

Integer

false

"Mixer thread timeout"

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_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_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"

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 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"

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"

msrp_port

2855

Integer

false

"Port for receiving MSRP / TCP connections"

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"

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_server_workers

true

Boolean

false

If true, enable Netty SSH deadlock server workers

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

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_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_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

42e01f

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

false

"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_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 or in Megabytes.
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

recording_by_user

false

Boolean

true

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

reg_expires

3600

Integer

false

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

remove_ssrc_attr

null

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_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"

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

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_appkey_source

default

String

false

"RTMP appkey source: default/app"

rtmp_command_amf3

true

Boolean

true

"rtmp_command_amf3"

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_enabled

false

Boolean

false

If true, enable buffer for incoming RTMP streams

rtmp_in_buffer_initial_size

2000

Long

false

"Initial size of incoming RTMP buffer in milliseconds"

rtmp_in_buffer_max_bufferings_allowed

-1

Integer

false

"rtmp_in_buffer_max_bufferings_allowed"

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_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_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

false

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_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_bundle

true

Boolean

false

"Enable rtp bundle"

rtp_elapsed_time_threshold

10000

Long

false

RTP elapsed time threshold, in milliseconds

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_in_buffer

false

Boolean

false

If true, use RTSP in buffer

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_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_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"

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"

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

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

String

false

"List of unsupported SDP protocols"

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"

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

20

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_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_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_size

100

Integer

false

"Size of STUN socket queue"

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

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

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_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

null

String

true

"TURN 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_java_hls_writer

true

Boolean

false

If true, use Java HLS implementation

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_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_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_max_threads

2

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_incoming_buffer_size

20

Integer

false

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

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"

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

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

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

false

Boolean

false

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_sdes_extensions

false

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"

work_around

false

Boolean

false

"Not in use"

ws.address

0.0.0.0

InetAddress[]

true

"Listening address for WebSocket server"

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.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