Endpoint that provides bidirectional content delivery capabilities with
remote networked peers through RTP or SRTP protocol. An
RtpEndpoint contains paired sink and source
:rom:cls:`MediaPad` for audio and video. This endpoint inherits from
BaseRtpEndpoint.
In order to establish an RTP/SRTP communication, peers engage in an
SDP negotiation process, where one of the peers (the offerer) sends an
-
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 process the Offer, and generates an Answer
to this offer. 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,
- The SDP Answer must be sent back to the offerer, so it can
be processed.
In case of unidirectional connections (i.e. only one peer is going to
send media), the process is more simple, as only the emitter needs to
process an SDP. 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
While there is no congestion control in this endpoint, the user can
set some bandwidth limits that will be used during the negotiation
process.
The default bandwidth range of the endpoint is 100kbps-500kbps, but it
-
Input bandwidth control mechanism: Configuration interval used to
inform remote peer the range of bitrates that can be pushed into
this RtpEndpoint object. These values are announced in the SDP.
-
setMaxVideoRecvBandwidth: sets Max bitrate limits expected for
-
setMaxAudioRecvBandwidth: sets Max bitrate limits expected for
-
Output bandwidth control mechanism: Configuration interval used to
-
setMaxVideoSendBandwidth: sets Max bitrate limits for video
sent to remote peer.
-
setMinVideoSendBandwidth: sets Min bitrate limits for audio
sent to remote peer.
All bandwidth control parameters must be changed before the SDP
negotiation takes place, and can't be modified afterwards.
TODO: What happens if the b=as tag form the SDP has a lower value than
Having no congestion ocntrol implementation means that the bitrate
will remain constant. This is something to take into consideration
when setting upper limits for the output bandwidth, or the local
network connection can be overflooded.
Constructor
new RtpEndpoint()
- Source:
Fires:
Extends
Members
(static) constructorParams
Properties:
- Source:
(static) events
- Source:
Methods
children of this MediaObject
.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
Parameters:
- Inherited From:
- Deprecated:
- (Use children instead) children of this
MediaObject
.
- Source:
Returns:
-
Type
-
external:Promise
getConnectionState(callbackopt) → {external:Promise}
Connection state. Possible values are
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
getCreationTime(callbackopt) → {external:Promise}
MediaObject
creation time in seconds since Epoch.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
getMaxAudioRecvBandwidth(callbackopt) → {external:Promise}
Maximum bandwidth for audio reception, in kbps. The default value is 500. A
value of 0 sets this as leaves this unconstrained.
Note This has
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
getMaxOuputBitrate(callbackopt) → {external:Promise}
Parameters:
- Inherited From:
- Deprecated:
- Deprecated due to a typo. Use maxOutputBitrate instead of this function.
Maximum video bandwidth for transcoding. 0 = unlimited.
Unit: bps(bits per second).
Default value: MAXINT
- Source:
Returns:
-
Type
-
external:Promise
getMaxOutputBitrate(callbackopt) → {external:Promise}
Maximum video bitrate for transcoding. 0 = unlimited.
Unit: bps(bits per second).
Default value: MAXINT
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
getMaxVideoRecvBandwidth(callbackopt) → {external:Promise}
Maximum bandwidth for video reception, in kbps. The default value is 500. A
value of 0 sets this as unconstrained.
Note This has to be set
before the SDP is generated.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
getMaxVideoSendBandwidth(callbackopt) → {external:Promise}
Maximum bandwidth for video transmission, in kbps. The default value is 500
kbps. 0 is considered unconstrained.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
MediaPipeline to which this
MediaObject
belongs. It returns itself when invoked for a
pipeline object.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
Media flow state. Possible values are
- CONNECTED: There is an RTCP flow.
- DISCONNECTED: No RTCP packets have been received for at least
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
getMinOuputBitrate(callbackopt) → {external:Promise}
Parameters:
- Inherited From:
- Deprecated:
- Deprecated due to a typo. Use minOutputBitrate instead of this function.
Minimum video bandwidth for transcoding.
Unit: bps(bits per second).
Default value: 0
- Source:
Returns:
-
Type
-
external:Promise
getMinOutputBitrate(callbackopt) → {external:Promise}
Minimum video bitrate for transcoding.
Unit: bps(bits per second).
Default value: 0
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
getMinVideoRecvBandwidth(callbackopt) → {external:Promise}
Minimum bandwidth announced for video reception, in kbps. The default value
is 100 kbps. 0 is considered unconstrained.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
getMinVideoSendBandwidth(callbackopt) → {external:Promise}
Minimum bandwidth for video transmission, in kbps. The default value is 100
kbps. 0 is considered unconstrained.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
this MediaObject
's name. This is just a comodity to simplify
developers' life debugging, it is not used internally for indexing nor
idenfiying the objects. By default, it's the object's ID.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
parent of this
MediaObject
. The parent of a
Hub or a
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
Advanced parameters to configure the congestion control algorithm.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
flag activating or deactivating sending the element's tags in fired events.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
setMaxAudioRecvBandwidth(maxAudioRecvBandwidth, callbackopt) → {external:Promise}
Maximum bandwidth for audio reception, in kbps. The default value is 500. A
value of 0 sets this as leaves this unconstrained.
Note This has
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
setMaxOuputBitrate(maxOuputBitrate, callbackopt) → {external:Promise}
Parameters:
- Inherited From:
- Deprecated:
- Deprecated due to a typo. Use maxOutputBitrate instead of this function.
Maximum video bandwidth for transcoding. 0 = unlimited.
Unit: bps(bits per second).
Default value: MAXINT
- Source:
Returns:
-
Type
-
external:Promise
setMaxOutputBitrate(maxOutputBitrate, callbackopt) → {external:Promise}
Maximum video bitrate for transcoding. 0 = unlimited.
Unit: bps(bits per second).
Default value: MAXINT
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
setMaxVideoRecvBandwidth(maxVideoRecvBandwidth, callbackopt) → {external:Promise}
Maximum bandwidth for video reception, in kbps. The default value is 500. A
value of 0 sets this as unconstrained.
Note This has to be set
before the SDP is generated.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
setMaxVideoSendBandwidth(maxVideoSendBandwidth, callbackopt) → {external:Promise}
Maximum bandwidth for video transmission, in kbps. The default value is 500
kbps. 0 is considered unconstrained.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
setMinOuputBitrate(minOuputBitrate, callbackopt) → {external:Promise}
Parameters:
- Inherited From:
- Deprecated:
- Deprecated due to a typo. Use minOutputBitrate instead of this function.
Minimum video bandwidth for transcoding.
Unit: bps(bits per second).
Default value: 0
- Source:
Returns:
-
Type
-
external:Promise
setMinOutputBitrate(minOutputBitrate, callbackopt) → {external:Promise}
Minimum video bitrate for transcoding.
Unit: bps(bits per second).
Default value: 0
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
setMinVideoRecvBandwidth(minVideoRecvBandwidth, callbackopt) → {external:Promise}
Minimum bandwidth announced for video reception, in kbps. The default value
is 100 kbps. 0 is considered unconstrained.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
setMinVideoSendBandwidth(minVideoSendBandwidth, callbackopt) → {external:Promise}
Minimum bandwidth for video transmission, in kbps. The default value is 100
kbps. 0 is considered unconstrained.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
this MediaObject
's name. This is just a comodity to simplify
developers' life debugging, it is not used internally for indexing nor
idenfiying the objects. By default, it's the object's ID.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
setRembParams(rembParams, callbackopt) → {external:Promise}
Advanced parameters to configure the congestion control algorithm.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise
flag activating or deactivating sending the element's tags in fired events.
Parameters:
- Inherited From:
- Source:
Returns:
-
Type
-
external:Promise