public interface WebRtcEndpoint extends BaseRtpEndpoint
Control interface for Kurento WebRTC endpoint.
This endpoint is one side of a peer-to-peer WebRTC communication, being the other peer a WebRTC capable browser -using the RTCPeerConnection API-, a native WebRTC app or even another Kurento Media Server.
In order to establish a WebRTC communication, peers engage in an SDP negotiation process, where one of the peers (the offerer) sends an offer, while the other peer (the offeree) responds with an answer. This endpoint can function in both situations
generateOffer
method. This offer must then be sent to the remote peer (the offeree) through the signaling channel, for processing.processAnswer
method.processOffer
method. The result of this method will be a string, containing an SDP answer.SDPs are sent without ICE candidates, following the Trickle ICE optimization. Once the SDP negotiation is completed, both peers proceed with the ICE discovery process, intended to set up a bidirectional media connection. During this process, each peer
gatherCandidates
method. Since the whole Trickle ICE purpose is to speed-up connectivity, candidates are generated asynchronously. Therefore, in order to capture the candidates, the user must subscribe to the event IceCandidateFound
. It is important that the event listener is bound before invoking gatherCandidates
, otherwise a suitable candidate might be lost, and connection might not be established.
It's important to keep in mind that WebRTC connection is an asynchronous process, when designing interactions between different MediaElements. For example, it would be pointless to start recording before media is flowing. In order to be notified of state changes, the application can subscribe to events generated by the WebRtcEndpoint. Following is a full list of events generated by WebRtcEndpoint:
IceComponentStateChange
: This event informs only about changes in the ICE connection state. Possible values are:
DISCONNECTED
: No activity scheduledGATHERING
: Gathering local candidatesCONNECTING
: Establishing connectivityCONNECTED
: At least one working candidate pairREADY
: ICE concluded, candidate pair selection is now finalFAILED
: Connectivity checks have been completed, but media connection was not establishedCONNECTED
, there might be no media flowing between the peers. This makes this event useful only to receive low-level information about the connection between peers. Even more, while other events might leave a graceful period of time before firing, this event fires immediately after the state change is detected.
IceCandidateFound
: Raised when a new candidate is discovered. ICE candidates must be sent to the remote peer of the connection. Failing to do so for some or all of the candidates might render the connection unusable.
IceGatheringDone
: Raised when the ICE harvesting process is completed. This means that all candidates have already been discovered.
NewCandidatePairSelected
: Raised when a new ICE candidate pair gets selected. The pair contains both local and remote candidates being used for a component. This event can be raised during a media session, if a new pair of candidates with higher priority in the link are found.
DataChannelOpen
: Raised when a data channel is open.
DataChannelClose
: Raised when a data channel is closed.
Registering to any of above events requires the application to provide a callback function. Each event provides different information, so it is recommended to consult the signature of the event listeners.
Flow control and congestion management is one of the most important features of WebRTC. WebRTC connections start with the lowest bandwidth configured and slowly ramps up to the maximum available bandwidth, or to the higher limit of the exploration range in case no bandwidth limitation is detected. Notice that WebRtcEndpoints in Kurento are designed in a way that multiple WebRTC connections fed by the same stream share quality. When a new connection is added, as it requires to start with low bandwidth, it will cause the rest of connections to experience a transient period of degraded quality, until it stabilizes its bitrate. This doesn't apply when transcoding is involved. Transcoders will adjust their output bitrate based in bandwidth requirements, but it won't affect the original stream. If an incoming WebRTC stream needs to be transcoded, for whatever reason, all WebRtcEndpoints fed from transcoder output will share a separate quality than the ones connected directly to the original stream.
The default bandwidth range of the endpoint is 100kbps-500kbps, but it can be changed separately for input/output directions and for audio/video streams.
b=:
tag). Kurento will always enforce bitrate limitations specified by the remote peer over internal configurations.
DataChannels allow other media elements that make use of the DataPad, to send arbitrary data. For instance, if there is a filter that publishes event information, it'll be sent to the remote peer through the channel. There is no API available for programmers to make use of this feature in the WebRtcElement. DataChannels can be configured to provide the following:
The possibility to create DataChannels in a WebRtcEndpoint must be explicitly enabled when creating the endpoint, as this feature is disabled by default. If this is the case, they can be created invoking the createDataChannel method. The arguments for this method, all of them optional, provide the necessary configuration:
label
: assigns a label to the DataChannel. This can help identify each possible channel separately.
ordered
: specifies if the DataChannel guarantees order, which is the default mode. If maxPacketLifetime and maxRetransmits have not been set, this enables reliable mode.
maxPacketLifeTime
: The time window in milliseconds, during which transmissions and retransmissions may take place in unreliable mode. This forces unreliable mode, even if ordered
has been activated.
maxRetransmits
: maximum number of retransmissions that are attempted in unreliable mode. This forces unreliable mode, even if ordered
has been activated.
Protocol
: Name of the subprotocol used for data communication.
Modifier and Type | Interface and Description |
---|---|
static class |
WebRtcEndpoint.Builder |
Modifier and Type | Method and Description |
---|---|
ListenerSubscription |
addDataChannelCloseListener(EventListener<DataChannelCloseEvent> listener)
Add a
EventListener for event DataChannelCloseEvent . |
void |
addDataChannelCloseListener(EventListener<DataChannelCloseEvent> listener,
Continuation<ListenerSubscription> cont)
Add a
EventListener for event DataChannelCloseEvent . |
ListenerSubscription |
addDataChannelOpenListener(EventListener<DataChannelOpenEvent> listener)
Add a
EventListener for event DataChannelOpenEvent . |
void |
addDataChannelOpenListener(EventListener<DataChannelOpenEvent> listener,
Continuation<ListenerSubscription> cont)
Add a
EventListener for event DataChannelOpenEvent . |
void |
addIceCandidate(IceCandidate candidate)
Process an ICE candidate sent by the remote peer of the connection.
|
void |
addIceCandidate(IceCandidate candidate,
Continuation<Void> cont)
Asynchronous version of addIceCandidate:
Continuation.onSuccess(F) is called when the action is
done. |
void |
addIceCandidate(Transaction tx,
IceCandidate candidate)
Process an ICE candidate sent by the remote peer of the connection.
|
ListenerSubscription |
addIceCandidateFoundListener(EventListener<IceCandidateFoundEvent> listener)
Add a
EventListener for event IceCandidateFoundEvent . |
void |
addIceCandidateFoundListener(EventListener<IceCandidateFoundEvent> listener,
Continuation<ListenerSubscription> cont)
Add a
EventListener for event IceCandidateFoundEvent . |
ListenerSubscription |
addIceComponentStateChangeListener(EventListener<IceComponentStateChangeEvent> listener)
Add a
EventListener for event IceComponentStateChangeEvent . |
void |
addIceComponentStateChangeListener(EventListener<IceComponentStateChangeEvent> listener,
Continuation<ListenerSubscription> cont)
Add a
EventListener for event IceComponentStateChangeEvent . |
ListenerSubscription |
addIceGatheringDoneListener(EventListener<IceGatheringDoneEvent> listener)
Add a
EventListener for event IceGatheringDoneEvent . |
void |
addIceGatheringDoneListener(EventListener<IceGatheringDoneEvent> listener,
Continuation<ListenerSubscription> cont)
Add a
EventListener for event IceGatheringDoneEvent . |
ListenerSubscription |
addNewCandidatePairSelectedListener(EventListener<NewCandidatePairSelectedEvent> listener)
Add a
EventListener for event NewCandidatePairSelectedEvent . |
void |
addNewCandidatePairSelectedListener(EventListener<NewCandidatePairSelectedEvent> listener,
Continuation<ListenerSubscription> cont)
Add a
EventListener for event NewCandidatePairSelectedEvent . |
ListenerSubscription |
addOnDataChannelClosedListener(EventListener<OnDataChannelClosedEvent> listener)
Add a
EventListener for event OnDataChannelClosedEvent . |
void |
addOnDataChannelClosedListener(EventListener<OnDataChannelClosedEvent> listener,
Continuation<ListenerSubscription> cont)
Add a
EventListener for event OnDataChannelClosedEvent . |
ListenerSubscription |
addOnDataChannelOpenedListener(EventListener<OnDataChannelOpenedEvent> listener)
Add a
EventListener for event OnDataChannelOpenedEvent . |
void |
addOnDataChannelOpenedListener(EventListener<OnDataChannelOpenedEvent> listener,
Continuation<ListenerSubscription> cont)
Add a
EventListener for event OnDataChannelOpenedEvent . |
ListenerSubscription |
addOnIceCandidateListener(EventListener<OnIceCandidateEvent> listener)
Add a
EventListener for event OnIceCandidateEvent . |
void |
addOnIceCandidateListener(EventListener<OnIceCandidateEvent> listener,
Continuation<ListenerSubscription> cont)
Add a
EventListener for event OnIceCandidateEvent . |
ListenerSubscription |
addOnIceComponentStateChangedListener(EventListener<OnIceComponentStateChangedEvent> listener)
Add a
EventListener for event OnIceComponentStateChangedEvent . |
void |
addOnIceComponentStateChangedListener(EventListener<OnIceComponentStateChangedEvent> listener,
Continuation<ListenerSubscription> cont)
Add a
EventListener for event OnIceComponentStateChangedEvent . |
ListenerSubscription |
addOnIceGatheringDoneListener(EventListener<OnIceGatheringDoneEvent> listener)
Add a
EventListener for event OnIceGatheringDoneEvent . |
void |
addOnIceGatheringDoneListener(EventListener<OnIceGatheringDoneEvent> listener,
Continuation<ListenerSubscription> cont)
Add a
EventListener for event OnIceGatheringDoneEvent . |
void |
closeDataChannel(int channelId)
Closes an open data channel
|
void |
closeDataChannel(int channelId,
Continuation<Void> cont)
Asynchronous version of closeDataChannel:
Continuation.onSuccess(F) is called when the action is
done. |
void |
closeDataChannel(Transaction tx,
int channelId)
Closes an open data channel
|
void |
createDataChannel()
Create a new data channel, if data channels are supported.
|
void |
createDataChannel(Continuation<Void> cont)
Asynchronous version of createDataChannel:
Continuation.onSuccess(F) is called when the action is
done. |
void |
createDataChannel(String label)
Create a new data channel, if data channels are supported.
|
void |
createDataChannel(String label,
boolean ordered)
Create a new data channel, if data channels are supported.
|
void |
createDataChannel(String label,
boolean ordered,
Continuation<Void> cont)
Asynchronous version of createDataChannel:
Continuation.onSuccess(F) is called when the action is
done. |
void |
createDataChannel(String label,
boolean ordered,
int maxPacketLifeTime)
Create a new data channel, if data channels are supported.
|
void |
createDataChannel(String label,
boolean ordered,
int maxPacketLifeTime,
Continuation<Void> cont)
Asynchronous version of createDataChannel:
Continuation.onSuccess(F) is called when the action is
done. |
void |
createDataChannel(String label,
boolean ordered,
int maxPacketLifeTime,
int maxRetransmits)
Create a new data channel, if data channels are supported.
|
void |
createDataChannel(String label,
boolean ordered,
int maxPacketLifeTime,
int maxRetransmits,
Continuation<Void> cont)
Asynchronous version of createDataChannel:
Continuation.onSuccess(F) is called when the action is
done. |
void |
createDataChannel(String label,
boolean ordered,
int maxPacketLifeTime,
int maxRetransmits,
String protocol)
Create a new data channel, if data channels are supported.
|
void |
createDataChannel(String label,
boolean ordered,
int maxPacketLifeTime,
int maxRetransmits,
String protocol,
Continuation<Void> cont)
Asynchronous version of createDataChannel:
Continuation.onSuccess(F) is called when the action is
done. |
void |
createDataChannel(String label,
Continuation<Void> cont)
Asynchronous version of createDataChannel:
Continuation.onSuccess(F) is called when the action is
done. |
void |
createDataChannel(Transaction tx)
Create a new data channel, if data channels are supported.
|
void |
createDataChannel(Transaction tx,
String label)
Create a new data channel, if data channels are supported.
|
void |
createDataChannel(Transaction tx,
String label,
boolean ordered)
Create a new data channel, if data channels are supported.
|
void |
createDataChannel(Transaction tx,
String label,
boolean ordered,
int maxPacketLifeTime)
Create a new data channel, if data channels are supported.
|
void |
createDataChannel(Transaction tx,
String label,
boolean ordered,
int maxPacketLifeTime,
int maxRetransmits)
Create a new data channel, if data channels are supported.
|
void |
createDataChannel(Transaction tx,
String label,
boolean ordered,
int maxPacketLifeTime,
int maxRetransmits,
String protocol)
Create a new data channel, if data channels are supported.
|
void |
gatherCandidates()
Start the gathering of ICE candidates.It must be called after SdpEndpoint::generateOffer or SdpEndpoint::processOffer for Trickle ICE.
|
void |
gatherCandidates(Continuation<Void> cont)
Asynchronous version of gatherCandidates:
Continuation.onSuccess(F) is called when the action is
done. |
void |
gatherCandidates(Transaction tx)
Start the gathering of ICE candidates.It must be called after SdpEndpoint::generateOffer or SdpEndpoint::processOffer for Trickle ICE.
|
List<IceCandidatePair> |
getICECandidatePairs()
Get the ICE candidate pair (local and remote candidates) used by the ice library for each stream.
|
void |
getICECandidatePairs(Continuation<List<IceCandidatePair>> cont)
Get the ICE candidate pair (local and remote candidates) used by the ice library for each stream.
|
TFuture<List<IceCandidatePair>> |
getICECandidatePairs(Transaction tx)
Get the ICE candidate pair (local and remote candidates) used by the ice library for each stream.
|
List<IceConnection> |
getIceConnectionState()
Get the ICE connection state for all the connections.
|
void |
getIceConnectionState(Continuation<List<IceConnection>> cont)
Get the ICE connection state for all the connections.
|
TFuture<List<IceConnection>> |
getIceConnectionState(Transaction tx)
Get the ICE connection state for all the connections.
|
String |
getStunServerAddress()
Get address of the STUN server (Only IP address are supported)
|
void |
getStunServerAddress(Continuation<String> cont)
Get address of the STUN server (Only IP address are supported)
|
TFuture<String> |
getStunServerAddress(Transaction tx)
Get address of the STUN server (Only IP address are supported)
|
int |
getStunServerPort()
Get port of the STUN server
|
void |
getStunServerPort(Continuation<Integer> cont)
Get port of the STUN server
|
TFuture<Integer> |
getStunServerPort(Transaction tx)
Get port of the STUN server
|
String |
getTurnUrl()
Get TURN server URL with this format:
user:password@address:port(?transport=[udp|tcp|tls]) .address must be an IP (not a domain).transport is optional (UDP by default). |
void |
getTurnUrl(Continuation<String> cont)
Get TURN server URL with this format:
user:password@address:port(?transport=[udp|tcp|tls]) .address must be an IP (not a domain).transport is optional (UDP by default). |
TFuture<String> |
getTurnUrl(Transaction tx)
Get TURN server URL with this format:
user:password@address:port(?transport=[udp|tcp|tls]) .address must be an IP (not a domain).transport is optional (UDP by default). |
void |
removeDataChannelCloseListener(ListenerSubscription listenerSubscription)
Remove a
ListenerSubscription for event DataChannelCloseEvent . |
void |
removeDataChannelCloseListener(ListenerSubscription listenerSubscription,
Continuation<Void> cont)
Remove a
ListenerSubscription for event DataChannelCloseEvent . |
void |
removeDataChannelOpenListener(ListenerSubscription listenerSubscription)
Remove a
ListenerSubscription for event DataChannelOpenEvent . |
void |
removeDataChannelOpenListener(ListenerSubscription listenerSubscription,
Continuation<Void> cont)
Remove a
ListenerSubscription for event DataChannelOpenEvent . |
void |
removeIceCandidateFoundListener(ListenerSubscription listenerSubscription)
Remove a
ListenerSubscription for event IceCandidateFoundEvent . |
void |
removeIceCandidateFoundListener(ListenerSubscription listenerSubscription,
Continuation<Void> cont)
Remove a
ListenerSubscription for event IceCandidateFoundEvent . |
void |
removeIceComponentStateChangeListener(ListenerSubscription listenerSubscription)
Remove a
ListenerSubscription for event IceComponentStateChangeEvent . |
void |
removeIceComponentStateChangeListener(ListenerSubscription listenerSubscription,
Continuation<Void> cont)
Remove a
ListenerSubscription for event IceComponentStateChangeEvent . |
void |
removeIceGatheringDoneListener(ListenerSubscription listenerSubscription)
Remove a
ListenerSubscription for event IceGatheringDoneEvent . |
void |
removeIceGatheringDoneListener(ListenerSubscription listenerSubscription,
Continuation<Void> cont)
Remove a
ListenerSubscription for event IceGatheringDoneEvent . |
void |
removeNewCandidatePairSelectedListener(ListenerSubscription listenerSubscription)
Remove a
ListenerSubscription for event NewCandidatePairSelectedEvent . |
void |
removeNewCandidatePairSelectedListener(ListenerSubscription listenerSubscription,
Continuation<Void> cont)
Remove a
ListenerSubscription for event NewCandidatePairSelectedEvent . |
void |
removeOnDataChannelClosedListener(ListenerSubscription listenerSubscription)
Remove a
ListenerSubscription for event OnDataChannelClosedEvent . |
void |
removeOnDataChannelClosedListener(ListenerSubscription listenerSubscription,
Continuation<Void> cont)
Remove a
ListenerSubscription for event OnDataChannelClosedEvent . |
void |
removeOnDataChannelOpenedListener(ListenerSubscription listenerSubscription)
Remove a
ListenerSubscription for event OnDataChannelOpenedEvent . |
void |
removeOnDataChannelOpenedListener(ListenerSubscription listenerSubscription,
Continuation<Void> cont)
Remove a
ListenerSubscription for event OnDataChannelOpenedEvent . |
void |
removeOnIceCandidateListener(ListenerSubscription listenerSubscription)
Remove a
ListenerSubscription for event OnIceCandidateEvent . |
void |
removeOnIceCandidateListener(ListenerSubscription listenerSubscription,
Continuation<Void> cont)
Remove a
ListenerSubscription for event OnIceCandidateEvent . |
void |
removeOnIceComponentStateChangedListener(ListenerSubscription listenerSubscription)
Remove a
ListenerSubscription for event OnIceComponentStateChangedEvent . |
void |
removeOnIceComponentStateChangedListener(ListenerSubscription listenerSubscription,
Continuation<Void> cont)
Remove a
ListenerSubscription for event OnIceComponentStateChangedEvent . |
void |
removeOnIceGatheringDoneListener(ListenerSubscription listenerSubscription)
Remove a
ListenerSubscription for event OnIceGatheringDoneEvent . |
void |
removeOnIceGatheringDoneListener(ListenerSubscription listenerSubscription,
Continuation<Void> cont)
Remove a
ListenerSubscription for event OnIceGatheringDoneEvent . |
void |
setStunServerAddress(String stunServerAddress)
Set address of the STUN server (Only IP address are supported)
|
void |
setStunServerAddress(String stunServerAddress,
Continuation<Void> cont)
Set address of the STUN server (Only IP address are supported)
|
void |
setStunServerAddress(String stunServerAddress,
Transaction tx)
Set address of the STUN server (Only IP address are supported)
|
void |
setStunServerPort(int stunServerPort)
Set port of the STUN server
|
void |
setStunServerPort(int stunServerPort,
Continuation<Void> cont)
Set port of the STUN server
|
void |
setStunServerPort(int stunServerPort,
Transaction tx)
Set port of the STUN server
|
void |
setTurnUrl(String turnUrl)
Set TURN server URL with this format:
user:password@address:port(?transport=[udp|tcp|tls]) .address must be an IP (not a domain).transport is optional (UDP by default). |
void |
setTurnUrl(String turnUrl,
Continuation<Void> cont)
Set TURN server URL with this format:
user:password@address:port(?transport=[udp|tcp|tls]) .address must be an IP (not a domain).transport is optional (UDP by default). |
void |
setTurnUrl(String turnUrl,
Transaction tx)
Set TURN server URL with this format:
user:password@address:port(?transport=[udp|tcp|tls]) .address must be an IP (not a domain).transport is optional (UDP by default). |
addConnectionStateChangedListener, addConnectionStateChangedListener, addMediaStateChangedListener, addMediaStateChangedListener, getConnectionState, getConnectionState, getConnectionState, getMaxVideoSendBandwidth, getMaxVideoSendBandwidth, getMaxVideoSendBandwidth, getMediaState, getMediaState, getMediaState, getMinVideoRecvBandwidth, getMinVideoRecvBandwidth, getMinVideoRecvBandwidth, getMinVideoSendBandwidth, getMinVideoSendBandwidth, getMinVideoSendBandwidth, getRembParams, getRembParams, getRembParams, removeConnectionStateChangedListener, removeConnectionStateChangedListener, removeMediaStateChangedListener, removeMediaStateChangedListener, setMaxVideoSendBandwidth, setMaxVideoSendBandwidth, setMaxVideoSendBandwidth, setMinVideoRecvBandwidth, setMinVideoRecvBandwidth, setMinVideoRecvBandwidth, setMinVideoSendBandwidth, setMinVideoSendBandwidth, setMinVideoSendBandwidth, setRembParams, setRembParams, setRembParams
generateOffer, generateOffer, generateOffer, getLocalSessionDescriptor, getLocalSessionDescriptor, getLocalSessionDescriptor, getMaxAudioRecvBandwidth, getMaxAudioRecvBandwidth, getMaxAudioRecvBandwidth, getMaxVideoRecvBandwidth, getMaxVideoRecvBandwidth, getMaxVideoRecvBandwidth, getRemoteSessionDescriptor, getRemoteSessionDescriptor, getRemoteSessionDescriptor, processAnswer, processAnswer, processAnswer, processOffer, processOffer, processOffer, setMaxAudioRecvBandwidth, setMaxAudioRecvBandwidth, setMaxAudioRecvBandwidth, setMaxVideoRecvBandwidth, setMaxVideoRecvBandwidth, setMaxVideoRecvBandwidth
addMediaSessionStartedListener, addMediaSessionStartedListener, addMediaSessionTerminatedListener, addMediaSessionTerminatedListener, removeMediaSessionStartedListener, removeMediaSessionStartedListener, removeMediaSessionTerminatedListener, removeMediaSessionTerminatedListener
addElementConnectedListener, addElementConnectedListener, addElementDisconnectedListener, addElementDisconnectedListener, addMediaFlowInStateChangeListener, addMediaFlowInStateChangeListener, addMediaFlowOutStateChangeListener, addMediaFlowOutStateChangeListener, addMediaTranscodingStateChangeListener, addMediaTranscodingStateChangeListener, connect, connect, connect, connect, connect, connect, connect, connect, connect, connect, connect, connect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, getGstreamerDot, getGstreamerDot, getGstreamerDot, getGstreamerDot, getGstreamerDot, getGstreamerDot, getMaxOuputBitrate, getMaxOuputBitrate, getMaxOuputBitrate, getMaxOutputBitrate, getMaxOutputBitrate, getMaxOutputBitrate, getMinOuputBitrate, getMinOuputBitrate, getMinOuputBitrate, getMinOutputBitrate, getMinOutputBitrate, getMinOutputBitrate, getSinkConnections, getSinkConnections, getSinkConnections, getSinkConnections, getSinkConnections, getSinkConnections, getSinkConnections, getSinkConnections, getSinkConnections, getSourceConnections, getSourceConnections, getSourceConnections, getSourceConnections, getSourceConnections, getSourceConnections, getSourceConnections, getSourceConnections, getSourceConnections, getStats, getStats, getStats, getStats, getStats, getStats, isMediaFlowingIn, isMediaFlowingIn, isMediaFlowingIn, isMediaFlowingIn, isMediaFlowingIn, isMediaFlowingIn, isMediaFlowingOut, isMediaFlowingOut, isMediaFlowingOut, isMediaFlowingOut, isMediaFlowingOut, isMediaFlowingOut, isMediaTranscoding, isMediaTranscoding, isMediaTranscoding, isMediaTranscoding, isMediaTranscoding, isMediaTranscoding, removeElementConnectedListener, removeElementConnectedListener, removeElementDisconnectedListener, removeElementDisconnectedListener, removeMediaFlowInStateChangeListener, removeMediaFlowInStateChangeListener, removeMediaFlowOutStateChangeListener, removeMediaFlowOutStateChangeListener, removeMediaTranscodingStateChangeListener, removeMediaTranscodingStateChangeListener, setAudioFormat, setAudioFormat, setAudioFormat, setMaxOuputBitrate, setMaxOuputBitrate, setMaxOuputBitrate, setMaxOutputBitrate, setMaxOutputBitrate, setMaxOutputBitrate, setMinOuputBitrate, setMinOuputBitrate, setMinOuputBitrate, setMinOutputBitrate, setMinOutputBitrate, setMinOutputBitrate, setOutputBitrate, setOutputBitrate, setOutputBitrate, setVideoFormat, setVideoFormat, setVideoFormat
addErrorListener, addErrorListener, addTag, addTag, addTag, getChildren, getChildren, getChildren, getChilds, getChilds, getChilds, getCreationTime, getCreationTime, getCreationTime, getId, getId, getId, getMediaPipeline, getMediaPipeline, getMediaPipeline, getName, getName, getName, getParent, getParent, getParent, getSendTagsInEvents, getSendTagsInEvents, getSendTagsInEvents, getTag, getTag, getTag, getTags, getTags, getTags, removeErrorListener, removeErrorListener, removeTag, removeTag, removeTag, setName, setName, setName, setSendTagsInEvents, setSendTagsInEvents, setSendTagsInEvents
isCommited, release, release, release, waitCommited, whenCommited, whenCommited
String getStunServerAddress()
void getStunServerAddress(Continuation<String> cont)
TFuture<String> getStunServerAddress(Transaction tx)
void setStunServerAddress(String stunServerAddress)
void setStunServerAddress(String stunServerAddress, Continuation<Void> cont)
void setStunServerAddress(String stunServerAddress, Transaction tx)
int getStunServerPort()
void getStunServerPort(Continuation<Integer> cont)
TFuture<Integer> getStunServerPort(Transaction tx)
void setStunServerPort(int stunServerPort)
void setStunServerPort(int stunServerPort, Continuation<Void> cont)
void setStunServerPort(int stunServerPort, Transaction tx)
String getTurnUrl()
user:password@address:port(?transport=[udp|tcp|tls])
.address
must be an IP (not a domain).transport
is optional (UDP by default).void getTurnUrl(Continuation<String> cont)
user:password@address:port(?transport=[udp|tcp|tls])
.address
must be an IP (not a domain).transport
is optional (UDP by default).TFuture<String> getTurnUrl(Transaction tx)
user:password@address:port(?transport=[udp|tcp|tls])
.address
must be an IP (not a domain).transport
is optional (UDP by default).void setTurnUrl(String turnUrl)
user:password@address:port(?transport=[udp|tcp|tls])
.address
must be an IP (not a domain).transport
is optional (UDP by default).void setTurnUrl(String turnUrl, Continuation<Void> cont)
user:password@address:port(?transport=[udp|tcp|tls])
.address
must be an IP (not a domain).transport
is optional (UDP by default).void setTurnUrl(String turnUrl, Transaction tx)
user:password@address:port(?transport=[udp|tcp|tls])
.address
must be an IP (not a domain).transport
is optional (UDP by default).List<IceCandidatePair> getICECandidatePairs()
void getICECandidatePairs(Continuation<List<IceCandidatePair>> cont)
TFuture<List<IceCandidatePair>> getICECandidatePairs(Transaction tx)
List<IceConnection> getIceConnectionState()
void getIceConnectionState(Continuation<List<IceConnection>> cont)
TFuture<List<IceConnection>> getIceConnectionState(Transaction tx)
void gatherCandidates()
void gatherCandidates(Continuation<Void> cont)
Continuation.onSuccess(F)
is called when the action is
done. If an error occurs, Continuation.onError(java.lang.Throwable)
is called.gatherCandidates()
void gatherCandidates(Transaction tx)
void addIceCandidate(IceCandidate candidate)
candidate
- Remote ICE candidatevoid addIceCandidate(IceCandidate candidate, Continuation<Void> cont)
Continuation.onSuccess(F)
is called when the action is
done. If an error occurs, Continuation.onError(java.lang.Throwable)
is called.candidate
- Remote ICE candidateaddIceCandidate(org.kurento.client.IceCandidate)
void addIceCandidate(Transaction tx, IceCandidate candidate)
candidate
- Remote ICE candidatevoid createDataChannel(String label, boolean ordered, int maxPacketLifeTime, int maxRetransmits, String protocol)
label
- Channel's labelordered
- If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated.maxPacketLifeTime
- The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode.
ordered
has been activatedmaxRetransmits
- maximum number of retransmissions that are attempted in unreliable mode.
ordered
has been activatedprotocol
- Name of the subprotocol used for data communicationvoid createDataChannel(String label, boolean ordered, int maxPacketLifeTime, int maxRetransmits, String protocol, Continuation<Void> cont)
Continuation.onSuccess(F)
is called when the action is
done. If an error occurs, Continuation.onError(java.lang.Throwable)
is called.label
- Channel's labelordered
- If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated.maxPacketLifeTime
- The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode.
ordered
has been activatedmaxRetransmits
- maximum number of retransmissions that are attempted in unreliable mode.
ordered
has been activatedprotocol
- Name of the subprotocol used for data communicationcreateDataChannel(java.lang.String, boolean, int, int, java.lang.String)
void createDataChannel(Transaction tx, String label, boolean ordered, int maxPacketLifeTime, int maxRetransmits, String protocol)
label
- Channel's labelordered
- If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated.maxPacketLifeTime
- The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode.
ordered
has been activatedmaxRetransmits
- maximum number of retransmissions that are attempted in unreliable mode.
ordered
has been activatedprotocol
- Name of the subprotocol used for data communicationvoid closeDataChannel(int channelId)
channelId
- The channel identifiervoid closeDataChannel(int channelId, Continuation<Void> cont)
Continuation.onSuccess(F)
is called when the action is
done. If an error occurs, Continuation.onError(java.lang.Throwable)
is called.channelId
- The channel identifiercloseDataChannel(int)
void closeDataChannel(Transaction tx, int channelId)
channelId
- The channel identifiervoid createDataChannel()
void createDataChannel(Continuation<Void> cont)
Continuation.onSuccess(F)
is called when the action is
done. If an error occurs, Continuation.onError(java.lang.Throwable)
is called.void createDataChannel(Transaction tx)
void createDataChannel(String label)
label
- Channel's labelvoid createDataChannel(String label, Continuation<Void> cont)
Continuation.onSuccess(F)
is called when the action is
done. If an error occurs, Continuation.onError(java.lang.Throwable)
is called.label
- Channel's labelcreateDataChannel(java.lang.String, boolean, int, int, java.lang.String)
void createDataChannel(Transaction tx, String label)
label
- Channel's labelvoid createDataChannel(String label, boolean ordered)
label
- Channel's labelordered
- If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated.void createDataChannel(String label, boolean ordered, Continuation<Void> cont)
Continuation.onSuccess(F)
is called when the action is
done. If an error occurs, Continuation.onError(java.lang.Throwable)
is called.label
- Channel's labelordered
- If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated.createDataChannel(java.lang.String, boolean, int, int, java.lang.String)
void createDataChannel(Transaction tx, String label, boolean ordered)
label
- Channel's labelordered
- If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated.void createDataChannel(String label, boolean ordered, int maxPacketLifeTime)
label
- Channel's labelordered
- If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated.maxPacketLifeTime
- The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode.
ordered
has been activatedvoid createDataChannel(String label, boolean ordered, int maxPacketLifeTime, Continuation<Void> cont)
Continuation.onSuccess(F)
is called when the action is
done. If an error occurs, Continuation.onError(java.lang.Throwable)
is called.label
- Channel's labelordered
- If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated.maxPacketLifeTime
- The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode.
ordered
has been activatedcreateDataChannel(java.lang.String, boolean, int, int, java.lang.String)
void createDataChannel(Transaction tx, String label, boolean ordered, int maxPacketLifeTime)
label
- Channel's labelordered
- If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated.maxPacketLifeTime
- The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode.
ordered
has been activatedvoid createDataChannel(String label, boolean ordered, int maxPacketLifeTime, int maxRetransmits)
label
- Channel's labelordered
- If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated.maxPacketLifeTime
- The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode.
ordered
has been activatedmaxRetransmits
- maximum number of retransmissions that are attempted in unreliable mode.
ordered
has been activatedvoid createDataChannel(String label, boolean ordered, int maxPacketLifeTime, int maxRetransmits, Continuation<Void> cont)
Continuation.onSuccess(F)
is called when the action is
done. If an error occurs, Continuation.onError(java.lang.Throwable)
is called.label
- Channel's labelordered
- If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated.maxPacketLifeTime
- The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode.
ordered
has been activatedmaxRetransmits
- maximum number of retransmissions that are attempted in unreliable mode.
ordered
has been activatedcreateDataChannel(java.lang.String, boolean, int, int, java.lang.String)
void createDataChannel(Transaction tx, String label, boolean ordered, int maxPacketLifeTime, int maxRetransmits)
label
- Channel's labelordered
- If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated.maxPacketLifeTime
- The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode.
ordered
has been activatedmaxRetransmits
- maximum number of retransmissions that are attempted in unreliable mode.
ordered
has been activatedListenerSubscription addOnIceCandidateListener(EventListener<OnIceCandidateEvent> listener)
EventListener
for event OnIceCandidateEvent
. Synchronous call.listener
- Listener to be called on OnIceCandidateEventvoid addOnIceCandidateListener(EventListener<OnIceCandidateEvent> listener, Continuation<ListenerSubscription> cont)
EventListener
for event OnIceCandidateEvent
. Asynchronous call.
Calls Continuation<ListenerSubscription> when it has been added.listener
- Listener to be called on OnIceCandidateEventcont
- Continuation to be called when the listener is registeredvoid removeOnIceCandidateListener(ListenerSubscription listenerSubscription)
ListenerSubscription
for event OnIceCandidateEvent
. Synchronous call.listenerSubscription
- Listener subscription to be removedvoid removeOnIceCandidateListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
ListenerSubscription
for event OnIceCandidateEvent
. Asynchronous call.
Calls Continuation<Void> when it has been removed.listenerSubscription
- Listener subscription to be removedcont
- Continuation to be called when the listener is removedListenerSubscription addIceCandidateFoundListener(EventListener<IceCandidateFoundEvent> listener)
EventListener
for event IceCandidateFoundEvent
. Synchronous call.listener
- Listener to be called on IceCandidateFoundEventvoid addIceCandidateFoundListener(EventListener<IceCandidateFoundEvent> listener, Continuation<ListenerSubscription> cont)
EventListener
for event IceCandidateFoundEvent
. Asynchronous call.
Calls Continuation<ListenerSubscription> when it has been added.listener
- Listener to be called on IceCandidateFoundEventcont
- Continuation to be called when the listener is registeredvoid removeIceCandidateFoundListener(ListenerSubscription listenerSubscription)
ListenerSubscription
for event IceCandidateFoundEvent
. Synchronous call.listenerSubscription
- Listener subscription to be removedvoid removeIceCandidateFoundListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
ListenerSubscription
for event IceCandidateFoundEvent
. Asynchronous call.
Calls Continuation<Void> when it has been removed.listenerSubscription
- Listener subscription to be removedcont
- Continuation to be called when the listener is removedListenerSubscription addOnIceGatheringDoneListener(EventListener<OnIceGatheringDoneEvent> listener)
EventListener
for event OnIceGatheringDoneEvent
. Synchronous call.listener
- Listener to be called on OnIceGatheringDoneEventvoid addOnIceGatheringDoneListener(EventListener<OnIceGatheringDoneEvent> listener, Continuation<ListenerSubscription> cont)
EventListener
for event OnIceGatheringDoneEvent
. Asynchronous call.
Calls Continuation<ListenerSubscription> when it has been added.listener
- Listener to be called on OnIceGatheringDoneEventcont
- Continuation to be called when the listener is registeredvoid removeOnIceGatheringDoneListener(ListenerSubscription listenerSubscription)
ListenerSubscription
for event OnIceGatheringDoneEvent
. Synchronous call.listenerSubscription
- Listener subscription to be removedvoid removeOnIceGatheringDoneListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
ListenerSubscription
for event OnIceGatheringDoneEvent
. Asynchronous call.
Calls Continuation<Void> when it has been removed.listenerSubscription
- Listener subscription to be removedcont
- Continuation to be called when the listener is removedListenerSubscription addIceGatheringDoneListener(EventListener<IceGatheringDoneEvent> listener)
EventListener
for event IceGatheringDoneEvent
. Synchronous call.listener
- Listener to be called on IceGatheringDoneEventvoid addIceGatheringDoneListener(EventListener<IceGatheringDoneEvent> listener, Continuation<ListenerSubscription> cont)
EventListener
for event IceGatheringDoneEvent
. Asynchronous call.
Calls Continuation<ListenerSubscription> when it has been added.listener
- Listener to be called on IceGatheringDoneEventcont
- Continuation to be called when the listener is registeredvoid removeIceGatheringDoneListener(ListenerSubscription listenerSubscription)
ListenerSubscription
for event IceGatheringDoneEvent
. Synchronous call.listenerSubscription
- Listener subscription to be removedvoid removeIceGatheringDoneListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
ListenerSubscription
for event IceGatheringDoneEvent
. Asynchronous call.
Calls Continuation<Void> when it has been removed.listenerSubscription
- Listener subscription to be removedcont
- Continuation to be called when the listener is removedListenerSubscription addOnIceComponentStateChangedListener(EventListener<OnIceComponentStateChangedEvent> listener)
EventListener
for event OnIceComponentStateChangedEvent
. Synchronous call.listener
- Listener to be called on OnIceComponentStateChangedEventvoid addOnIceComponentStateChangedListener(EventListener<OnIceComponentStateChangedEvent> listener, Continuation<ListenerSubscription> cont)
EventListener
for event OnIceComponentStateChangedEvent
. Asynchronous call.
Calls Continuation<ListenerSubscription> when it has been added.listener
- Listener to be called on OnIceComponentStateChangedEventcont
- Continuation to be called when the listener is registeredvoid removeOnIceComponentStateChangedListener(ListenerSubscription listenerSubscription)
ListenerSubscription
for event OnIceComponentStateChangedEvent
. Synchronous call.listenerSubscription
- Listener subscription to be removedvoid removeOnIceComponentStateChangedListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
ListenerSubscription
for event OnIceComponentStateChangedEvent
. Asynchronous call.
Calls Continuation<Void> when it has been removed.listenerSubscription
- Listener subscription to be removedcont
- Continuation to be called when the listener is removedListenerSubscription addIceComponentStateChangeListener(EventListener<IceComponentStateChangeEvent> listener)
EventListener
for event IceComponentStateChangeEvent
. Synchronous call.listener
- Listener to be called on IceComponentStateChangeEventvoid addIceComponentStateChangeListener(EventListener<IceComponentStateChangeEvent> listener, Continuation<ListenerSubscription> cont)
EventListener
for event IceComponentStateChangeEvent
. Asynchronous call.
Calls Continuation<ListenerSubscription> when it has been added.listener
- Listener to be called on IceComponentStateChangeEventcont
- Continuation to be called when the listener is registeredvoid removeIceComponentStateChangeListener(ListenerSubscription listenerSubscription)
ListenerSubscription
for event IceComponentStateChangeEvent
. Synchronous call.listenerSubscription
- Listener subscription to be removedvoid removeIceComponentStateChangeListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
ListenerSubscription
for event IceComponentStateChangeEvent
. Asynchronous call.
Calls Continuation<Void> when it has been removed.listenerSubscription
- Listener subscription to be removedcont
- Continuation to be called when the listener is removedListenerSubscription addOnDataChannelOpenedListener(EventListener<OnDataChannelOpenedEvent> listener)
EventListener
for event OnDataChannelOpenedEvent
. Synchronous call.listener
- Listener to be called on OnDataChannelOpenedEventvoid addOnDataChannelOpenedListener(EventListener<OnDataChannelOpenedEvent> listener, Continuation<ListenerSubscription> cont)
EventListener
for event OnDataChannelOpenedEvent
. Asynchronous call.
Calls Continuation<ListenerSubscription> when it has been added.listener
- Listener to be called on OnDataChannelOpenedEventcont
- Continuation to be called when the listener is registeredvoid removeOnDataChannelOpenedListener(ListenerSubscription listenerSubscription)
ListenerSubscription
for event OnDataChannelOpenedEvent
. Synchronous call.listenerSubscription
- Listener subscription to be removedvoid removeOnDataChannelOpenedListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
ListenerSubscription
for event OnDataChannelOpenedEvent
. Asynchronous call.
Calls Continuation<Void> when it has been removed.listenerSubscription
- Listener subscription to be removedcont
- Continuation to be called when the listener is removedListenerSubscription addDataChannelOpenListener(EventListener<DataChannelOpenEvent> listener)
EventListener
for event DataChannelOpenEvent
. Synchronous call.listener
- Listener to be called on DataChannelOpenEventvoid addDataChannelOpenListener(EventListener<DataChannelOpenEvent> listener, Continuation<ListenerSubscription> cont)
EventListener
for event DataChannelOpenEvent
. Asynchronous call.
Calls Continuation<ListenerSubscription> when it has been added.listener
- Listener to be called on DataChannelOpenEventcont
- Continuation to be called when the listener is registeredvoid removeDataChannelOpenListener(ListenerSubscription listenerSubscription)
ListenerSubscription
for event DataChannelOpenEvent
. Synchronous call.listenerSubscription
- Listener subscription to be removedvoid removeDataChannelOpenListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
ListenerSubscription
for event DataChannelOpenEvent
. Asynchronous call.
Calls Continuation<Void> when it has been removed.listenerSubscription
- Listener subscription to be removedcont
- Continuation to be called when the listener is removedListenerSubscription addOnDataChannelClosedListener(EventListener<OnDataChannelClosedEvent> listener)
EventListener
for event OnDataChannelClosedEvent
. Synchronous call.listener
- Listener to be called on OnDataChannelClosedEventvoid addOnDataChannelClosedListener(EventListener<OnDataChannelClosedEvent> listener, Continuation<ListenerSubscription> cont)
EventListener
for event OnDataChannelClosedEvent
. Asynchronous call.
Calls Continuation<ListenerSubscription> when it has been added.listener
- Listener to be called on OnDataChannelClosedEventcont
- Continuation to be called when the listener is registeredvoid removeOnDataChannelClosedListener(ListenerSubscription listenerSubscription)
ListenerSubscription
for event OnDataChannelClosedEvent
. Synchronous call.listenerSubscription
- Listener subscription to be removedvoid removeOnDataChannelClosedListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
ListenerSubscription
for event OnDataChannelClosedEvent
. Asynchronous call.
Calls Continuation<Void> when it has been removed.listenerSubscription
- Listener subscription to be removedcont
- Continuation to be called when the listener is removedListenerSubscription addDataChannelCloseListener(EventListener<DataChannelCloseEvent> listener)
EventListener
for event DataChannelCloseEvent
. Synchronous call.listener
- Listener to be called on DataChannelCloseEventvoid addDataChannelCloseListener(EventListener<DataChannelCloseEvent> listener, Continuation<ListenerSubscription> cont)
EventListener
for event DataChannelCloseEvent
. Asynchronous call.
Calls Continuation<ListenerSubscription> when it has been added.listener
- Listener to be called on DataChannelCloseEventcont
- Continuation to be called when the listener is registeredvoid removeDataChannelCloseListener(ListenerSubscription listenerSubscription)
ListenerSubscription
for event DataChannelCloseEvent
. Synchronous call.listenerSubscription
- Listener subscription to be removedvoid removeDataChannelCloseListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
ListenerSubscription
for event DataChannelCloseEvent
. Asynchronous call.
Calls Continuation<Void> when it has been removed.listenerSubscription
- Listener subscription to be removedcont
- Continuation to be called when the listener is removedListenerSubscription addNewCandidatePairSelectedListener(EventListener<NewCandidatePairSelectedEvent> listener)
EventListener
for event NewCandidatePairSelectedEvent
. Synchronous call.listener
- Listener to be called on NewCandidatePairSelectedEventvoid addNewCandidatePairSelectedListener(EventListener<NewCandidatePairSelectedEvent> listener, Continuation<ListenerSubscription> cont)
EventListener
for event NewCandidatePairSelectedEvent
. Asynchronous call.
Calls Continuation<ListenerSubscription> when it has been added.listener
- Listener to be called on NewCandidatePairSelectedEventcont
- Continuation to be called when the listener is registeredvoid removeNewCandidatePairSelectedListener(ListenerSubscription listenerSubscription)
ListenerSubscription
for event NewCandidatePairSelectedEvent
. Synchronous call.listenerSubscription
- Listener subscription to be removedvoid removeNewCandidatePairSelectedListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
ListenerSubscription
for event NewCandidatePairSelectedEvent
. Asynchronous call.
Calls Continuation<Void> when it has been removed.listenerSubscription
- Listener subscription to be removedcont
- Continuation to be called when the listener is removedCopyright © 2019 Kurento. All rights reserved.