Class: SdpEndpoint

(abstract) core/abstracts.SdpEndpoint()

Interface implemented by Endpoints that require an SDP Offer/Answer negotiation in order to configure a media session.

Functionality provided by this API:

  • Generate SDP offers.
  • Process SDP offers.
  • Configure SDP related params.

Constructor

(abstract) new SdpEndpoint()

Source:

Extends

Members

(static) constructorParams

Source:

(static) events

Source:

Methods

(static) generateOffer(optionsopt, callbackopt) → {external:Promise}

Generates an SDP offer with media capabilities of the Endpoint. Throws:
  • SDP_END_POINT_ALREADY_NEGOTIATED If the endpoint is already negotiated.
  • SDP_END_POINT_GENERATE_OFFER_ERROR if the generated offer is empty. This is most likely due to an internal error.
Parameters:
Name Type Attributes Description
options module:core/complexTypes.OfferOptions <optional>
An OfferOptions providing options requested for the offer.
callback module:core/abstracts.SdpEndpoint~generateOfferCallback <optional>
Source:
Returns:
Type
external:Promise

(static) getLocalSessionDescriptor(callbackopt) → {external:Promise}

Returns the local SDP.
  • No offer has been generated: returns null.
  • Offer has been generated: returns the SDP offer.
  • Offer has been generated and answer processed: returns the agreed SDP.
Parameters:
Name Type Attributes Description
callback module:core/abstracts.SdpEndpoint~getLocalSessionDescriptorCallback <optional>
Source:
Returns:
Type
external:Promise

(static) getRemoteSessionDescriptor(callbackopt) → {external:Promise}

This method returns the remote SDP. If the negotiation process is not complete, it will return NULL.
Parameters:
Name Type Attributes Description
callback module:core/abstracts.SdpEndpoint~getRemoteSessionDescriptorCallback <optional>
Source:
Returns:
Type
external:Promise

(static) processAnswer(answer, callbackopt) → {external:Promise}

Generates an SDP offer with media capabilities of the Endpoint. Throws:
  • SDP_PARSE_ERROR If the offer is empty or has errors.
  • SDP_END_POINT_ALREADY_NEGOTIATED If the endpoint is already negotiated.
  • SDP_END_POINT_PROCESS_ANSWER_ERROR if the result of processing the answer an empty string. This is most likely due to an internal error.
  • SDP_END_POINT_NOT_OFFER_GENERATED If the method is invoked before the generateOffer method.
Parameters:
Name Type Attributes Description
answer external:String SessionSpec answer from the remote User Agent
callback module:core/abstracts.SdpEndpoint~processAnswerCallback <optional>
Source:
Returns:
Type
external:Promise

(static) processOffer(offer, callbackopt) → {external:Promise}

Processes SDP offer of the remote peer, and generates an SDP answer based on the endpoint's capabilities.

If no matching capabilities are found, the SDP will contain no codecs.

Throws:
  • SDP_PARSE_ERROR If the offer is empty or has errors.
  • SDP_END_POINT_ALREADY_NEGOTIATED If the endpoint is already negotiated.
  • SDP_END_POINT_PROCESS_OFFER_ERROR if the generated offer is empty. This is most likely due to an internal error.
Parameters:
Name Type Attributes Description
offer external:String SessionSpec offer from the remote User Agent
callback module:core/abstracts.SdpEndpoint~processOfferCallback <optional>
Source:
Returns:
Type
external:Promise

getChildren(callbackopt) → {external:Promise}

Children of this MediaObject.
Parameters:
Name Type Attributes Description
callback module:core/abstracts.MediaObject~getChildrenCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

getCreationTime(callbackopt) → {external:Promise}

MediaObject creation time in seconds since Epoch.
Parameters:
Name Type Attributes Description
callback module:core/abstracts.MediaObject~getCreationTimeCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

getEncoderBitrate(callbackopt) → {external:Promise}

