All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.kurento.client.WebRtcEndpoint Maven / Gradle / Ivy

Go to download

Kurento Client The Kurento Client project allows server applications to control media server resources.

There is a newer version: 7.1.0
Show newest version
/**
 * This file is generated with Kurento-maven-plugin.
 * Please don't edit.
 */
package org.kurento.client;


/**
 *
 * 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 *

*
    *
  • * As offerer: The negotiation process is initiated by the media server *
      *
    • * KMS generates the SDP offer through the * generateOffer method. This offer must then be sent * to the remote peer (the offeree) through the signaling channel, for * processing. *
    • *
    • * The remote peer processes the offer, and generates an * answer. The answer is sent back to the media server. *
    • *
    • * Upon receiving the answer, the endpoint must invoke the * processAnswer method. *
    • *
    *
  • *
  • * As offeree: The negotiation process is initiated by the remote peer *
      *
    • * The remote peer, acting as offerer, generates an SDP offer and * sends it to the WebRTC endpoint in Kurento. *
    • *
    • * The endpoint will process the offer invoking the * processOffer method. The result of this method will be a * string, containing an SDP answer. *
    • *
    • * The SDP answer must be sent back to the offerer, so it can be * processed. *
    • *
    *
  • *
*

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

*
    *
  • * Discovers ICE candidates for itself, containing pairs of IPs and ports. *
  • *
  • * ICE candidates are sent via the signaling channel as they are discovered, to * the remote peer for probing. *
  • *
  • * ICE connectivity checks are run as soon as the new candidate description, * from the remote peer, is available. *
  • *
*

* Once a suitable pair of candidates (one for each peer) is discovered, the * media session can start. The harvesting process in Kurento, begins with the * invocation of the 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 scheduled
    • *
    • GATHERING: Gathering local candidates
    • *
    • CONNECTING: Establishing connectivity
    • *
    • CONNECTED: At least one working candidate pair
    • *
    • * READY: ICE concluded, candidate pair selection is now final *
    • *
    • * FAILED: Connectivity checks have been completed, but media * connection was not established *
    • *
    * The transitions between states are covered in RFC5245. It could be said that * it's network-only, as it only takes into account the state of the network * connection, ignoring other higher level stuff, like DTLS handshake, RTCP * flow, etc. This implies that, while the component state is * CONNECTED, 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. *

*

* Note that the default VideoSendBandwidth range of the * endpoint is a VERY conservative one, and leads to a low maximum video quality. * Most applications will probably want to increase this to higher values such as * 2000 kbps (2 mbps). *

*

* * Check the extended documentation of these parameters in * {@link module:core/abstracts.SdpEndpoint SdpEndpoint}, {@link module:core/abstracts.BaseRtpEndpoint BaseRtpEndpoint}, and * {@link module:core/complexTypes.RembParams RembParams}. * *

*
    *
  • * Input bandwidth: Values used to inform remote peers about the bitrate that * can be sent to this endpoint. *
      *
    • * MinVideoRecvBandwidth: Minimum input bitrate, requested * from WebRTC senders with REMB (Default: 30 Kbps). *
    • *
    • * MaxAudioRecvBandwidth and * MaxVideoRecvBandwidth: Maximum input bitrate, signaled * in SDP Offers to WebRTC and RTP senders (Default: unlimited). *
    • *
    *
  • *
  • * Output bandwidth: Values used to control bitrate of the video streams sent * to remote peers. It is important to keep in mind that pushed bitrate depends * on network and remote peer capabilities. Remote peers can also announce * bandwidth limitation in their SDPs (through the * b={modifier}:{value} attribute). Kurento will always enforce * bitrate limitations specified by the remote peer over internal * configurations. *
      *
    • * MinVideoSendBandwidth: REMB override of minimum bitrate * sent to WebRTC receivers (Default: 100 Kbps). *
    • *
    • * MaxVideoSendBandwidth: REMB override of maximum bitrate * sent to WebRTC receivers (Default: 500 Kbps). *
    • *
    • * RembParams.rembOnConnect: Initial local REMB bandwidth * estimation that gets propagated when a new endpoint is connected. *
    • *
    *
  • *
*

* * All bandwidth control parameters must be changed before the SDP negotiation * takes place, and can't be changed afterwards. * *

*

* 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: *

*
    *
  • Reliable or partially reliable delivery of sent messages
  • *
  • In-order or out-of-order delivery of sent messages
  • *
*

* Unreliable, out-of-order delivery is equivalent to raw UDP semantics. The * message may make it, or it may not, and order is not important. However, the * channel can be configured to be partially reliable by specifying the * maximum number of retransmissions or setting a time limit for retransmissions: * the WebRTC stack will handle the acknowledgments and timeouts. *

*

* 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. *
  • *
* * **/ @org.kurento.client.internal.RemoteClass public interface WebRtcEndpoint extends BaseRtpEndpoint { /** * * Get Local network interfaces used for ICE gathering. *

* If you know which network interfaces should be used to perform ICE (for WebRTC * connectivity), you can define them here. Doing so has several advantages: *

*
    *
  • * The WebRTC ICE gathering process will be much quicker. Normally, it needs to * gather local candidates for all of the network interfaces, but this step can * be made faster if you limit it to only the interface that you know will * work. *
  • *
  • * It will ensure that the media server always decides to use the correct * network interface. With WebRTC ICE gathering it's possible that, under some * circumstances (in systems with virtual network interfaces such as * docker0) the ICE process ends up choosing the wrong local IP. *
  • *
*

* networkInterfaces is a comma-separated list of network interface * names. *

*

Examples:

*
    *
  • networkInterfaces=eth0
  • *
  • networkInterfaces=eth0,enp0s25
  • *
* * **/ String getNetworkInterfaces(); /** * * Get Local network interfaces used for ICE gathering. *

* If you know which network interfaces should be used to perform ICE (for WebRTC * connectivity), you can define them here. Doing so has several advantages: *

*
    *
  • * The WebRTC ICE gathering process will be much quicker. Normally, it needs to * gather local candidates for all of the network interfaces, but this step can * be made faster if you limit it to only the interface that you know will * work. *
  • *
  • * It will ensure that the media server always decides to use the correct * network interface. With WebRTC ICE gathering it's possible that, under some * circumstances (in systems with virtual network interfaces such as * docker0) the ICE process ends up choosing the wrong local IP. *
  • *
*

* networkInterfaces is a comma-separated list of network interface * names. *

*

Examples:

*
    *
  • networkInterfaces=eth0
  • *
  • networkInterfaces=eth0,enp0s25
  • *
* * **/ void getNetworkInterfaces(Continuation cont); /** * * Get Local network interfaces used for ICE gathering. *

* If you know which network interfaces should be used to perform ICE (for WebRTC * connectivity), you can define them here. Doing so has several advantages: *

*
    *
  • * The WebRTC ICE gathering process will be much quicker. Normally, it needs to * gather local candidates for all of the network interfaces, but this step can * be made faster if you limit it to only the interface that you know will * work. *
  • *
  • * It will ensure that the media server always decides to use the correct * network interface. With WebRTC ICE gathering it's possible that, under some * circumstances (in systems with virtual network interfaces such as * docker0) the ICE process ends up choosing the wrong local IP. *
  • *
*

* networkInterfaces is a comma-separated list of network interface * names. *

*

Examples:

*
    *
  • networkInterfaces=eth0
  • *
  • networkInterfaces=eth0,enp0s25
  • *
* * **/ TFuture getNetworkInterfaces(Transaction tx); /** * * Set Local network interfaces used for ICE gathering. *

* If you know which network interfaces should be used to perform ICE (for WebRTC * connectivity), you can define them here. Doing so has several advantages: *

*
    *
  • * The WebRTC ICE gathering process will be much quicker. Normally, it needs to * gather local candidates for all of the network interfaces, but this step can * be made faster if you limit it to only the interface that you know will * work. *
  • *
  • * It will ensure that the media server always decides to use the correct * network interface. With WebRTC ICE gathering it's possible that, under some * circumstances (in systems with virtual network interfaces such as * docker0) the ICE process ends up choosing the wrong local IP. *
  • *
*

* networkInterfaces is a comma-separated list of network interface * names. *

*

Examples:

*
    *
  • networkInterfaces=eth0
  • *
  • networkInterfaces=eth0,enp0s25
  • *
* * **/ void setNetworkInterfaces(@org.kurento.client.internal.server.Param("networkInterfaces") String networkInterfaces); /** * * Set Local network interfaces used for ICE gathering. *

* If you know which network interfaces should be used to perform ICE (for WebRTC * connectivity), you can define them here. Doing so has several advantages: *

*
    *
  • * The WebRTC ICE gathering process will be much quicker. Normally, it needs to * gather local candidates for all of the network interfaces, but this step can * be made faster if you limit it to only the interface that you know will * work. *
  • *
  • * It will ensure that the media server always decides to use the correct * network interface. With WebRTC ICE gathering it's possible that, under some * circumstances (in systems with virtual network interfaces such as * docker0) the ICE process ends up choosing the wrong local IP. *
  • *
*

* networkInterfaces is a comma-separated list of network interface * names. *

*

Examples:

*
    *
  • networkInterfaces=eth0
  • *
  • networkInterfaces=eth0,enp0s25
  • *
* * **/ void setNetworkInterfaces(@org.kurento.client.internal.server.Param("networkInterfaces") String networkInterfaces, Continuation cont); /** * * Set Local network interfaces used for ICE gathering. *

* If you know which network interfaces should be used to perform ICE (for WebRTC * connectivity), you can define them here. Doing so has several advantages: *

*
    *
  • * The WebRTC ICE gathering process will be much quicker. Normally, it needs to * gather local candidates for all of the network interfaces, but this step can * be made faster if you limit it to only the interface that you know will * work. *
  • *
  • * It will ensure that the media server always decides to use the correct * network interface. With WebRTC ICE gathering it's possible that, under some * circumstances (in systems with virtual network interfaces such as * docker0) the ICE process ends up choosing the wrong local IP. *
  • *
*

* networkInterfaces is a comma-separated list of network interface * names. *

*

Examples:

*
    *
  • networkInterfaces=eth0
  • *
  • networkInterfaces=eth0,enp0s25
  • *
* * **/ void setNetworkInterfaces(@org.kurento.client.internal.server.Param("networkInterfaces") String networkInterfaces, Transaction tx); /** * * Get Enable ICE-TCP candidate gathering. *

* This setting enables or disables using TCP for ICE candidate gathering in the * underlying libnice library: * https://libnice.freedesktop.org/libnice/NiceAgent.html#NiceAgent--ice-tcp *

*

* You might want to disable ICE-TCP to potentially speed up ICE gathering by * avoiding TCP candidates in scenarios where they are not needed. *

*

iceTcp is either 1 (ON) or 0 (OFF). Default: 1 (ON).

* * **/ boolean getIceTcp(); /** * * Get Enable ICE-TCP candidate gathering. *

* This setting enables or disables using TCP for ICE candidate gathering in the * underlying libnice library: * https://libnice.freedesktop.org/libnice/NiceAgent.html#NiceAgent--ice-tcp *

*

* You might want to disable ICE-TCP to potentially speed up ICE gathering by * avoiding TCP candidates in scenarios where they are not needed. *

*

iceTcp is either 1 (ON) or 0 (OFF). Default: 1 (ON).

* * **/ void getIceTcp(Continuation cont); /** * * Get Enable ICE-TCP candidate gathering. *

* This setting enables or disables using TCP for ICE candidate gathering in the * underlying libnice library: * https://libnice.freedesktop.org/libnice/NiceAgent.html#NiceAgent--ice-tcp *

*

* You might want to disable ICE-TCP to potentially speed up ICE gathering by * avoiding TCP candidates in scenarios where they are not needed. *

*

iceTcp is either 1 (ON) or 0 (OFF). Default: 1 (ON).

* * **/ TFuture getIceTcp(Transaction tx); /** * * Set Enable ICE-TCP candidate gathering. *

* This setting enables or disables using TCP for ICE candidate gathering in the * underlying libnice library: * https://libnice.freedesktop.org/libnice/NiceAgent.html#NiceAgent--ice-tcp *

*

* You might want to disable ICE-TCP to potentially speed up ICE gathering by * avoiding TCP candidates in scenarios where they are not needed. *

*

iceTcp is either 1 (ON) or 0 (OFF). Default: 1 (ON).

* * **/ void setIceTcp(@org.kurento.client.internal.server.Param("iceTcp") boolean iceTcp); /** * * Set Enable ICE-TCP candidate gathering. *

* This setting enables or disables using TCP for ICE candidate gathering in the * underlying libnice library: * https://libnice.freedesktop.org/libnice/NiceAgent.html#NiceAgent--ice-tcp *

*

* You might want to disable ICE-TCP to potentially speed up ICE gathering by * avoiding TCP candidates in scenarios where they are not needed. *

*

iceTcp is either 1 (ON) or 0 (OFF). Default: 1 (ON).

* * **/ void setIceTcp(@org.kurento.client.internal.server.Param("iceTcp") boolean iceTcp, Continuation cont); /** * * Set Enable ICE-TCP candidate gathering. *

* This setting enables or disables using TCP for ICE candidate gathering in the * underlying libnice library: * https://libnice.freedesktop.org/libnice/NiceAgent.html#NiceAgent--ice-tcp *

*

* You might want to disable ICE-TCP to potentially speed up ICE gathering by * avoiding TCP candidates in scenarios where they are not needed. *

*

iceTcp is either 1 (ON) or 0 (OFF). Default: 1 (ON).

* * **/ void setIceTcp(@org.kurento.client.internal.server.Param("iceTcp") boolean iceTcp, Transaction tx); /** * * Get STUN server IP address. *

The ICE process uses STUN to punch holes through NAT firewalls.

*

* stunServerAddress MUST be an IP address; domain names are NOT * supported. *

*

* You need to use a well-working STUN server. Use this to check if it works:
* https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
* From that check, you should get at least one Server-Reflexive Candidate (type * srflx). *

* * **/ String getStunServerAddress(); /** * * Get STUN server IP address. *

The ICE process uses STUN to punch holes through NAT firewalls.

*

* stunServerAddress MUST be an IP address; domain names are NOT * supported. *

*

* You need to use a well-working STUN server. Use this to check if it works:
* https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
* From that check, you should get at least one Server-Reflexive Candidate (type * srflx). *

* * **/ void getStunServerAddress(Continuation cont); /** * * Get STUN server IP address. *

The ICE process uses STUN to punch holes through NAT firewalls.

*

* stunServerAddress MUST be an IP address; domain names are NOT * supported. *

*

* You need to use a well-working STUN server. Use this to check if it works:
* https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
* From that check, you should get at least one Server-Reflexive Candidate (type * srflx). *

* * **/ TFuture getStunServerAddress(Transaction tx); /** * * Set STUN server IP address. *

The ICE process uses STUN to punch holes through NAT firewalls.

*

* stunServerAddress MUST be an IP address; domain names are NOT * supported. *

*

* You need to use a well-working STUN server. Use this to check if it works:
* https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
* From that check, you should get at least one Server-Reflexive Candidate (type * srflx). *

* * **/ void setStunServerAddress(@org.kurento.client.internal.server.Param("stunServerAddress") String stunServerAddress); /** * * Set STUN server IP address. *

The ICE process uses STUN to punch holes through NAT firewalls.

*

* stunServerAddress MUST be an IP address; domain names are NOT * supported. *

*

* You need to use a well-working STUN server. Use this to check if it works:
* https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
* From that check, you should get at least one Server-Reflexive Candidate (type * srflx). *

* * **/ void setStunServerAddress(@org.kurento.client.internal.server.Param("stunServerAddress") String stunServerAddress, Continuation cont); /** * * Set STUN server IP address. *

The ICE process uses STUN to punch holes through NAT firewalls.

*

* stunServerAddress MUST be an IP address; domain names are NOT * supported. *

*

* You need to use a well-working STUN server. Use this to check if it works:
* https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
* From that check, you should get at least one Server-Reflexive Candidate (type * srflx). *

* * **/ void setStunServerAddress(@org.kurento.client.internal.server.Param("stunServerAddress") String stunServerAddress, Transaction tx); /** * * Get Port of the STUN server * **/ int getStunServerPort(); /** * * Get Port of the STUN server * **/ void getStunServerPort(Continuation cont); /** * * Get Port of the STUN server * **/ TFuture getStunServerPort(Transaction tx); /** * * Set Port of the STUN server * **/ void setStunServerPort(@org.kurento.client.internal.server.Param("stunServerPort") int stunServerPort); /** * * Set Port of the STUN server * **/ void setStunServerPort(@org.kurento.client.internal.server.Param("stunServerPort") int stunServerPort, Continuation cont); /** * * Set Port of the STUN server * **/ void setStunServerPort(@org.kurento.client.internal.server.Param("stunServerPort") int stunServerPort, Transaction tx); /** * * Get TURN server URL. *

* When STUN is not enough to open connections through some NAT firewalls, using * TURN is the remaining alternative. *

*

* Note that TURN is a superset of STUN, so you don't need to configure STUN if * you are using TURN. *

*

The provided URL should follow one of these formats:

*
    *
  • user:password@ipaddress:port
  • *
  • * user:password@ipaddress:port?transport=[udp|tcp|tls] *
  • *
*

* ipaddress MUST be an IP address; domain names are NOT supported.
* transport is OPTIONAL. Possible values: udp, tcp, tls. Default: udp. *

*

* You need to use a well-working TURN server. Use this to check if it works:
* https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
* From that check, you should get at least one Server-Reflexive Candidate (type * srflx) AND one Relay Candidate (type relay). *

* * **/ String getTurnUrl(); /** * * Get TURN server URL. *

* When STUN is not enough to open connections through some NAT firewalls, using * TURN is the remaining alternative. *

*

* Note that TURN is a superset of STUN, so you don't need to configure STUN if * you are using TURN. *

*

The provided URL should follow one of these formats:

*
    *
  • user:password@ipaddress:port
  • *
  • * user:password@ipaddress:port?transport=[udp|tcp|tls] *
  • *
*

* ipaddress MUST be an IP address; domain names are NOT supported.
* transport is OPTIONAL. Possible values: udp, tcp, tls. Default: udp. *

*

* You need to use a well-working TURN server. Use this to check if it works:
* https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
* From that check, you should get at least one Server-Reflexive Candidate (type * srflx) AND one Relay Candidate (type relay). *

* * **/ void getTurnUrl(Continuation cont); /** * * Get TURN server URL. *

* When STUN is not enough to open connections through some NAT firewalls, using * TURN is the remaining alternative. *

*

* Note that TURN is a superset of STUN, so you don't need to configure STUN if * you are using TURN. *

*

The provided URL should follow one of these formats:

*
    *
  • user:password@ipaddress:port
  • *
  • * user:password@ipaddress:port?transport=[udp|tcp|tls] *
  • *
*

* ipaddress MUST be an IP address; domain names are NOT supported.
* transport is OPTIONAL. Possible values: udp, tcp, tls. Default: udp. *

*

* You need to use a well-working TURN server. Use this to check if it works:
* https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
* From that check, you should get at least one Server-Reflexive Candidate (type * srflx) AND one Relay Candidate (type relay). *

* * **/ TFuture getTurnUrl(Transaction tx); /** * * Set TURN server URL. *

* When STUN is not enough to open connections through some NAT firewalls, using * TURN is the remaining alternative. *

*

* Note that TURN is a superset of STUN, so you don't need to configure STUN if * you are using TURN. *

*

The provided URL should follow one of these formats:

*
    *
  • user:password@ipaddress:port
  • *
  • * user:password@ipaddress:port?transport=[udp|tcp|tls] *
  • *
*

* ipaddress MUST be an IP address; domain names are NOT supported.
* transport is OPTIONAL. Possible values: udp, tcp, tls. Default: udp. *

*

* You need to use a well-working TURN server. Use this to check if it works:
* https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
* From that check, you should get at least one Server-Reflexive Candidate (type * srflx) AND one Relay Candidate (type relay). *

* * **/ void setTurnUrl(@org.kurento.client.internal.server.Param("turnUrl") String turnUrl); /** * * Set TURN server URL. *

* When STUN is not enough to open connections through some NAT firewalls, using * TURN is the remaining alternative. *

*

* Note that TURN is a superset of STUN, so you don't need to configure STUN if * you are using TURN. *

*

The provided URL should follow one of these formats:

*
    *
  • user:password@ipaddress:port
  • *
  • * user:password@ipaddress:port?transport=[udp|tcp|tls] *
  • *
*

* ipaddress MUST be an IP address; domain names are NOT supported.
* transport is OPTIONAL. Possible values: udp, tcp, tls. Default: udp. *

*

* You need to use a well-working TURN server. Use this to check if it works:
* https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
* From that check, you should get at least one Server-Reflexive Candidate (type * srflx) AND one Relay Candidate (type relay). *

* * **/ void setTurnUrl(@org.kurento.client.internal.server.Param("turnUrl") String turnUrl, Continuation cont); /** * * Set TURN server URL. *

* When STUN is not enough to open connections through some NAT firewalls, using * TURN is the remaining alternative. *

*

* Note that TURN is a superset of STUN, so you don't need to configure STUN if * you are using TURN. *

*

The provided URL should follow one of these formats:

*
    *
  • user:password@ipaddress:port
  • *
  • * user:password@ipaddress:port?transport=[udp|tcp|tls] *
  • *
*

* ipaddress MUST be an IP address; domain names are NOT supported.
* transport is OPTIONAL. Possible values: udp, tcp, tls. Default: udp. *

*

* You need to use a well-working TURN server. Use this to check if it works:
* https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
* From that check, you should get at least one Server-Reflexive Candidate (type * srflx) AND one Relay Candidate (type relay). *

* * **/ void setTurnUrl(@org.kurento.client.internal.server.Param("turnUrl") String turnUrl, Transaction tx); /** * * Get External IPv4 address of the media server. *

* Forces all local IPv4 ICE candidates to have the given address. This is really * nothing more than a hack, but it's very effective to force a public IP address * when one is known in advance for the media server. In doing so, KMS will not * need a STUN or TURN server, but remote peers will still be able to contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalIPv4 is a single IPv4 address.

*

Example:

*
    *
  • externalIPv4=198.51.100.1
  • *
* * **/ String getExternalIPv4(); /** * * Get External IPv4 address of the media server. *

* Forces all local IPv4 ICE candidates to have the given address. This is really * nothing more than a hack, but it's very effective to force a public IP address * when one is known in advance for the media server. In doing so, KMS will not * need a STUN or TURN server, but remote peers will still be able to contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalIPv4 is a single IPv4 address.

*

Example:

*
    *
  • externalIPv4=198.51.100.1
  • *
* * **/ void getExternalIPv4(Continuation cont); /** * * Get External IPv4 address of the media server. *

* Forces all local IPv4 ICE candidates to have the given address. This is really * nothing more than a hack, but it's very effective to force a public IP address * when one is known in advance for the media server. In doing so, KMS will not * need a STUN or TURN server, but remote peers will still be able to contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalIPv4 is a single IPv4 address.

*

Example:

*
    *
  • externalIPv4=198.51.100.1
  • *
* * **/ TFuture getExternalIPv4(Transaction tx); /** * * Set External IPv4 address of the media server. *

* Forces all local IPv4 ICE candidates to have the given address. This is really * nothing more than a hack, but it's very effective to force a public IP address * when one is known in advance for the media server. In doing so, KMS will not * need a STUN or TURN server, but remote peers will still be able to contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalIPv4 is a single IPv4 address.

*

Example:

*
    *
  • externalIPv4=198.51.100.1
  • *
* * **/ void setExternalIPv4(@org.kurento.client.internal.server.Param("externalIPv4") String externalIPv4); /** * * Set External IPv4 address of the media server. *

* Forces all local IPv4 ICE candidates to have the given address. This is really * nothing more than a hack, but it's very effective to force a public IP address * when one is known in advance for the media server. In doing so, KMS will not * need a STUN or TURN server, but remote peers will still be able to contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalIPv4 is a single IPv4 address.

*

Example:

*
    *
  • externalIPv4=198.51.100.1
  • *
* * **/ void setExternalIPv4(@org.kurento.client.internal.server.Param("externalIPv4") String externalIPv4, Continuation cont); /** * * Set External IPv4 address of the media server. *

* Forces all local IPv4 ICE candidates to have the given address. This is really * nothing more than a hack, but it's very effective to force a public IP address * when one is known in advance for the media server. In doing so, KMS will not * need a STUN or TURN server, but remote peers will still be able to contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalIPv4 is a single IPv4 address.

*

Example:

*
    *
  • externalIPv4=198.51.100.1
  • *
* * **/ void setExternalIPv4(@org.kurento.client.internal.server.Param("externalIPv4") String externalIPv4, Transaction tx); /** * * Get External IPv6 address of the media server. *

* Forces all local IPv6 ICE candidates to have the given address. This is really * nothing more than a hack, but it's very effective to force a public IP address * when one is known in advance for the media server. In doing so, KMS will not * need a STUN or TURN server, but remote peers will still be able to contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalIPv6 is a single IPv6 address.

*

Example:

*
    *
  • externalIPv6=2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • *
* * **/ String getExternalIPv6(); /** * * Get External IPv6 address of the media server. *

* Forces all local IPv6 ICE candidates to have the given address. This is really * nothing more than a hack, but it's very effective to force a public IP address * when one is known in advance for the media server. In doing so, KMS will not * need a STUN or TURN server, but remote peers will still be able to contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalIPv6 is a single IPv6 address.

*

Example:

*
    *
  • externalIPv6=2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • *
* * **/ void getExternalIPv6(Continuation cont); /** * * Get External IPv6 address of the media server. *

* Forces all local IPv6 ICE candidates to have the given address. This is really * nothing more than a hack, but it's very effective to force a public IP address * when one is known in advance for the media server. In doing so, KMS will not * need a STUN or TURN server, but remote peers will still be able to contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalIPv6 is a single IPv6 address.

*

Example:

*
    *
  • externalIPv6=2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • *
* * **/ TFuture getExternalIPv6(Transaction tx); /** * * Set External IPv6 address of the media server. *

* Forces all local IPv6 ICE candidates to have the given address. This is really * nothing more than a hack, but it's very effective to force a public IP address * when one is known in advance for the media server. In doing so, KMS will not * need a STUN or TURN server, but remote peers will still be able to contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalIPv6 is a single IPv6 address.

*

Example:

*
    *
  • externalIPv6=2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • *
* * **/ void setExternalIPv6(@org.kurento.client.internal.server.Param("externalIPv6") String externalIPv6); /** * * Set External IPv6 address of the media server. *

* Forces all local IPv6 ICE candidates to have the given address. This is really * nothing more than a hack, but it's very effective to force a public IP address * when one is known in advance for the media server. In doing so, KMS will not * need a STUN or TURN server, but remote peers will still be able to contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalIPv6 is a single IPv6 address.

*

Example:

*
    *
  • externalIPv6=2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • *
* * **/ void setExternalIPv6(@org.kurento.client.internal.server.Param("externalIPv6") String externalIPv6, Continuation cont); /** * * Set External IPv6 address of the media server. *

* Forces all local IPv6 ICE candidates to have the given address. This is really * nothing more than a hack, but it's very effective to force a public IP address * when one is known in advance for the media server. In doing so, KMS will not * need a STUN or TURN server, but remote peers will still be able to contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalIPv6 is a single IPv6 address.

*

Example:

*
    *
  • externalIPv6=2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • *
* * **/ void setExternalIPv6(@org.kurento.client.internal.server.Param("externalIPv6") String externalIPv6, Transaction tx); /** * * Get External IP address of the media server. *

* Forces all local IPv4 and IPv6 ICE candidates to have the given address. This * is really nothing more than a hack, but it's very effective to force a public * IP address when one is known in advance for the media server. In doing so, KMS * will not need a STUN or TURN server, but remote peers will still be able to * contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalAddress is a single IPv4 or IPv6 address.

*

Examples:

*
    *
  • externalAddress=198.51.100.1
  • *
  • externalAddress=2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • *
* @deprecated Use externalIPv4 and/or externalIPv6 instead. * * **/ String getExternalAddress(); /** * * Get External IP address of the media server. *

* Forces all local IPv4 and IPv6 ICE candidates to have the given address. This * is really nothing more than a hack, but it's very effective to force a public * IP address when one is known in advance for the media server. In doing so, KMS * will not need a STUN or TURN server, but remote peers will still be able to * contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalAddress is a single IPv4 or IPv6 address.

*

Examples:

*
    *
  • externalAddress=198.51.100.1
  • *
  • externalAddress=2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • *
* @deprecated Use externalIPv4 and/or externalIPv6 instead. * * **/ void getExternalAddress(Continuation cont); /** * * Get External IP address of the media server. *

* Forces all local IPv4 and IPv6 ICE candidates to have the given address. This * is really nothing more than a hack, but it's very effective to force a public * IP address when one is known in advance for the media server. In doing so, KMS * will not need a STUN or TURN server, but remote peers will still be able to * contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalAddress is a single IPv4 or IPv6 address.

*

Examples:

*
    *
  • externalAddress=198.51.100.1
  • *
  • externalAddress=2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • *
* @deprecated Use externalIPv4 and/or externalIPv6 instead. * * **/ TFuture getExternalAddress(Transaction tx); /** * * Set External IP address of the media server. *

* Forces all local IPv4 and IPv6 ICE candidates to have the given address. This * is really nothing more than a hack, but it's very effective to force a public * IP address when one is known in advance for the media server. In doing so, KMS * will not need a STUN or TURN server, but remote peers will still be able to * contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalAddress is a single IPv4 or IPv6 address.

*

Examples:

*
    *
  • externalAddress=198.51.100.1
  • *
  • externalAddress=2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • *
* @deprecated Use externalIPv4 and/or externalIPv6 instead. * * **/ void setExternalAddress(@org.kurento.client.internal.server.Param("externalAddress") String externalAddress); /** * * Set External IP address of the media server. *

* Forces all local IPv4 and IPv6 ICE candidates to have the given address. This * is really nothing more than a hack, but it's very effective to force a public * IP address when one is known in advance for the media server. In doing so, KMS * will not need a STUN or TURN server, but remote peers will still be able to * contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalAddress is a single IPv4 or IPv6 address.

*

Examples:

*
    *
  • externalAddress=198.51.100.1
  • *
  • externalAddress=2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • *
* @deprecated Use externalIPv4 and/or externalIPv6 instead. * * **/ void setExternalAddress(@org.kurento.client.internal.server.Param("externalAddress") String externalAddress, Continuation cont); /** * * Set External IP address of the media server. *

* Forces all local IPv4 and IPv6 ICE candidates to have the given address. This * is really nothing more than a hack, but it's very effective to force a public * IP address when one is known in advance for the media server. In doing so, KMS * will not need a STUN or TURN server, but remote peers will still be able to * contact it. *

*

* You can try using this setting if KMS is deployed on a publicly accessible * server, without NAT, and with a static public IP address. But if it doesn't * work for you, just go back to configuring a STUN or TURN server for ICE. *

*

* Only set this parameter if you know what you're doing, and you understand 100% * WHY you need it. For the majority of cases, you should just prefer to * configure a STUN or TURN server. *

*

externalAddress is a single IPv4 or IPv6 address.

*

Examples:

*
    *
  • externalAddress=198.51.100.1
  • *
  • externalAddress=2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • *
* @deprecated Use externalIPv4 and/or externalIPv6 instead. * * **/ void setExternalAddress(@org.kurento.client.internal.server.Param("externalAddress") String externalAddress, Transaction tx); /** * * Get the ICE candidate pair (local and remote candidates) used by the ice library for each stream. * **/ java.util.List getICECandidatePairs(); /** * * Get the ICE candidate pair (local and remote candidates) used by the ice library for each stream. * **/ void getICECandidatePairs(Continuation> cont); /** * * Get the ICE candidate pair (local and remote candidates) used by the ice library for each stream. * **/ TFuture> getICECandidatePairs(Transaction tx); /** * * Get the ICE connection state for all the connections. * **/ java.util.List getIceConnectionState(); /** * * Get the ICE connection state for all the connections. * **/ void getIceConnectionState(Continuation> cont); /** * * Get the ICE connection state for all the connections. * **/ TFuture> getIceConnectionState(Transaction tx); /** * * Start the gathering of ICE candidates. *

* It must be called after SdpEndpoint::generateOffer or * SdpEndpoint::processOffer for Trickle ICE. If * invoked before generating or processing an SDP offer, the candidates gathered * will be added to the SDP processed. *

* * **/ void gatherCandidates(); /** * * Asynchronous version of gatherCandidates: * {@link Continuation#onSuccess} is called when the action is * done. If an error occurs, {@link Continuation#onError} is called. * @see WebRtcEndpoint#gatherCandidates * **/ void gatherCandidates(Continuation cont); /** * * Start the gathering of ICE candidates. *

* It must be called after SdpEndpoint::generateOffer or * SdpEndpoint::processOffer for Trickle ICE. If * invoked before generating or processing an SDP offer, the candidates gathered * will be added to the SDP processed. *

* * **/ void gatherCandidates(Transaction tx); /** * * Process an ICE candidate sent by the remote peer of the connection. * * @param candidate * Remote ICE candidate * **/ void addIceCandidate(@org.kurento.client.internal.server.Param("candidate") org.kurento.client.IceCandidate candidate); /** * * Asynchronous version of addIceCandidate: * {@link Continuation#onSuccess} is called when the action is * done. If an error occurs, {@link Continuation#onError} is called. * @see WebRtcEndpoint#addIceCandidate * * @param candidate * Remote ICE candidate * **/ void addIceCandidate(@org.kurento.client.internal.server.Param("candidate") org.kurento.client.IceCandidate candidate, Continuation cont); /** * * Process an ICE candidate sent by the remote peer of the connection. * * @param candidate * Remote ICE candidate * **/ void addIceCandidate(Transaction tx, @org.kurento.client.internal.server.Param("candidate") org.kurento.client.IceCandidate candidate); /** * * Create a new data channel, if data channels are supported. *

* Being supported means that the WebRtcEndpoint has been created with data * channel support, the client also supports data channels, and they have been * negotiated in the SDP exchange. Otherwise, the method throws an exception, * indicating that the operation is not possible. *

*

* Data channels can work in either unreliable mode (analogous to User Datagram * Protocol or UDP) or reliable mode (analogous to Transmission Control Protocol * or TCP). The two modes have a simple distinction: *

*
    *
  • * Reliable mode guarantees the transmission of messages and also the order in * which they are delivered. This takes extra overhead, thus potentially making * this mode slower. *
  • *
  • * Unreliable mode does not guarantee every message will get to the other side * nor what order they get there. This removes the overhead, allowing this mode * to work much faster. *
  • *
*

If data channels are not supported, this method throws an exception.

* * * @param label * Channel's label * @param ordered * If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated. * @param maxPacketLifeTime * The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * @param maxRetransmits * maximum number of retransmissions that are attempted in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * @param protocol * Name of the subprotocol used for data communication * **/ void createDataChannel(@org.kurento.client.internal.server.Param("label") String label, @org.kurento.client.internal.server.Param("ordered") boolean ordered, @org.kurento.client.internal.server.Param("maxPacketLifeTime") int maxPacketLifeTime, @org.kurento.client.internal.server.Param("maxRetransmits") int maxRetransmits, @org.kurento.client.internal.server.Param("protocol") String protocol); /** * * Asynchronous version of createDataChannel: * {@link Continuation#onSuccess} is called when the action is * done. If an error occurs, {@link Continuation#onError} is called. * @see WebRtcEndpoint#createDataChannel * * @param label * Channel's label * @param ordered * If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated. * @param maxPacketLifeTime * The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * @param maxRetransmits * maximum number of retransmissions that are attempted in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * @param protocol * Name of the subprotocol used for data communication * **/ void createDataChannel(@org.kurento.client.internal.server.Param("label") String label, @org.kurento.client.internal.server.Param("ordered") boolean ordered, @org.kurento.client.internal.server.Param("maxPacketLifeTime") int maxPacketLifeTime, @org.kurento.client.internal.server.Param("maxRetransmits") int maxRetransmits, @org.kurento.client.internal.server.Param("protocol") String protocol, Continuation cont); /** * * Create a new data channel, if data channels are supported. *

* Being supported means that the WebRtcEndpoint has been created with data * channel support, the client also supports data channels, and they have been * negotiated in the SDP exchange. Otherwise, the method throws an exception, * indicating that the operation is not possible. *

*

* Data channels can work in either unreliable mode (analogous to User Datagram * Protocol or UDP) or reliable mode (analogous to Transmission Control Protocol * or TCP). The two modes have a simple distinction: *

*
    *
  • * Reliable mode guarantees the transmission of messages and also the order in * which they are delivered. This takes extra overhead, thus potentially making * this mode slower. *
  • *
  • * Unreliable mode does not guarantee every message will get to the other side * nor what order they get there. This removes the overhead, allowing this mode * to work much faster. *
  • *
*

If data channels are not supported, this method throws an exception.

* * * @param label * Channel's label * @param ordered * If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated. * @param maxPacketLifeTime * The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * @param maxRetransmits * maximum number of retransmissions that are attempted in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * @param protocol * Name of the subprotocol used for data communication * **/ void createDataChannel(Transaction tx, @org.kurento.client.internal.server.Param("label") String label, @org.kurento.client.internal.server.Param("ordered") boolean ordered, @org.kurento.client.internal.server.Param("maxPacketLifeTime") int maxPacketLifeTime, @org.kurento.client.internal.server.Param("maxRetransmits") int maxRetransmits, @org.kurento.client.internal.server.Param("protocol") String protocol); /** * * Closes an open data channel * * @param channelId * The channel identifier * **/ void closeDataChannel(@org.kurento.client.internal.server.Param("channelId") int channelId); /** * * Asynchronous version of closeDataChannel: * {@link Continuation#onSuccess} is called when the action is * done. If an error occurs, {@link Continuation#onError} is called. * @see WebRtcEndpoint#closeDataChannel * * @param channelId * The channel identifier * **/ void closeDataChannel(@org.kurento.client.internal.server.Param("channelId") int channelId, Continuation cont); /** * * Closes an open data channel * * @param channelId * The channel identifier * **/ void closeDataChannel(Transaction tx, @org.kurento.client.internal.server.Param("channelId") int channelId); /** * * Create a new data channel, if data channels are supported. *

* Being supported means that the WebRtcEndpoint has been created with data * channel support, the client also supports data channels, and they have been * negotiated in the SDP exchange. Otherwise, the method throws an exception, * indicating that the operation is not possible. *

*

* Data channels can work in either unreliable mode (analogous to User Datagram * Protocol or UDP) or reliable mode (analogous to Transmission Control Protocol * or TCP). The two modes have a simple distinction: *

*
    *
  • * Reliable mode guarantees the transmission of messages and also the order in * which they are delivered. This takes extra overhead, thus potentially making * this mode slower. *
  • *
  • * Unreliable mode does not guarantee every message will get to the other side * nor what order they get there. This removes the overhead, allowing this mode * to work much faster. *
  • *
*

If data channels are not supported, this method throws an exception.

* * **/ void createDataChannel(); /** * * Asynchronous version of createDataChannel: * {@link Continuation#onSuccess} is called when the action is * done. If an error occurs, {@link Continuation#onError} is called. * @see WebRtcEndpoint#createDataChannel * **/ void createDataChannel(Continuation cont); /** * * Create a new data channel, if data channels are supported. *

* Being supported means that the WebRtcEndpoint has been created with data * channel support, the client also supports data channels, and they have been * negotiated in the SDP exchange. Otherwise, the method throws an exception, * indicating that the operation is not possible. *

*

* Data channels can work in either unreliable mode (analogous to User Datagram * Protocol or UDP) or reliable mode (analogous to Transmission Control Protocol * or TCP). The two modes have a simple distinction: *

*
    *
  • * Reliable mode guarantees the transmission of messages and also the order in * which they are delivered. This takes extra overhead, thus potentially making * this mode slower. *
  • *
  • * Unreliable mode does not guarantee every message will get to the other side * nor what order they get there. This removes the overhead, allowing this mode * to work much faster. *
  • *
*

If data channels are not supported, this method throws an exception.

* * **/ void createDataChannel(Transaction tx); /** * * Create a new data channel, if data channels are supported. *

* Being supported means that the WebRtcEndpoint has been created with data * channel support, the client also supports data channels, and they have been * negotiated in the SDP exchange. Otherwise, the method throws an exception, * indicating that the operation is not possible. *

*

* Data channels can work in either unreliable mode (analogous to User Datagram * Protocol or UDP) or reliable mode (analogous to Transmission Control Protocol * or TCP). The two modes have a simple distinction: *

*
    *
  • * Reliable mode guarantees the transmission of messages and also the order in * which they are delivered. This takes extra overhead, thus potentially making * this mode slower. *
  • *
  • * Unreliable mode does not guarantee every message will get to the other side * nor what order they get there. This removes the overhead, allowing this mode * to work much faster. *
  • *
*

If data channels are not supported, this method throws an exception.

* * * @param label * Channel's label * **/ void createDataChannel(@org.kurento.client.internal.server.Param("label") String label); /** * * Asynchronous version of createDataChannel: * {@link Continuation#onSuccess} is called when the action is * done. If an error occurs, {@link Continuation#onError} is called. * @see WebRtcEndpoint#createDataChannel * * @param label * Channel's label * **/ void createDataChannel(@org.kurento.client.internal.server.Param("label") String label, Continuation cont); /** * * Create a new data channel, if data channels are supported. *

* Being supported means that the WebRtcEndpoint has been created with data * channel support, the client also supports data channels, and they have been * negotiated in the SDP exchange. Otherwise, the method throws an exception, * indicating that the operation is not possible. *

*

* Data channels can work in either unreliable mode (analogous to User Datagram * Protocol or UDP) or reliable mode (analogous to Transmission Control Protocol * or TCP). The two modes have a simple distinction: *

*
    *
  • * Reliable mode guarantees the transmission of messages and also the order in * which they are delivered. This takes extra overhead, thus potentially making * this mode slower. *
  • *
  • * Unreliable mode does not guarantee every message will get to the other side * nor what order they get there. This removes the overhead, allowing this mode * to work much faster. *
  • *
*

If data channels are not supported, this method throws an exception.

* * * @param label * Channel's label * **/ void createDataChannel(Transaction tx, @org.kurento.client.internal.server.Param("label") String label); /** * * Create a new data channel, if data channels are supported. *

* Being supported means that the WebRtcEndpoint has been created with data * channel support, the client also supports data channels, and they have been * negotiated in the SDP exchange. Otherwise, the method throws an exception, * indicating that the operation is not possible. *

*

* Data channels can work in either unreliable mode (analogous to User Datagram * Protocol or UDP) or reliable mode (analogous to Transmission Control Protocol * or TCP). The two modes have a simple distinction: *

*
    *
  • * Reliable mode guarantees the transmission of messages and also the order in * which they are delivered. This takes extra overhead, thus potentially making * this mode slower. *
  • *
  • * Unreliable mode does not guarantee every message will get to the other side * nor what order they get there. This removes the overhead, allowing this mode * to work much faster. *
  • *
*

If data channels are not supported, this method throws an exception.

* * * @param label * Channel's label * @param ordered * 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(@org.kurento.client.internal.server.Param("label") String label, @org.kurento.client.internal.server.Param("ordered") boolean ordered); /** * * Asynchronous version of createDataChannel: * {@link Continuation#onSuccess} is called when the action is * done. If an error occurs, {@link Continuation#onError} is called. * @see WebRtcEndpoint#createDataChannel * * @param label * Channel's label * @param ordered * 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(@org.kurento.client.internal.server.Param("label") String label, @org.kurento.client.internal.server.Param("ordered") boolean ordered, Continuation cont); /** * * Create a new data channel, if data channels are supported. *

* Being supported means that the WebRtcEndpoint has been created with data * channel support, the client also supports data channels, and they have been * negotiated in the SDP exchange. Otherwise, the method throws an exception, * indicating that the operation is not possible. *

*

* Data channels can work in either unreliable mode (analogous to User Datagram * Protocol or UDP) or reliable mode (analogous to Transmission Control Protocol * or TCP). The two modes have a simple distinction: *

*
    *
  • * Reliable mode guarantees the transmission of messages and also the order in * which they are delivered. This takes extra overhead, thus potentially making * this mode slower. *
  • *
  • * Unreliable mode does not guarantee every message will get to the other side * nor what order they get there. This removes the overhead, allowing this mode * to work much faster. *
  • *
*

If data channels are not supported, this method throws an exception.

* * * @param label * Channel's label * @param ordered * 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(Transaction tx, @org.kurento.client.internal.server.Param("label") String label, @org.kurento.client.internal.server.Param("ordered") boolean ordered); /** * * Create a new data channel, if data channels are supported. *

* Being supported means that the WebRtcEndpoint has been created with data * channel support, the client also supports data channels, and they have been * negotiated in the SDP exchange. Otherwise, the method throws an exception, * indicating that the operation is not possible. *

*

* Data channels can work in either unreliable mode (analogous to User Datagram * Protocol or UDP) or reliable mode (analogous to Transmission Control Protocol * or TCP). The two modes have a simple distinction: *

*
    *
  • * Reliable mode guarantees the transmission of messages and also the order in * which they are delivered. This takes extra overhead, thus potentially making * this mode slower. *
  • *
  • * Unreliable mode does not guarantee every message will get to the other side * nor what order they get there. This removes the overhead, allowing this mode * to work much faster. *
  • *
*

If data channels are not supported, this method throws an exception.

* * * @param label * Channel's label * @param ordered * If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated. * @param maxPacketLifeTime * The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * **/ void createDataChannel(@org.kurento.client.internal.server.Param("label") String label, @org.kurento.client.internal.server.Param("ordered") boolean ordered, @org.kurento.client.internal.server.Param("maxPacketLifeTime") int maxPacketLifeTime); /** * * Asynchronous version of createDataChannel: * {@link Continuation#onSuccess} is called when the action is * done. If an error occurs, {@link Continuation#onError} is called. * @see WebRtcEndpoint#createDataChannel * * @param label * Channel's label * @param ordered * If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated. * @param maxPacketLifeTime * The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * **/ void createDataChannel(@org.kurento.client.internal.server.Param("label") String label, @org.kurento.client.internal.server.Param("ordered") boolean ordered, @org.kurento.client.internal.server.Param("maxPacketLifeTime") int maxPacketLifeTime, Continuation cont); /** * * Create a new data channel, if data channels are supported. *

* Being supported means that the WebRtcEndpoint has been created with data * channel support, the client also supports data channels, and they have been * negotiated in the SDP exchange. Otherwise, the method throws an exception, * indicating that the operation is not possible. *

*

* Data channels can work in either unreliable mode (analogous to User Datagram * Protocol or UDP) or reliable mode (analogous to Transmission Control Protocol * or TCP). The two modes have a simple distinction: *

*
    *
  • * Reliable mode guarantees the transmission of messages and also the order in * which they are delivered. This takes extra overhead, thus potentially making * this mode slower. *
  • *
  • * Unreliable mode does not guarantee every message will get to the other side * nor what order they get there. This removes the overhead, allowing this mode * to work much faster. *
  • *
*

If data channels are not supported, this method throws an exception.

* * * @param label * Channel's label * @param ordered * If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated. * @param maxPacketLifeTime * The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * **/ void createDataChannel(Transaction tx, @org.kurento.client.internal.server.Param("label") String label, @org.kurento.client.internal.server.Param("ordered") boolean ordered, @org.kurento.client.internal.server.Param("maxPacketLifeTime") int maxPacketLifeTime); /** * * Create a new data channel, if data channels are supported. *

* Being supported means that the WebRtcEndpoint has been created with data * channel support, the client also supports data channels, and they have been * negotiated in the SDP exchange. Otherwise, the method throws an exception, * indicating that the operation is not possible. *

*

* Data channels can work in either unreliable mode (analogous to User Datagram * Protocol or UDP) or reliable mode (analogous to Transmission Control Protocol * or TCP). The two modes have a simple distinction: *

*
    *
  • * Reliable mode guarantees the transmission of messages and also the order in * which they are delivered. This takes extra overhead, thus potentially making * this mode slower. *
  • *
  • * Unreliable mode does not guarantee every message will get to the other side * nor what order they get there. This removes the overhead, allowing this mode * to work much faster. *
  • *
*

If data channels are not supported, this method throws an exception.

* * * @param label * Channel's label * @param ordered * If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated. * @param maxPacketLifeTime * The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * @param maxRetransmits * maximum number of retransmissions that are attempted in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * **/ void createDataChannel(@org.kurento.client.internal.server.Param("label") String label, @org.kurento.client.internal.server.Param("ordered") boolean ordered, @org.kurento.client.internal.server.Param("maxPacketLifeTime") int maxPacketLifeTime, @org.kurento.client.internal.server.Param("maxRetransmits") int maxRetransmits); /** * * Asynchronous version of createDataChannel: * {@link Continuation#onSuccess} is called when the action is * done. If an error occurs, {@link Continuation#onError} is called. * @see WebRtcEndpoint#createDataChannel * * @param label * Channel's label * @param ordered * If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated. * @param maxPacketLifeTime * The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * @param maxRetransmits * maximum number of retransmissions that are attempted in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * **/ void createDataChannel(@org.kurento.client.internal.server.Param("label") String label, @org.kurento.client.internal.server.Param("ordered") boolean ordered, @org.kurento.client.internal.server.Param("maxPacketLifeTime") int maxPacketLifeTime, @org.kurento.client.internal.server.Param("maxRetransmits") int maxRetransmits, Continuation cont); /** * * Create a new data channel, if data channels are supported. *

* Being supported means that the WebRtcEndpoint has been created with data * channel support, the client also supports data channels, and they have been * negotiated in the SDP exchange. Otherwise, the method throws an exception, * indicating that the operation is not possible. *

*

* Data channels can work in either unreliable mode (analogous to User Datagram * Protocol or UDP) or reliable mode (analogous to Transmission Control Protocol * or TCP). The two modes have a simple distinction: *

*
    *
  • * Reliable mode guarantees the transmission of messages and also the order in * which they are delivered. This takes extra overhead, thus potentially making * this mode slower. *
  • *
  • * Unreliable mode does not guarantee every message will get to the other side * nor what order they get there. This removes the overhead, allowing this mode * to work much faster. *
  • *
*

If data channels are not supported, this method throws an exception.

* * * @param label * Channel's label * @param ordered * If the data channel should guarantee order or not. If true, and maxPacketLifeTime and maxRetransmits have not been provided, reliable mode is activated. * @param maxPacketLifeTime * The time window (in milliseconds) during which transmissions and retransmissions may take place in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * @param maxRetransmits * maximum number of retransmissions that are attempted in unreliable mode. * Note that this forces unreliable mode, even if ordered has been activated. * * **/ void createDataChannel(Transaction tx, @org.kurento.client.internal.server.Param("label") String label, @org.kurento.client.internal.server.Param("ordered") boolean ordered, @org.kurento.client.internal.server.Param("maxPacketLifeTime") int maxPacketLifeTime, @org.kurento.client.internal.server.Param("maxRetransmits") int maxRetransmits); /** * Add a {@link EventListener} for event {@link OnIceCandidateEvent}. Synchronous call. * * @param listener Listener to be called on OnIceCandidateEvent * @return ListenerSubscription for the given Listener * **/ @org.kurento.client.internal.server.EventSubscription(OnIceCandidateEvent.class) ListenerSubscription addOnIceCandidateListener(EventListener listener); /** * Add a {@link EventListener} for event {@link OnIceCandidateEvent}. Asynchronous call. * Calls Continuation<ListenerSubscription> when it has been added. * * @param listener Listener to be called on OnIceCandidateEvent * @param cont Continuation to be called when the listener is registered * **/ @org.kurento.client.internal.server.EventSubscription(OnIceCandidateEvent.class) void addOnIceCandidateListener(EventListener listener, Continuation cont); /** * Remove a {@link ListenerSubscription} for event {@link OnIceCandidateEvent}. Synchronous call. * * @param listenerSubscription Listener subscription to be removed * **/ @org.kurento.client.internal.server.EventSubscription(OnIceCandidateEvent.class) void removeOnIceCandidateListener(ListenerSubscription listenerSubscription); /** * Remove a {@link ListenerSubscription} for event {@link OnIceCandidateEvent}. Asynchronous call. * Calls Continuation<Void> when it has been removed. * * @param listenerSubscription Listener subscription to be removed * @param cont Continuation to be called when the listener is removed * **/ @org.kurento.client.internal.server.EventSubscription(OnIceCandidateEvent.class) void removeOnIceCandidateListener(ListenerSubscription listenerSubscription, Continuation cont); /** * Add a {@link EventListener} for event {@link IceCandidateFoundEvent}. Synchronous call. * * @param listener Listener to be called on IceCandidateFoundEvent * @return ListenerSubscription for the given Listener * **/ @org.kurento.client.internal.server.EventSubscription(IceCandidateFoundEvent.class) ListenerSubscription addIceCandidateFoundListener(EventListener listener); /** * Add a {@link EventListener} for event {@link IceCandidateFoundEvent}. Asynchronous call. * Calls Continuation<ListenerSubscription> when it has been added. * * @param listener Listener to be called on IceCandidateFoundEvent * @param cont Continuation to be called when the listener is registered * **/ @org.kurento.client.internal.server.EventSubscription(IceCandidateFoundEvent.class) void addIceCandidateFoundListener(EventListener listener, Continuation cont); /** * Remove a {@link ListenerSubscription} for event {@link IceCandidateFoundEvent}. Synchronous call. * * @param listenerSubscription Listener subscription to be removed * **/ @org.kurento.client.internal.server.EventSubscription(IceCandidateFoundEvent.class) void removeIceCandidateFoundListener(ListenerSubscription listenerSubscription); /** * Remove a {@link ListenerSubscription} for event {@link IceCandidateFoundEvent}. Asynchronous call. * Calls Continuation<Void> when it has been removed. * * @param listenerSubscription Listener subscription to be removed * @param cont Continuation to be called when the listener is removed * **/ @org.kurento.client.internal.server.EventSubscription(IceCandidateFoundEvent.class) void removeIceCandidateFoundListener(ListenerSubscription listenerSubscription, Continuation cont); /** * Add a {@link EventListener} for event {@link OnIceGatheringDoneEvent}. Synchronous call. * * @param listener Listener to be called on OnIceGatheringDoneEvent * @return ListenerSubscription for the given Listener * **/ @org.kurento.client.internal.server.EventSubscription(OnIceGatheringDoneEvent.class) ListenerSubscription addOnIceGatheringDoneListener(EventListener listener); /** * Add a {@link EventListener} for event {@link OnIceGatheringDoneEvent}. Asynchronous call. * Calls Continuation<ListenerSubscription> when it has been added. * * @param listener Listener to be called on OnIceGatheringDoneEvent * @param cont Continuation to be called when the listener is registered * **/ @org.kurento.client.internal.server.EventSubscription(OnIceGatheringDoneEvent.class) void addOnIceGatheringDoneListener(EventListener listener, Continuation cont); /** * Remove a {@link ListenerSubscription} for event {@link OnIceGatheringDoneEvent}. Synchronous call. * * @param listenerSubscription Listener subscription to be removed * **/ @org.kurento.client.internal.server.EventSubscription(OnIceGatheringDoneEvent.class) void removeOnIceGatheringDoneListener(ListenerSubscription listenerSubscription); /** * Remove a {@link ListenerSubscription} for event {@link OnIceGatheringDoneEvent}. Asynchronous call. * Calls Continuation<Void> when it has been removed. * * @param listenerSubscription Listener subscription to be removed * @param cont Continuation to be called when the listener is removed * **/ @org.kurento.client.internal.server.EventSubscription(OnIceGatheringDoneEvent.class) void removeOnIceGatheringDoneListener(ListenerSubscription listenerSubscription, Continuation cont); /** * Add a {@link EventListener} for event {@link IceGatheringDoneEvent}. Synchronous call. * * @param listener Listener to be called on IceGatheringDoneEvent * @return ListenerSubscription for the given Listener * **/ @org.kurento.client.internal.server.EventSubscription(IceGatheringDoneEvent.class) ListenerSubscription addIceGatheringDoneListener(EventListener listener); /** * Add a {@link EventListener} for event {@link IceGatheringDoneEvent}. Asynchronous call. * Calls Continuation<ListenerSubscription> when it has been added. * * @param listener Listener to be called on IceGatheringDoneEvent * @param cont Continuation to be called when the listener is registered * **/ @org.kurento.client.internal.server.EventSubscription(IceGatheringDoneEvent.class) void addIceGatheringDoneListener(EventListener listener, Continuation cont); /** * Remove a {@link ListenerSubscription} for event {@link IceGatheringDoneEvent}. Synchronous call. * * @param listenerSubscription Listener subscription to be removed * **/ @org.kurento.client.internal.server.EventSubscription(IceGatheringDoneEvent.class) void removeIceGatheringDoneListener(ListenerSubscription listenerSubscription); /** * Remove a {@link ListenerSubscription} for event {@link IceGatheringDoneEvent}. Asynchronous call. * Calls Continuation<Void> when it has been removed. * * @param listenerSubscription Listener subscription to be removed * @param cont Continuation to be called when the listener is removed * **/ @org.kurento.client.internal.server.EventSubscription(IceGatheringDoneEvent.class) void removeIceGatheringDoneListener(ListenerSubscription listenerSubscription, Continuation cont); /** * Add a {@link EventListener} for event {@link OnIceComponentStateChangedEvent}. Synchronous call. * * @param listener Listener to be called on OnIceComponentStateChangedEvent * @return ListenerSubscription for the given Listener * **/ @org.kurento.client.internal.server.EventSubscription(OnIceComponentStateChangedEvent.class) ListenerSubscription addOnIceComponentStateChangedListener(EventListener listener); /** * Add a {@link EventListener} for event {@link OnIceComponentStateChangedEvent}. Asynchronous call. * Calls Continuation<ListenerSubscription> when it has been added. * * @param listener Listener to be called on OnIceComponentStateChangedEvent * @param cont Continuation to be called when the listener is registered * **/ @org.kurento.client.internal.server.EventSubscription(OnIceComponentStateChangedEvent.class) void addOnIceComponentStateChangedListener(EventListener listener, Continuation cont); /** * Remove a {@link ListenerSubscription} for event {@link OnIceComponentStateChangedEvent}. Synchronous call. * * @param listenerSubscription Listener subscription to be removed * **/ @org.kurento.client.internal.server.EventSubscription(OnIceComponentStateChangedEvent.class) void removeOnIceComponentStateChangedListener(ListenerSubscription listenerSubscription); /** * Remove a {@link ListenerSubscription} for event {@link OnIceComponentStateChangedEvent}. Asynchronous call. * Calls Continuation<Void> when it has been removed. * * @param listenerSubscription Listener subscription to be removed * @param cont Continuation to be called when the listener is removed * **/ @org.kurento.client.internal.server.EventSubscription(OnIceComponentStateChangedEvent.class) void removeOnIceComponentStateChangedListener(ListenerSubscription listenerSubscription, Continuation cont); /** * Add a {@link EventListener} for event {@link IceComponentStateChangeEvent}. Synchronous call. * * @param listener Listener to be called on IceComponentStateChangeEvent * @return ListenerSubscription for the given Listener * **/ @org.kurento.client.internal.server.EventSubscription(IceComponentStateChangeEvent.class) ListenerSubscription addIceComponentStateChangeListener(EventListener listener); /** * Add a {@link EventListener} for event {@link IceComponentStateChangeEvent}. Asynchronous call. * Calls Continuation<ListenerSubscription> when it has been added. * * @param listener Listener to be called on IceComponentStateChangeEvent * @param cont Continuation to be called when the listener is registered * **/ @org.kurento.client.internal.server.EventSubscription(IceComponentStateChangeEvent.class) void addIceComponentStateChangeListener(EventListener listener, Continuation cont); /** * Remove a {@link ListenerSubscription} for event {@link IceComponentStateChangeEvent}. Synchronous call. * * @param listenerSubscription Listener subscription to be removed * **/ @org.kurento.client.internal.server.EventSubscription(IceComponentStateChangeEvent.class) void removeIceComponentStateChangeListener(ListenerSubscription listenerSubscription); /** * Remove a {@link ListenerSubscription} for event {@link IceComponentStateChangeEvent}. Asynchronous call. * Calls Continuation<Void> when it has been removed. * * @param listenerSubscription Listener subscription to be removed * @param cont Continuation to be called when the listener is removed * **/ @org.kurento.client.internal.server.EventSubscription(IceComponentStateChangeEvent.class) void removeIceComponentStateChangeListener(ListenerSubscription listenerSubscription, Continuation cont); /** * Add a {@link EventListener} for event {@link OnDataChannelOpenedEvent}. Synchronous call. * * @param listener Listener to be called on OnDataChannelOpenedEvent * @return ListenerSubscription for the given Listener * **/ @org.kurento.client.internal.server.EventSubscription(OnDataChannelOpenedEvent.class) ListenerSubscription addOnDataChannelOpenedListener(EventListener listener); /** * Add a {@link EventListener} for event {@link OnDataChannelOpenedEvent}. Asynchronous call. * Calls Continuation<ListenerSubscription> when it has been added. * * @param listener Listener to be called on OnDataChannelOpenedEvent * @param cont Continuation to be called when the listener is registered * **/ @org.kurento.client.internal.server.EventSubscription(OnDataChannelOpenedEvent.class) void addOnDataChannelOpenedListener(EventListener listener, Continuation cont); /** * Remove a {@link ListenerSubscription} for event {@link OnDataChannelOpenedEvent}. Synchronous call. * * @param listenerSubscription Listener subscription to be removed * **/ @org.kurento.client.internal.server.EventSubscription(OnDataChannelOpenedEvent.class) void removeOnDataChannelOpenedListener(ListenerSubscription listenerSubscription); /** * Remove a {@link ListenerSubscription} for event {@link OnDataChannelOpenedEvent}. Asynchronous call. * Calls Continuation<Void> when it has been removed. * * @param listenerSubscription Listener subscription to be removed * @param cont Continuation to be called when the listener is removed * **/ @org.kurento.client.internal.server.EventSubscription(OnDataChannelOpenedEvent.class) void removeOnDataChannelOpenedListener(ListenerSubscription listenerSubscription, Continuation cont); /** * Add a {@link EventListener} for event {@link DataChannelOpenEvent}. Synchronous call. * * @param listener Listener to be called on DataChannelOpenEvent * @return ListenerSubscription for the given Listener * **/ @org.kurento.client.internal.server.EventSubscription(DataChannelOpenEvent.class) ListenerSubscription addDataChannelOpenListener(EventListener listener); /** * Add a {@link EventListener} for event {@link DataChannelOpenEvent}. Asynchronous call. * Calls Continuation<ListenerSubscription> when it has been added. * * @param listener Listener to be called on DataChannelOpenEvent * @param cont Continuation to be called when the listener is registered * **/ @org.kurento.client.internal.server.EventSubscription(DataChannelOpenEvent.class) void addDataChannelOpenListener(EventListener listener, Continuation cont); /** * Remove a {@link ListenerSubscription} for event {@link DataChannelOpenEvent}. Synchronous call. * * @param listenerSubscription Listener subscription to be removed * **/ @org.kurento.client.internal.server.EventSubscription(DataChannelOpenEvent.class) void removeDataChannelOpenListener(ListenerSubscription listenerSubscription); /** * Remove a {@link ListenerSubscription} for event {@link DataChannelOpenEvent}. Asynchronous call. * Calls Continuation<Void> when it has been removed. * * @param listenerSubscription Listener subscription to be removed * @param cont Continuation to be called when the listener is removed * **/ @org.kurento.client.internal.server.EventSubscription(DataChannelOpenEvent.class) void removeDataChannelOpenListener(ListenerSubscription listenerSubscription, Continuation cont); /** * Add a {@link EventListener} for event {@link OnDataChannelClosedEvent}. Synchronous call. * * @param listener Listener to be called on OnDataChannelClosedEvent * @return ListenerSubscription for the given Listener * **/ @org.kurento.client.internal.server.EventSubscription(OnDataChannelClosedEvent.class) ListenerSubscription addOnDataChannelClosedListener(EventListener listener); /** * Add a {@link EventListener} for event {@link OnDataChannelClosedEvent}. Asynchronous call. * Calls Continuation<ListenerSubscription> when it has been added. * * @param listener Listener to be called on OnDataChannelClosedEvent * @param cont Continuation to be called when the listener is registered * **/ @org.kurento.client.internal.server.EventSubscription(OnDataChannelClosedEvent.class) void addOnDataChannelClosedListener(EventListener listener, Continuation cont); /** * Remove a {@link ListenerSubscription} for event {@link OnDataChannelClosedEvent}. Synchronous call. * * @param listenerSubscription Listener subscription to be removed * **/ @org.kurento.client.internal.server.EventSubscription(OnDataChannelClosedEvent.class) void removeOnDataChannelClosedListener(ListenerSubscription listenerSubscription); /** * Remove a {@link ListenerSubscription} for event {@link OnDataChannelClosedEvent}. Asynchronous call. * Calls Continuation<Void> when it has been removed. * * @param listenerSubscription Listener subscription to be removed * @param cont Continuation to be called when the listener is removed * **/ @org.kurento.client.internal.server.EventSubscription(OnDataChannelClosedEvent.class) void removeOnDataChannelClosedListener(ListenerSubscription listenerSubscription, Continuation cont); /** * Add a {@link EventListener} for event {@link DataChannelCloseEvent}. Synchronous call. * * @param listener Listener to be called on DataChannelCloseEvent * @return ListenerSubscription for the given Listener * **/ @org.kurento.client.internal.server.EventSubscription(DataChannelCloseEvent.class) ListenerSubscription addDataChannelCloseListener(EventListener listener); /** * Add a {@link EventListener} for event {@link DataChannelCloseEvent}. Asynchronous call. * Calls Continuation<ListenerSubscription> when it has been added. * * @param listener Listener to be called on DataChannelCloseEvent * @param cont Continuation to be called when the listener is registered * **/ @org.kurento.client.internal.server.EventSubscription(DataChannelCloseEvent.class) void addDataChannelCloseListener(EventListener listener, Continuation cont); /** * Remove a {@link ListenerSubscription} for event {@link DataChannelCloseEvent}. Synchronous call. * * @param listenerSubscription Listener subscription to be removed * **/ @org.kurento.client.internal.server.EventSubscription(DataChannelCloseEvent.class) void removeDataChannelCloseListener(ListenerSubscription listenerSubscription); /** * Remove a {@link ListenerSubscription} for event {@link DataChannelCloseEvent}. Asynchronous call. * Calls Continuation<Void> when it has been removed. * * @param listenerSubscription Listener subscription to be removed * @param cont Continuation to be called when the listener is removed * **/ @org.kurento.client.internal.server.EventSubscription(DataChannelCloseEvent.class) void removeDataChannelCloseListener(ListenerSubscription listenerSubscription, Continuation cont); /** * Add a {@link EventListener} for event {@link NewCandidatePairSelectedEvent}. Synchronous call. * * @param listener Listener to be called on NewCandidatePairSelectedEvent * @return ListenerSubscription for the given Listener * **/ @org.kurento.client.internal.server.EventSubscription(NewCandidatePairSelectedEvent.class) ListenerSubscription addNewCandidatePairSelectedListener(EventListener listener); /** * Add a {@link EventListener} for event {@link NewCandidatePairSelectedEvent}. Asynchronous call. * Calls Continuation<ListenerSubscription> when it has been added. * * @param listener Listener to be called on NewCandidatePairSelectedEvent * @param cont Continuation to be called when the listener is registered * **/ @org.kurento.client.internal.server.EventSubscription(NewCandidatePairSelectedEvent.class) void addNewCandidatePairSelectedListener(EventListener listener, Continuation cont); /** * Remove a {@link ListenerSubscription} for event {@link NewCandidatePairSelectedEvent}. Synchronous call. * * @param listenerSubscription Listener subscription to be removed * **/ @org.kurento.client.internal.server.EventSubscription(NewCandidatePairSelectedEvent.class) void removeNewCandidatePairSelectedListener(ListenerSubscription listenerSubscription); /** * Remove a {@link ListenerSubscription} for event {@link NewCandidatePairSelectedEvent}. Asynchronous call. * Calls Continuation<Void> when it has been removed. * * @param listenerSubscription Listener subscription to be removed * @param cont Continuation to be called when the listener is removed * **/ @org.kurento.client.internal.server.EventSubscription(NewCandidatePairSelectedEvent.class) void removeNewCandidatePairSelectedListener(ListenerSubscription listenerSubscription, Continuation cont); public class Builder extends AbstractBuilder { /** * * Creates a Builder for WebRtcEndpoint * **/ public Builder(org.kurento.client.MediaPipeline mediaPipeline){ super(WebRtcEndpoint.class,mediaPipeline); props.add("mediaPipeline",mediaPipeline); } public Builder withProperties(Properties properties) { return (Builder)super.withProperties(properties); } public Builder with(String name, Object value) { return (Builder)super.with(name, value); } /** * * Single direction, receive-only endpoint * **/ public Builder recvonly(){ props.add("recvonly",Boolean.TRUE); return this; } /** * * Single direction, send-only endpoint * **/ public Builder sendonly(){ props.add("sendonly",Boolean.TRUE); return this; } /** * * Activate data channels support * **/ public Builder useDataChannels(){ props.add("useDataChannels",Boolean.TRUE); return this; } /** * * Sets a value for certificateKeyType in Builder for WebRtcEndpoint. * * @param certificateKeyType * Define the type of the certificate used in dtls * **/ public Builder withCertificateKeyType(org.kurento.client.CertificateKeyType certificateKeyType){ props.add("certificateKeyType",certificateKeyType); return this; } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy