Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 24 Next »

{wiki}Основные настройки сервера Серым цветом выделены устаревшие либо недействительные настройки, которые использовались в предыдущих версиях. Эти настройки, вероятнее всего, будут удалены в следующих обновлениях WCS. ||Опция||Значение по умолчанию||Тип||Требуется перезапуск||Описание|| |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_interval|5000|Integer|true|AAC test interval| |aac_test_run_for|180|Integer|true|AAC test duration| |aac_test_start_codec|20|Integer|true|AAC test codecs count| |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| |{color:grey}allow_domains{color}|{color:grey}null{color}|{color:grey}String{color}|{color:grey}false{color}|{color:grey}If set, then WebSocket connections from these domains only will be allowed{color}| |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|-1|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| |{color:grey}audio_stream_mode_udp{color}|{color:grey}true{color}|{color:grey}Boolean{color}|{color:grey}true{color}|{color:grey}Not in use{color}| |{color:grey}auto_login_url{color}|{color:grey}null{color}|{color:grey}String{color}|{color:grey}false{color}|{color:grey}Not in use{color}| |balance_header|null|String|false|This SIP header will be sent to client as a balance| |burst_avoidance_count|null|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|null|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_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_receiver_origin|false|Boolean|false|If true, check origin of RTCP packet and discard if unknown| |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| |{color:grey}client_handler{color}|{color:grey}null{color}|{color:grey}String{color}|{color:grey}true{color}|{color:grey}Not in use{color}| |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| |cost_header|null|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| |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| |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| |delta_threshold|100|Integer|false|RTMFP. If delta between UDP media packets is greater than the threshold, it will be reported| |{color:grey}detect_flash_2_flash_calls{color}|{color:grey}true{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}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{color}| |disable_manager_rmi|false|Boolean|true|If true, disables RMI communications between WCS Core and WCS Manager| |{color:grey}disable_rtc_ata{color}|{color:grey}null{color}|{color:grey}String{color}|{color:grey}false{color}|{color:grey}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{color}| |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| |{color:grey}disable_streaming_proxy_aac{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}If false, enable AAC proxying{color}| |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| |{color:grey}enable_candidate_harvester{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}If true, gather ICE candidates using external STUN server{color}| |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| |{color:grey}enable_local_videochat{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}Not in use{color}| |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| |encoder_buffer_length_sec|1|Integer|false|Encoding buffer for audio, in seconds| |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| |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| |{color:grey}flash_codecs{color}|{color:grey}alaw,ulaw,speex16,h264,vp8{color}|{color:grey}String{color}|{color:grey}false{color}|{color:grey}This set of codecs (if it is not empty) will be used if either party of a call is Flash{color}| |flash_policy.port|843|Integer|true|Listening port for flash policy requests to crossdomain.xml file| |{color:grey}flash_streaming_enable{color}|{color:grey}true{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}Not in use{color}| |{color:grey}flush_audio_interval{color}|{color:grey}80{color}|{color:grey}Integer{color}|{color:grey}true{color}|{color:grey}RTMFP flush interval in milliseconds for flash-audio data from server{color}| |{color:grey}flush_video_interval{color}|{color:grey}80{color}|{color:grey}Integer{color}|{color:grey}true{color}|{color:grey}RTMFP flush interval in milliseconds for flash-video data from server{color}| |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| |{color:grey}get_callee_url{color}|{color:grey}null{color}|{color:grey}String{color}|{color:grey}false{color}|{color:grey}Not in use{color}| |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| |{color:grey}h264_max_nalu_size{color}|{color:grey}1346{color}|{color:grey}Integer{color}|{color:grey}true{color}|{color:grey}Maximum size of outgoing NALU while H.264 is encoded. The option is used to prevent MTU excess while encoding high resolution video{color}| |{color:grey}h264_new_buffer{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}Not in use{color}| |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_auto_start|false|Boolean|false|If true, enable HLS autostart| |hls_discontinuity_enabled|true|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_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_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| |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| |{color:grey}in_jitter_buffer_enabled{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}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{color}| |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| |{color:grey}jni_cache_class{color}|{color:grey}true{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}If true, cache JNI Class object{color}| |keep_alive.algorithm|NONE|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| |{color:grey}keep_alive.peer_interval{color}|{color:grey}2000{color}|{color:grey}Integer{color}|{color:grey}true{color}|{color:grey}Keep-alive peer interval (Not in use){color}| |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| |{color:grey}max_drop_rate{color}|{color:grey}null{color}|{color:grey}String{color}|{color:grey}false{color}|{color:grey}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{color}| |{color:grey}max_queue_size{color}|{color:grey}null{color}|{color:grey}String{color}|{color:grey}false{color}|{color:grey}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{color}| |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| |{color:grey}min_drop_rate{color}|{color:grey}null{color}|{color:grey}String{color}|{color:grey}false{color}|{color:grey}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{color}| |{color:grey}min_queue_size{color}|{color:grey}null{color}|{color:grey}String{color}|{color:grey}false{color}|{color:grey}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{color}| |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_idle_timeout|60000|Long|false|Mixer idle timeout in milliseconds| |mixer_prune_streams|false|Boolean|false|When true, prune mixer stream| |mixer_thread_timeout_ms|33|Integer|false|Mixer thread timeout| |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_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_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|null|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| |{color:grey}out_jitter_buffer_enabled{color}|{color:grey}null{color}|{color:grey}String{color}|{color:grey}false{color}|{color:grey}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{color}| |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|true|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| |{color:grey}print_rtcp_stats{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}If true, print RTCP report on end of session{color}| |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| |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| |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_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| |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| |{color:grey}rtcp_disabled{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}If true, do not process sender reports{color}| |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_socket_timeout|30|Integer|true|TCP socket timeout for RTMP server, in seconds| |rtmp.use_server_socket_timeout|false|Boolean|true|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_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|Integer|false|Initial size of incoming RTMP buffer in milliseconds| |rtmp_in_buffer_polling_time|100|Long|false|Incoming RTMP buffer polling time in milliseconds| |{color:grey}rtmp_output_writer_bufsize{color}|{color:grey}0{color}|{color:grey}Integer{color}|{color:grey}false{color}|{color:grey}Buffer time for FFRtmpOutputWriter old outbound buffer for as-RTMP cases{color}| |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|null|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| |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_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| |{color:grey}rtsp_interleaved_enable_rtcp{color}|{color:grey}true{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}If true, enable replying to RTCP packets on the RTSP interleaved channel{color}| |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_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| |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_record_stream|false|Boolean|false|If true, record SIP as RTMP stream| |sip_as_rtmp_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_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|null|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_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_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| |{color:grey}speex_g711_speex_transcoding{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}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{color}| |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|true|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| |{color:grey}strict_get_callee_policy{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}Not in use{color}| |stun_freshness_period|1500|Integer|false|STUN freshness period in milliseconds| |stun_freshness_timeout|15000|Integer|false|STUN freshness timeout in milliseconds| |{color:grey}stun_server{color}|{color:grey}stun1.l.google.com:19302{color}|{color:grey}String{color}|{color:grey}false{color}|{color:grey}STUN server, which is used for WebRTC ICE, if enable_candidate_harvester=true{color}| |stun_socket_queue_size|1000|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| |{color:grey}tcp_relay_packetization_time{color}|{color:grey}20{color}|{color:grey}Integer{color}|{color:grey}false{color}|{color:grey}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{color}| |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| |{color:grey}timing_shift{color}|{color:grey}null{color}|{color:grey}String{color}|{color:grey}false{color}|{color:grey}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{color}| |trace_socket_fd|false|Boolean|true|If true, trace usage of socket file descriptors for HLS, HTTP, RTSP, WebSockets and HTTP LB client| |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 :::| |{color:grey}use_alaw_ulaw_speex_switch{color}|{color:grey}true{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}If true, switch to the local codec according to content received from SIP side. If false, use Speex16{color}| |use_control_destination_from_incoming_rtcp|true|Boolean|false|If true, set RTCP destination by received RTCP packets| |use_ip_local_in_call_id|true|Boolean|false|If true, use value of ip_local= option when forming callID| |use_java_hls_writer|false|Boolean|false|If true, use Java HLS implementation| |use_mp4_h264_aac|true|Boolean|false|If true, use H.264 + AAC in MP4 container| |{color:grey}use_new_aac_encoder{color}|{color:grey}true{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}If true, use the latest AAC encoder{color}| |{color:grey}use_new_rtcp{color}|{color:grey}true{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}If true, use the latest RTCP module{color}| |{color:grey}use_rtcp_synch{color}|{color:grey}true{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}If true, use RTCP synchronization for audio and video{color}| |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| |{color:grey}video_enabled{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}Not in use{color}| |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_incoming_buffer_size|50|Integer|false|Waiting for RTCP sync packet on this interval in packets, for video| |video_reliable|partial|on partial off|false|RTMFP, reliability for video| |{color:grey}video_stream_mode_udp{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}true{color}|{color:grey}Not in use{color}| |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| |{color:grey}vod_mp4_test_loop{color}|{color:grey}true{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}If true, loop streaming MP4 file. Not in use, replaced by vod_live_loop={color}| |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| |{color:grey}vp8_new_buffer{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}Not in use{color}| |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_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| |{color:grey}webrtc_cc2_cc_interval{color}|{color:grey}500{color}|{color:grey}Long{color}|{color:grey}false{color}|{color:grey}Congestion control interval, not in use{color}| |{color:grey}webrtc_cc2_cc_k_noise{color}|{color:grey}0.1{color}|{color:grey}Double{color}|{color:grey}false{color}|{color:grey}Congestion control noise value, not in use{color}| |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| |{color:grey}webrtc_cc2_local_congestion_event_interval{color}|{color:grey}2000{color}|{color:grey}Long{color}|{color:grey}false{color}|{color:grey}Not in use, legacy code{color}| |{color:grey}webrtc_cc2_local_k_threshold{color}|{color:grey}0.1{color}|{color:grey}Double{color}|{color:grey}false{color}|{color:grey}Not in use, legacy code{color}| |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| |{color:grey}webrtc_cc_initial_process_noise_1{color}|{color:grey}0.001{color}|{color:grey}Double{color}|{color:grey}false{color}|{color:grey}Internal bitrate estimation configuration, must not be exposed to public{color}| |webrtc_cc_initial_slope|0.015625|Double|false|Internal bitrate estimation configuration, must not be exposed to public| |{color:grey}webrtc_cc_initial_threshold{color}|{color:grey}15.0{color}|{color:grey}Double{color}|{color:grey}false{color}|{color:grey}Internal bitrate estimation configuration, must not be exposed to public{color}| |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| |{color:grey}work_around{color}|{color:grey}false{color}|{color:grey}Boolean{color}|{color:grey}false{color}|{color:grey}Not in use{color}| |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| {wiki}
  • No labels