Target video bitrate for media transcoding.

The bitrate of a video has a direct impact on its perceived image quality. Higher bitrate means higher quality, but also a larger amount of bytes to transmit or store. Use this parameter to set the desired average bitrate in videos that are transcoded by the media server.

This parameter is most useful for :rom:cls:`RecorderEndpoint` and :rom:cls:`RtpEndpoint`: when media is being transcoded (either for streaming or storing on disk), the resulting quality is directly controlled with this value.

For :rom:cls:`WebRtcEndpoint`, this value should be left as default, as remote WebRTC receivers will already send feedback to inform the media server about what is the optimal bitrate to send.

Setting a value will only work if done before the media starts to flow.

  • Unit: bps (bits per second).
  • Default: 300000 (300 kbps).
Parameters:
Name Type Attributes Description
callback module:core/abstracts.MediaElement~getEncoderBitrateCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

getMaxAudioRecvBandwidth(callbackopt) → {external:Promise}

Maximum inbound bitrate requested by this endpoint. Signaled to compatible WebRTC and RTP senders as part of Kurento's REMB bandwidth estimations, and also as an SDP bitrate attribute (b=AS:{value}, see RFC 8866 Section 5.8. Bandwidth Information) in sendrecv and recvonly SDP Offers.
  • Unit: kbps (kilobits per second).
  • Default: 0 (unlimited).
Parameters:
Name Type Attributes Description
callback module:core/abstracts.SdpEndpoint~getMaxAudioRecvBandwidthCallback <optional>
Source:
Returns:
Type
external:Promise

getMaxEncoderBitrate(callbackopt) → {external:Promise}

Maximum video bitrate for media transcoding.

This parameter can be used to fine tune the automatic bitrate selection that normally takes place within elements that are able to dynamically change the encoding bitrate according to the conditions of the streaming, such as :rom:cls:`WebRtcEndpoint`.

This should be left as default in most cases, given that remote WebRTC receivers already send feedback to inform the media server about what is the optimal bitrate to send. Otherwise, this parameter could be used for example to limit the total bitrate that is handled by the server, by setting a low maximum output for all endpoints.

This should be left as default in most cases, given that remote WebRTC receivers already send feedback to inform the media server about what is the optimal bitrate to send. Otherwise, this parameter could be used for example to limit the total bitrate that is handled by the server, by setting a low maximum output for all endpoints.

Setting a value will only work if done before the media starts to flow.

  • Unit: bps (bits per second).
  • Default: 0.
  • 0 = unlimited. Encoding performed with bitrate as requested by receivers.
Parameters:
Name Type Attributes Description
callback module:core/abstracts.MediaElement~getMaxEncoderBitrateCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

getMaxVideoRecvBandwidth(callbackopt) → {external:Promise}

Maximum inbound bitrate requested by this endpoint. Signaled to compatible WebRTC and RTP senders as part of Kurento's REMB bandwidth estimations, and also as an SDP bitrate attribute (b=AS:{value}, see RFC 8866 Section 5.8. Bandwidth Information) in sendrecv and recvonly SDP Offers.
  • Unit: kbps (kilobits per second).
  • Default: 0 (unlimited).
Parameters:
Name Type Attributes Description
callback module:core/abstracts.SdpEndpoint~getMaxVideoRecvBandwidthCallback <optional>
Source:
Returns:
Type
external:Promise

getMediaPipeline(callbackopt) → {external:Promise}

MediaPipeline to which this MediaObject belongs. It returns itself when invoked for a pipeline object.
Parameters:
Name Type Attributes Description
callback module:core/abstracts.MediaObject~getMediaPipelineCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

getMinEncoderBitrate(callbackopt) → {external:Promise}

Minimum video bitrate for media transcoding.

This parameter can be used to fine tune the automatic bitrate selection that normally takes place within elements that are able to dynamically change the encoding bitrate according to the conditions of the streaming, such as :rom:cls:`WebRtcEndpoint`.

