В таблице представлены названия ключевых релизов и перечислены новые функции и внесенные исправления c августа по декабрь 2017 г.





21 Dec



Fixed memory leaks,

descriptor leaks,


thread leaks,

performance issues.


Added setting rtmp_publisher_start_time_ts

Added setting aac_encoder_sync_drop_threshold fixing timestamp shift from Twilio conference

Added synchronization to setRemoteSdp to fix NPE

Added setting sip_bind_tcp=false

Added sip call state statistics

Added sip_processed_calls stat param

Added settings rtp_audio_max_consecutive_seq_errors=, rtp_audio_reset_buffer_on_seq_error=

Added New server property remove_ssrc_attr. If true removes ssrc from server’s sdp

Added server.properties http_client_connection_timeout=2000, http_client_connection_read_timeout=2000, used in load balancer requests to nodes and Xcap

Added Simple RTMFP connection load client

Added GC timestamps option for core and manager

Added New mediaPortsManager

Added Logging socket to trace bind invocations

Added RtpRtcpPort

Added logs for stream pulling and LB

Added WebRTCAgent debug logs

Added Add option fetch_caller_from_pai_set_from_if_empty=false

Added setting stun_stack_default_thread_pool_size=3, size of network pool for ice agent

Added WebRTCAgent ws Session audit functionality

Added Session thread naming

Added Enable wcs_agent_session_audit by default

Added start and stop command for load balancing

Added setting rtp_in_reset_marker=false


Fixed H264 stream record issue

Fixed Fixed deadlock on getRtpBuffer

Fixed Minor IceKeepAlive timer fix

Fixed playing webrtc stream on safari

Fixed NullPointerException on receive candidate only on audio without video

Fixed crash server on big video transcoding and memory usage optimization

Fixed WebRTC media ports overuse (additional port for every media port)

Fixed Extended logging descriptor leak

Fixed Proxy properties in wcs-core.properties; proxy.sh removed

Fixed Streaming play/publish resource leak in case of Exception while applying remote sdp

Fixed Hangup call on process request failure

Fixed deadlock, removing synchronized from rtpSession.dataPacketReceived()

Fixed Various NPE Exceptions

Fixed NPE on double hangup

Fixed Rtmfp Diffie-Hellman computation

Fixed RTMFP handshake keying cache

Fixed RTMFP handshake cookie handling

Fixed Flash client file descriptors leak

Fixed Hide StatController exception stack, print message only

Fixed WebRTCAgent broken state when remote side is closing.

Fixed RtcMediaSession leak on ICE failed by keep alive

Fixed Heap memory leak through ClientRequest and ThreadLocal

Fixed Force to kill server process if not finished normally.

Fixed Crash problem view tables (NullPointerException)

Fixed ‘suppress_dynamic_logs’ property to prevent logger leak

Fixed Ice pacemaker leak

Fixed republishing from origin issue due upper case in loadbalancer.xml streaming_distribution=WEBRTC

Fixed client logger and add ‘enable_new_client_logger’ property


12 Nov



Load balancer and re-streaming over WebRTC


Performance fixes


RTSP fixes


Sync fixes


Added LoadBalancingController WebRTC republishing

Added Turn off LoadBalancingController republishing by default

Added use_rtmp_server_socket_timeout server property, default false

Added webrtc_agent_use_webrtc=true property to switch WebRTC push and pull to AVP profile

Added Allow to force rtp synchronization

Added Allow to record sip-as-rtmp call with «sip_as_rtmp_record_stream» property

Added Inject custom http headers to REST

Added settings hls_player_width=640 hls_player_height=480, flashphoner.properties config

Added server.properties settings sip.pre_init=true

Added rest api for snapshots

Added Add rtp-in buffer for rtsp (rtsp_in_buffer)

Added  sip_use_reentrant_listener property

Added setting ice_keep_alive_enabled=true


Fixed LBConfig

Fixed Synchronization issues with stream republishing to WCS server

Fixed Force closing media session if exception was catched on creating it

Fixed Fix usage force synchronization for streams with rtcp

Fixed fixes process incoming data from android chrome and changes from jitter buffer

Fixed Clone stream object on notifyStreamStatusEvent to prevent original object modification

Fixed Json ignore for playing and publishing

Fixed Video distributor thread leak

Fixed Fix ice problem on edge

Fixed Delete context fields from snapshots models

Fixed Rtsp fix on rtcp port in setup request

Fixed Add record_rtsp_streams property and fix rtp synchronization bug (force_rtp_synchronization)

Fixed rtsp create snapshot

Fixed Fix rtsp playing with only video

Fixed Memory usage optimization

Fixed Fix record rtsp streams with pps in sdp

Fixed added rtmp_transponder_full_url to RtmpShadowTransponderJava

Fixed High Level keep alives does not work for WSPlayer

Fixed Fixes in creating snapshots

Fixed Catch possible exception on closing RTCP channel

Fixed Workaround receive nal unit with same timestamp


25 Sep



WebRTC pulling


Async REST hooks


SIP fixes


WebRTC fixes



Added WebRTCAgent.java to pool webrtc stream from another WCS server

Added New property process_remote_sdp_candidates = true, enable sdp candidate processing

Added New property ice_consent_freshness = true, send binding request instead of binding indication for consent freshness

Added Create jstack dump on cemetery event

Added WebRTCAgent shutdown

Added RestPullStreamController.java stopPullAgent/getPullAgents

Added ‘token’ field to UserCredentials.java (room app)

Added SIP failover REGISTER

Added read server socket timeout 30 seconds on RTMP/TCP channel

Added rest_template.read_timeout property (manager), how long rest client will wait for rest response in milliseconds

Added rest_template.connection_timeout property (manager), how long rest client will wait for connection establishment in milliseconds before considering connection failed

Added Move from jdbc to HikariCP

Added Setup sdp media attribute for rtc sessions

Added SIP failover calls

Added Passthrough websocket Origin header to REST

Added Handle pre-flight CORS requests


Fixed HttpServerHandler.java send CORS if configured for content type «text/plain»

Fixed Rtmp transponder can’t push stream if rtmp url does not have trailing «/»

Fixed Rest client connection and response timeouts

Fixed Async node -> manager interaction

Fixed No audio for SIP call due to synchronization.

Fixed Catch exception on monitoring service

Fixed Close DNS resource after srv lookup

Fixed Ice PaceMaker thread leak

Fixed Minor loadbalancing fixes

Fixed Stats and rtmp republishing

Fixed Fix view mp4 files from dependencies


30 August







Added Outgoing RTMP authentication

Added First version of save and view stream history

Added Basic vod using urls vod://file.mp4 or vod-life://file.mp4

Added Media providers HLS,RTSP,PUSH,VOD,WSPlayer


Fixed Parse outgoing rtmp credentials

Fixed View realtime stat graphics

Fixed Media port statistic

Fixed Delay 1000 ms, no RTCP in first packets WebRTC, use RapidResynchronizationRequest when in AVPF profile to request SenderReport from far end

Fixed Do not play media received via rtp if there is no synchronization on it

Fixed Synchronization and reordering buffer for incoming rtp packets

Fixed Statistic «dead»-streams

Fixed Terminate SIP call on INVITE timeout.

Fixed Remove old stream stat data

Fixed Load balancer HTTP stats renamed

Fixed Fix Streams tables

Fixed Enclose table field ‘in’ within backticks to prevent mysql creation error

Fixed Enclose table Cert field ‘key’ within backticks to prevent mysql creation error

Fixed Rename table fields to prevent using sql keywords

Fixed Fix encoder odd resolution