Interface RtpEndpoint
-
- All Superinterfaces:
BaseRtpEndpoint
,Endpoint
,KurentoObject
,MediaElement
,MediaObject
,SdpEndpoint
,SessionEndpoint
public interface RtpEndpoint extends BaseRtpEndpoint
Endpoint that provides bidirectional content delivery capabilities through the RTP or SRTP protocols.An
RtpEndpoint
contains paired sink and source :rom:cls:`MediaPad` for audio and video. This endpoint inherits fromBaseRtpEndpoint
.In order to establish RTP/SRTP communications, peers first engage in an SDP Offer/Answer negotiation process, where one of the peers (the offerer) sends an SDP Offer, while the other peer (the answerer) responds with an SDP Answer. This endpoint can work in both roles.
-
As offerer: The negotiation process is initiated by the media server.
-
Kurento generates the SDP Offer through the
generateOffer()
method. This offer must then be sent to the remote peer (the answerer) through the signaling channel. - The remote peer process the SDP Offer, and generates an SDP Answer. This answer is then sent back to the media server.
-
Upon receiving the SDP Answer, this endpoint must process it with the
processAnswer()
method.
-
Kurento generates the SDP Offer through the
-
As answerer: The negotiation process is initiated by the remote peer.
- The remote peer, acting as offerer, generates an SDP Offer and sends it to this endpoint.
-
This endpoint processes the SDP Offer with the
processOffer()
method. The result of this method will be a string, containing an SDP Answer. - The SDP Answer must then be sent back to the offerer, so it can be processed by it.
In case of unidirectional connections (i.e. only one peer is going to send media), the process is simpler, as only the sender needs to process an SDP Offer. On top of the information about media codecs and types, the SDP must contain the IP of the remote peer, and the port where it will be listening. This way, the SDP can be mangled without needing to go through the exchange process, as the receiving peer does not need to process any answer.
Bitrate management
Check the documentation of
BaseRtpEndpoint
for detailed information about bitrate management.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
RtpEndpoint.Builder
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description ListenerSubscription
addOnKeySoftLimitListener(EventListener<OnKeySoftLimitEvent> listener)
Add aEventListener
for eventOnKeySoftLimitEvent
.void
addOnKeySoftLimitListener(EventListener<OnKeySoftLimitEvent> listener, Continuation<ListenerSubscription> cont)
Add aEventListener
for eventOnKeySoftLimitEvent
.void
removeOnKeySoftLimitListener(ListenerSubscription listenerSubscription)
Remove aListenerSubscription
for eventOnKeySoftLimitEvent
.void
removeOnKeySoftLimitListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
Remove aListenerSubscription
for eventOnKeySoftLimitEvent
.-
Methods inherited from interface org.kurento.client.BaseRtpEndpoint
addConnectionStateChangedListener, addConnectionStateChangedListener, addMediaStateChangedListener, addMediaStateChangedListener, getConnectionState, getConnectionState, getConnectionState, getMaxVideoSendBandwidth, getMaxVideoSendBandwidth, getMaxVideoSendBandwidth, getMediaState, getMediaState, getMediaState, getMinVideoRecvBandwidth, getMinVideoRecvBandwidth, getMinVideoRecvBandwidth, getMinVideoSendBandwidth, getMinVideoSendBandwidth, getMinVideoSendBandwidth, getMtu, getMtu, getMtu, getRembParams, getRembParams, getRembParams, removeConnectionStateChangedListener, removeConnectionStateChangedListener, removeMediaStateChangedListener, removeMediaStateChangedListener, requestKeyframe, requestKeyframe, requestKeyframe, setMaxVideoSendBandwidth, setMaxVideoSendBandwidth, setMaxVideoSendBandwidth, setMinVideoRecvBandwidth, setMinVideoRecvBandwidth, setMinVideoRecvBandwidth, setMinVideoSendBandwidth, setMinVideoSendBandwidth, setMinVideoSendBandwidth, setMtu, setMtu, setMtu, setRembParams, setRembParams, setRembParams
-
Methods inherited from interface org.kurento.client.KurentoObject
addEventListener, invoke, isCommited, release, release, release, removeEventListener, waitCommited, whenCommited, whenCommited
-
Methods inherited from interface org.kurento.client.MediaElement
addElementConnectedListener, addElementConnectedListener, addElementDisconnectedListener, addElementDisconnectedListener, addMediaFlowInStateChangedListener, addMediaFlowInStateChangedListener, addMediaFlowInStateChangeListener, addMediaFlowInStateChangeListener, addMediaFlowOutStateChangedListener, addMediaFlowOutStateChangedListener, addMediaFlowOutStateChangeListener, addMediaFlowOutStateChangeListener, addMediaTranscodingStateChangedListener, addMediaTranscodingStateChangedListener, addMediaTranscodingStateChangeListener, addMediaTranscodingStateChangeListener, connect, connect, connect, connect, connect, connect, connect, connect, connect, connect, connect, connect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, getEncoderBitrate, getEncoderBitrate, getEncoderBitrate, getGstreamerDot, getGstreamerDot, getGstreamerDot, getGstreamerDot, getGstreamerDot, getGstreamerDot, getMaxEncoderBitrate, getMaxEncoderBitrate, getMaxEncoderBitrate, getMinEncoderBitrate, getMinEncoderBitrate, getMinEncoderBitrate, getSinkConnections, getSinkConnections, getSinkConnections, getSinkConnections, getSinkConnections, getSinkConnections, getSinkConnections, getSinkConnections, getSinkConnections, getSourceConnections, getSourceConnections, getSourceConnections, getSourceConnections, getSourceConnections, getSourceConnections, getSourceConnections, getSourceConnections, getSourceConnections, getStats, getStats, getStats, getStats, getStats, getStats, isMediaFlowingIn, isMediaFlowingIn, isMediaFlowingIn, isMediaFlowingIn, isMediaFlowingIn, isMediaFlowingIn, isMediaFlowingOut, isMediaFlowingOut, isMediaFlowingOut, isMediaFlowingOut, isMediaFlowingOut, isMediaFlowingOut, isMediaTranscoding, isMediaTranscoding, isMediaTranscoding, isMediaTranscoding, isMediaTranscoding, isMediaTranscoding, removeElementConnectedListener, removeElementConnectedListener, removeElementDisconnectedListener, removeElementDisconnectedListener, removeMediaFlowInStateChangedListener, removeMediaFlowInStateChangedListener, removeMediaFlowInStateChangeListener, removeMediaFlowInStateChangeListener, removeMediaFlowOutStateChangedListener, removeMediaFlowOutStateChangedListener, removeMediaFlowOutStateChangeListener, removeMediaFlowOutStateChangeListener, removeMediaTranscodingStateChangedListener, removeMediaTranscodingStateChangedListener, removeMediaTranscodingStateChangeListener, removeMediaTranscodingStateChangeListener, setAudioFormat, setAudioFormat, setAudioFormat, setEncoderBitrate, setEncoderBitrate, setEncoderBitrate, setMaxEncoderBitrate, setMaxEncoderBitrate, setMaxEncoderBitrate, setMinEncoderBitrate, setMinEncoderBitrate, setMinEncoderBitrate, setVideoFormat, setVideoFormat, setVideoFormat
-
Methods inherited from interface org.kurento.client.MediaObject
addErrorListener, addErrorListener, addTag, addTag, addTag, getChildren, getChildren, getChildren, getCreationTime, getCreationTime, getCreationTime, getId, getId, getId, getMediaPipeline, getMediaPipeline, getMediaPipeline, getName, getName, getName, getParent, getParent, getParent, getSendTagsInEvents, getSendTagsInEvents, getSendTagsInEvents, getTag, getTag, getTag, getTags, getTags, getTags, removeErrorListener, removeErrorListener, removeTag, removeTag, removeTag, setName, setName, setName, setSendTagsInEvents, setSendTagsInEvents, setSendTagsInEvents
-
Methods inherited from interface org.kurento.client.SdpEndpoint
generateOffer, generateOffer, generateOffer, generateOffer, generateOffer, generateOffer, getLocalSessionDescriptor, getLocalSessionDescriptor, getLocalSessionDescriptor, getMaxAudioRecvBandwidth, getMaxAudioRecvBandwidth, getMaxAudioRecvBandwidth, getMaxVideoRecvBandwidth, getMaxVideoRecvBandwidth, getMaxVideoRecvBandwidth, getRemoteSessionDescriptor, getRemoteSessionDescriptor, getRemoteSessionDescriptor, processAnswer, processAnswer, processAnswer, processOffer, processOffer, processOffer, setMaxAudioRecvBandwidth, setMaxAudioRecvBandwidth, setMaxAudioRecvBandwidth, setMaxVideoRecvBandwidth, setMaxVideoRecvBandwidth, setMaxVideoRecvBandwidth
-
Methods inherited from interface org.kurento.client.SessionEndpoint
addMediaSessionStartedListener, addMediaSessionStartedListener, addMediaSessionTerminatedListener, addMediaSessionTerminatedListener, removeMediaSessionStartedListener, removeMediaSessionStartedListener, removeMediaSessionTerminatedListener, removeMediaSessionTerminatedListener
-
-
-
-
Method Detail
-
addOnKeySoftLimitListener
ListenerSubscription addOnKeySoftLimitListener(EventListener<OnKeySoftLimitEvent> listener)
Add aEventListener
for eventOnKeySoftLimitEvent
. Synchronous call.- Parameters:
listener
- Listener to be called on OnKeySoftLimitEvent- Returns:
- ListenerSubscription for the given Listener
-
addOnKeySoftLimitListener
void addOnKeySoftLimitListener(EventListener<OnKeySoftLimitEvent> listener, Continuation<ListenerSubscription> cont)
Add aEventListener
for eventOnKeySoftLimitEvent
. Asynchronous call. Calls Continuation<ListenerSubscription> when it has been added.- Parameters:
listener
- Listener to be called on OnKeySoftLimitEventcont
- Continuation to be called when the listener is registered
-
removeOnKeySoftLimitListener
void removeOnKeySoftLimitListener(ListenerSubscription listenerSubscription)
Remove aListenerSubscription
for eventOnKeySoftLimitEvent
. Synchronous call.- Parameters:
listenerSubscription
- Listener subscription to be removed
-
removeOnKeySoftLimitListener
void removeOnKeySoftLimitListener(ListenerSubscription listenerSubscription, Continuation<Void> cont)
Remove aListenerSubscription
for eventOnKeySoftLimitEvent
. Asynchronous call. Calls Continuation<Void> when it has been removed.- Parameters:
listenerSubscription
- Listener subscription to be removedcont
- Continuation to be called when the listener is removed
-
-