Skip to end of metadata
Go to start of metadata

Main server settings

Outdated or invalid setting are highlighted in grey. They were used in previous versions. These settings will be probably deleted in further WCS updates.

Option

Default

Type

Need restart

Description

aac_bitrate

128000

Integer

false

AAC encoding bitrate

aac_encoder_sync_drop_threshold

1000

Long

true

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

aac_test_start_codec

20

Integer

true

AAC test codecs count

aac_test_transcode_iterations

1000

Integer

true

AAC test interval

add_register_auth_headers

true

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, don't 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

50

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

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_enabled

false

Boolean

true

If true, enables CDN

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_ip

null

String

true

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

cdn_nodes_auditor_interval

1000

Integer

true

Time interval to check available CDN nodes, in milliseconds

cdn_nodes_resolve_ip

false

Boolean

true

If true, resolve CDN node domain names to IP addresses

cdn_nodes_route_refresh_interval

60000

Integer

true

Time interval to refresh CDN routes, in milliseconds

cdn_nodes_timeout

-1

Integer

true

CDN nodes timeout in seconds. -1 means nodeTimeout disabled

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

String

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

chat_listener

null

String

false

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

check_incoming_video_negotiated

true

Boolean

false

If true, check video negotiated and if it is not force RTP synchronization for audio

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

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

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

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_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_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 WCS's 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

dtls_close_socket_after_tries

0

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_message_timeout

120

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

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

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

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

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

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

true

Boolean

false

If true, enable HLS support

hls_list_size

10

Integer

false

Maximum number of segments in playlist

hls_manager_provider_timeout

300

Integer

false

HLS manager provider timeout

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

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

increase_equals_timestamp

100

Integer

false

Timestamps are equal within this interval in milliseconds

ip

0.0.0.0

String

true

External IP 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

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,rtmp,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

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

#

String

false

Mixer auto create stream/room delimiter

mixer_auto_start

false

Boolean

false

If true, enable mixer autostart

mixer_idle_timeout

60000

Long

false

Mixer idle timeout in milliseconds

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 mixer's 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_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_thread_priority

5

Integer

false

Mixer thread priority, min 1 max 10

mixer_thread_timeout_ms

33

Integer

false

Mixer thread timeout

mixer_video_bitrate_kbps

2000

Integer

false

Encoded video bitrate kbps

mixer_video_buffer_length

10

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_quality

24

Integer

false

Encoded video quality (CRF)

mixer_video_width

1280

Integer

false

Width constraint for mixer stream

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

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

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

false

Boolean

false

When true, mixer streams are recorded

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_rtsp_streams

false

Boolean

false

If true, record RTSP streams

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

false

Boolean

false

If true, do not process sender reports

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

rtp_activity_detecting

null

String

true

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_video

true

Boolean

false

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

rtp_elapsed_time_threshold

10000

Long

false

RTP elapsed time threshold, in milliseconds

rtp_force_synchronization

false

Boolean

false

If true, force RTP synchronization

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

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

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

1

Integer

false

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

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

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

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

2

Integer

true

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

thread_pool_default_max_threads

4

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

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

50

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

vod_live_loop

false

Boolean

false

If true, loop streaming MP4 file as VoD. EXPERIMENTAL

vod_live_stream_timeout

30000

Integer

false

VoD stream with no subscribers will be terminated after this timeout 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_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

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

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

true

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

work_around

false

Boolean

false

Not in use

ws.address

0.0.0.0

InetAddress

true

Listening address for WebSocket server

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

  • No labels