This should be left as default in most cases, given that remote WebRTC receivers already send feedback to inform the media server about what is the optimal bitrate to send. Otherwise, this parameter could be used for example to force a higher bitrate than what is being requested by receivers.

Setting a value will only work if done before the media starts to flow.

  • Unit: bps (bits per second).
  • Default: 0.
Parameters:
Name Type Attributes Description
callback module:core/abstracts.MediaElement~getMinEncoderBitrateCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

getName(callbackopt) → {external:Promise}

This MediaObject's name.

This is just sugar to simplify developers' life debugging, it is not used internally for indexing nor identifying the objects. By default, it's the object's ID.

Parameters:
Name Type Attributes Description
callback module:core/abstracts.MediaObject~getNameCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

getParent(callbackopt) → {external:Promise}

Parent of this MediaObject.

The parent of a Hub or a MediaElement is its MediaPipeline. A MediaPipeline has no parent, so this property will be null.

Parameters:
Name Type Attributes Description
callback module:core/abstracts.MediaObject~getParentCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

getSendTagsInEvents(callbackopt) → {external:Promise}

Flag activating or deactivating sending the element's tags in fired events.
Parameters:
Name Type Attributes Description
callback module:core/abstracts.MediaObject~getSendTagsInEventsCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

setEncoderBitrate(encoderBitrate, callbackopt) → {external:Promise}

Target video bitrate for media transcoding.

The bitrate of a video has a direct impact on its perceived image quality. Higher bitrate means higher quality, but also a larger amount of bytes to transmit or store. Use this parameter to set the desired average bitrate in videos that are transcoded by the media server.

This parameter is most useful for :rom:cls:`RecorderEndpoint` and :rom:cls:`RtpEndpoint`: when media is being transcoded (either for streaming or storing on disk), the resulting quality is directly controlled with this value.

For :rom:cls:`WebRtcEndpoint`, this value should be left as default, as remote WebRTC receivers will already send feedback to inform the media server about what is the optimal bitrate to send.

Setting a value will only work if done before the media starts to flow.

  • Unit: bps (bits per second).
  • Default: 300000 (300 kbps).
Parameters:
Name Type Attributes Description
encoderBitrate external:Integer
callback module:core/abstracts.MediaElement~setEncoderBitrateCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

setMaxAudioRecvBandwidth(maxAudioRecvBandwidth, callbackopt) → {external:Promise}

Maximum inbound bitrate requested by this endpoint. Signaled to compatible WebRTC and RTP senders as part of Kurento's REMB bandwidth estimations, and also as an SDP bitrate attribute (b=AS:{value}, see RFC 8866 Section 5.8. Bandwidth Information) in sendrecv and recvonly SDP Offers.
  • Unit: kbps (kilobits per second).
  • Default: 0 (unlimited).
Parameters:
Name Type Attributes Description
maxAudioRecvBandwidth external:Integer
callback module:core/abstracts.SdpEndpoint~setMaxAudioRecvBandwidthCallback <optional>
Source:
Returns:
Type
external:Promise

setMaxEncoderBitrate(maxEncoderBitrate, callbackopt) → {external:Promise}

Maximum video bitrate for media transcoding.

This parameter can be used to fine tune the automatic bitrate selection that normally takes place within elements that are able to dynamically change the encoding bitrate according to the conditions of the streaming, such as :rom:cls:`WebRtcEndpoint`.

This should be left as default in most cases, given that remote WebRTC receivers already send feedback to inform the media server about what is the optimal bitrate to send. Otherwise, this parameter could be used for example to limit the total bitrate that is handled by the server, by setting a low maximum output for all endpoints.

This should be left as default in most cases, given that remote WebRTC receivers already send feedback to inform the media server about what is the optimal bitrate to send. Otherwise, this parameter could be used for example to limit the total bitrate that is handled by the server, by setting a low maximum output for all endpoints.

