UBlock on chrome trigger Failed by ICE keep alive

Costel

New Member
Hello,
We've just discovered that UBlock addon on chrome blocks the view. We are in process of testing other ad-blockers and see how they react.
Can you please investigate if there is something that it can be done in order to avoid to be blocked by ad-blockers?

Thanks,
Costel.
 

Costel

New Member
Comming back with more details:
Prevent WebRTC from leaking local IP addresses option is generating this behavior. I suppose is nothing much Flashphoner can do.


upload_2018-5-19_14-58-54.png
 

Costel

New Member
I am trying to handle the info on the FAILED event and for now, the only one which I received and I know from here that is because of firewall or browser plugin is Failed by ICE keep alive server. I would like to know which are the possible info messages which are coming together with the FAILED event.
 

Max

Administrator
Staff member
Hello
Here you can find full error list related streaming events:
https://github.com/flashphoner/flashphoner_client/blob/wcs_api-2.0/src/constants.js#L192
Code:
var streamStatusInfo = {};

/**
* Indicates general error during ICE negotiation. Usually occurs if client is behind some exotic nat/firewall.
* @event FAILED_BY_ICE_ERROR
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_BY_ICE_ERROR', 'Failed by ICE error');

/**
* Timeout has been reached during ICE establishment.
* @event FAILED_BY_ICE_TIMEOUT
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_BY_ICE_TIMEOUT', 'Failed by ICE timeout');

/**
* ICE refresh failed on session.
* @event FAILED_BY_KEEP_ALIVE
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_BY_KEEP_ALIVE', 'Failed by ICE keep alive');

/**
* DTLS has wrong fingerprint.
* @event FAILED_BY_DTLS_FINGERPRINT_ERROR
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_BY_DTLS_FINGERPRINT_ERROR', 'Failed by DTLS fingerprint error');

/**
* Client did not send DTLS packets or packets were lost/corrupted during transmission.
* @event FAILED_BY_DTLS_ERROR
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_BY_DTLS_ERROR', 'Failed by DTLS error');

/**
* Indicates general HLS packetizer error, can occur during initialization or packetization (wrong input or out of disk space).
* @event FAILED_BY_HLS_WRITER_ERROR
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_BY_HLS_WRITER_ERROR', 'Failed by HLS writer error');

/**
* Indicates general RTMP republishing error, can occur during initialization or rtmp packetization.
* @event FAILED_BY_RTMP_WRITER_ERROR
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_BY_RTMP_WRITER_ERROR', 'Failed by RTMP writer error');

/**
* RTP session failed by RTP activity timer.
* @event FAILED_BY_RTP_ACTIVITY
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_BY_RTP_ACTIVITY', 'Failed by RTP activity');

/**
* Related session was disconnected.
* @event STOPPED_BY_SESSION_DISCONNECT
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'STOPPED_BY_SESSION_DISCONNECT', 'Stopped by session disconnect');

/**
* Stream was stopped by rest terminate request.
* @event STOPPED_BY_REST_TERMINATE
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'STOPPED_BY_REST_TERMINATE', 'Stopped by rest /terminate');

/**
* Related publisher stopped its stream or lost connection.
* @event STOPPED_BY_PUBLISHER_STOP
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'STOPPED_BY_PUBLISHER_STOP', 'Stopped by publisher stop');

/**
* Stop the media session by user after call was finished or unpublish stream.
* @event STOPPED_BY_USER
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'STOPPED_BY_USER', 'Stopped by user');

/**
* Error occurred on the stream.
* @event FAILED_BY_ERROR
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_BY_ERROR', 'Failed by error');

/**
* Indicates that error occurred during media session creation. This might be SDP parsing error, all ports are busy, wrong session related config etc.
* @event FAILED_TO_ADD_STREAM_TO_PROXY
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_TO_ADD_STREAM_TO_PROXY', 'Failed to add stream to proxy');

/**
* Stopped shapshot distributor.
* @event DISTRIBUTOR_STOPPED
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'DISTRIBUTOR_STOPPED', 'Distributor stopped');

/**
* Publish stream is not ready, try again later.
* @event PUBLISH_STREAM_IS_NOT_READY
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'PUBLISH_STREAM_IS_NOT_READY', 'Publish stream is not ready');

/**
* Stream with this name is not found, check the correct of the name.
* @event STREAM_NOT_FOUND
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'STREAM_NOT_FOUND', 'Stream not found');

/**
* Server already has a publish stream with the same name, try using different one.
* @event STREAM_NAME_ALREADY_IN_USE
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'STREAM_NAME_ALREADY_IN_USE', 'Stream name is already in use');

/**
* Error indicates that stream object received by server has empty mediaSessionId field.
* @event MEDIASESSION_ID_NULL
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'MEDIASESSION_ID_NULL', 'MediaSessionId is null');

/**
* Published or subscribed sessions used this MediaSessionId.
* @event MEDIASESSION_ID_ALREADY_IN_USE
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'MEDIASESSION_ID_ALREADY_IN_USE', 'MediaSessionId is already in use');

/**
* Session is not initialized or terminated on play ordinary stream.
* @event SESSION_NOT_READY
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'SESSION_NOT_READY', 'Session not ready');

/**
* Actual session does not exist.
* @event SESSION_DOES_NOT_EXIST
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'SESSION_DOES_NOT_EXIST', 'Session does not exist');

/**
* RTSP has wrong format on play stream, check correct of the RTSP url.
* @event RTSP_HAS_WRONG_FORMAT
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'RTSP_HAS_WRONG_FORMAT', 'Rtsp has wrong format');

/**
* Failed to play vod stream, this format is not supported.
* @event FILE_HAS_WRONG_FORMAT
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FILE_HAS_WRONG_FORMAT', 'File has wrong format');

/**
* Failed to connect to rtsp stream.
* @event FAILED_TO_CONNECT_TO_RTSP_STREAM
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_TO_CONNECT_TO_RTSP_STREAM', 'Failed to connect to rtsp stream');

/**
* Rtsp stream is not found, agent received "404-Not Found".
* @event RTSP_STREAM_NOT_FOUND
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'RTSP_STREAM_NOT_FOUND', 'Rtsp stream not found');

/**
* On shutdown RTSP agent.
* @event RTSPAGENT_SHUTDOWN
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'RTSPAGENT_SHUTDOWN', 'RtspAgent shutdown');

/**
* Stream failed
* @event STREAM_FAILED
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'STREAM_FAILED', 'Stream failed');

/**
* No common codecs on setup track, did not found corresponding trackId->mediaPort.
* @event NO_COMMON_CODECS
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'NO_COMMON_CODECS', 'No common codecs');

/**
* Bad referenced rtsp link, check for correct, example: rtsp://user:b@d_password@127.0.0.1/stream.
* @event BAD_URI
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'BAD_URI', 'Bad URI');

/**
* General VOD error, indicates that Exception occurred while reading/processing media file.
* @event GOT_EXCEPTION_WHILE_STREAMING_FILE
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'GOT_EXCEPTION_WHILE_STREAMING_FILE', 'Got exception while streaming file');

/**
* Requested stream shutdown.
* @event REQUESTED_STREAM_SHUTDOWN
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'REQUESTED_STREAM_SHUTDOWN', 'Requested stream shutdown');

/**
* Failed to create movie, file can not be read.
* @event FAILED_TO_READ_FILE
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_TO_READ_FILE', 'Failed to read file');

/**
* File does not exist, check filename.
* @event FILE_NOT_FOUND
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FILE_NOT_FOUND', 'File not found');

/**
* Server failed to establish websocket connection with origin server.
* @event FAILED_TO_CONNECT_TO_ORIGIN_STREAM
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_TO_CONNECT_TO_ORIGIN_STREAM', 'Failed to connect to origin stream');

/**
* CDN stream not found.
* @event CDN_STREAM_NOT_FOUND
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'CDN_STREAM_NOT_FOUND', 'CDN stream not found');

/**
* Indicates that provided URL protocol in stream name is invalid.
* Valid: vod://file.mp4
* Invalid: dov://file.mp4
* @event FAILED_TO_GET_AGENT_STORAGE
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'FAILED_TO_GET_AGENT_STORAGE', 'Failed to get agent storage');

/**
* Shutdown agent servicing origin stream.
* @event AGENT_SERVICING_ORIGIN_STREAM_IS_SHUTTING_DOWN
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'AGENT_SERVICING_ORIGIN_STREAM_IS_SHUTTING_DOWN', 'Agent servicing origin stream is shutting down');

/**
* Terminated by keep-alive on walk through subscribers.
* @event TERMINATED_BY_KEEP_ALIVE
* @memberof Flashphoner.constants.STREAM_STATUS_INFO
*/
define(streamStatusInfo, 'TERMINATED_BY_KEEP_ALIVE', 'Terminated by keep-alive');
 

Max

Administrator
Staff member
Prevent WebRTC from leaking local IP addresses option is generating this behavior. I suppose is nothing much Flashphoner can do.
Could you please instruct us what blocker should we install to reproduce the issue?
WCS server does not require gathering of IP addresses, so there is a chance it can be fixed.
 

SLM

Member
Hi Max. Can you tell me what the cause is of the error "Distributor stopped" ? We received the following error in the API:

[mediaSessionId] => 501c5b60-9928-11ec-860f-5f8131bcfea3
[name] => 9911d6d7a99541b041aea2b4d672c3ed
[published] =>
[hasVideo] =>
[hasAudio] => 1
[status] => FAILED
[info] => Distributor stopped

Is this related to add blockers?
 
Top