Setting a value will only work if done before the media starts to flow.

  • Unit: bps (bits per second).
  • Default: 0.
  • 0 = unlimited. Encoding performed with bitrate as requested by receivers.
Parameters:
Name Type Attributes Description
maxEncoderBitrate external:Integer
callback module:core/abstracts.MediaElement~setMaxEncoderBitrateCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

setMaxVideoRecvBandwidth(maxVideoRecvBandwidth, callbackopt) → {external:Promise}

Maximum inbound bitrate requested by this endpoint. Signaled to compatible WebRTC and RTP senders as part of Kurento's REMB bandwidth estimations, and also as an SDP bitrate attribute (b=AS:{value}, see RFC 8866 Section 5.8. Bandwidth Information) in sendrecv and recvonly SDP Offers.
  • Unit: kbps (kilobits per second).
  • Default: 0 (unlimited).
Parameters:
Name Type Attributes Description
maxVideoRecvBandwidth external:Integer
callback module:core/abstracts.SdpEndpoint~setMaxVideoRecvBandwidthCallback <optional>
Source:
Returns:
Type
external:Promise

setMinEncoderBitrate(minEncoderBitrate, callbackopt) → {external:Promise}

Minimum video bitrate for media transcoding.

This parameter can be used to fine tune the automatic bitrate selection that normally takes place within elements that are able to dynamically change the encoding bitrate according to the conditions of the streaming, such as :rom:cls:`WebRtcEndpoint`.

This should be left as default in most cases, given that remote WebRTC receivers already send feedback to inform the media server about what is the optimal bitrate to send. Otherwise, this parameter could be used for example to force a higher bitrate than what is being requested by receivers.

Setting a value will only work if done before the media starts to flow.

  • Unit: bps (bits per second).
  • Default: 0.
Parameters:
Name Type Attributes Description
minEncoderBitrate external:Integer
callback module:core/abstracts.MediaElement~setMinEncoderBitrateCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

setName(name, callbackopt) → {external:Promise}

This MediaObject's name.

This is just sugar to simplify developers' life debugging, it is not used internally for indexing nor identifying the objects. By default, it's the object's ID.

Parameters:
Name Type Attributes Description
name external:String
callback module:core/abstracts.MediaObject~setNameCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

setSendTagsInEvents(sendTagsInEvents, callbackopt) → {external:Promise}

Flag activating or deactivating sending the element's tags in fired events.
Parameters:
Name Type Attributes Description
sendTagsInEvents external:Boolean
callback module:core/abstracts.MediaObject~setSendTagsInEventsCallback <optional>
Inherited From:
Source:
Returns:
Type
external:Promise

Type Definitions

generateOfferCallback(error, result)

Parameters:
Name Type Description
error external:Error
result external:String The SDP offer.
Source:

getLocalSessionDescriptorCallback(error, result)

Parameters:
Name Type Description
error external:Error
result external:String The last agreed SessionSpec.
Source:

getMaxAudioRecvBandwidthCallback(error, result)

Parameters:
Name Type Description
error external:Error
result external:Integer
Source:

getMaxVideoRecvBandwidthCallback(error, result)

Parameters:
Name Type Description
error external:Error
result external:Integer
Source:

getRemoteSessionDescriptorCallback(error, result)

Parameters:
Name Type Description
error external:Error
result external:String The last agreed User Agent session description.
Source:

processAnswerCallback(error, result)

Parameters:
Name Type Description
error external:Error
result external:String Updated SDP offer, based on the answer received.
Source:

processOfferCallback(error, result)

Parameters:
Name Type Description
error external:Error
result external:String The chosen configuration from the ones stated in the SDP offer.
Source:

setMaxAudioRecvBandwidthCallback(error)

Parameters:
Name Type Description
error external:Error
Source:

setMaxVideoRecvBandwidthCallback(error)

Parameters:
Name Type Description
error external:Error
Source: