Class: Conference

Conference

Conference

A conference is a type of Conversation that may require privilege to join
Conference may only be created if your enterprise has the conference feature enabled on the Apizee platform

Extends

Methods


<static> getAvailableEvents()

Returns available events for this class

Returns:
Type
Array.<string>

allowEntry(contact, options)

Allows entry to contact in waiting room as moderator

Parameters:
Name Type Description
contact Contact

The contact to grant access to.

options Object
Properties
Name Type Description
invitationId String
answer String
ackEnabled Boolean
Returns:
Type
Promise

bind(options)

Binds the conversation represented by this one to cloud.

Parameters:
Name Type Description
options object
Properties
Name Type Description
session Session

Session.

Inherited From:
Overrides:
Returns:
Type
Promise.<string>

cancelJoin()

Cancels an ongoing join request.

Overrides:
Returns:

True on success, false otherwise.

Type
boolean

cancelPushData(id)

Cancels an ongoing push data operation.

Parameters:
Name Type Description
id String

Push data operation identifier (from transferPending or transferBegun events).

Inherited From:
Overrides:
Returns:
Type
Promise

checkAccess(options)

Returns the access status of the conference represented by this one.

Parameters:
Name Type Description
options Object

Optional data.

Properties
Name Type Description
force Boolean

Whether not to use cache.

Inherited From:
Overrides:
Returns:
Type
Promise.<ConferenceAccessStatus>

close(options)

Moderator only : closes this conversations forcing every participant to leave

Parameters:
Name Type Description
options object
Returns:
Type
Promise.<void>

denyEntry(contact, options)

Denies entry to contact in waiting room as moderator

Parameters:
Name Type Description
contact Contact

The contact to deny access to.

options Object
Properties
Name Type Description
invitationId String
answer String
reason String
Returns:
Type
Promise

destroy()

Cleans up all local resources attached to this one.

Overrides:

eject(contact, data)

Ejects a given contact from the conference.

Parameters:
Name Type Description
contact Contact

The contact to eject.

data Object

User data (optional).

Overrides:
Returns:
Type
Promise

enablePointerSharing(enabled)

Enables or disables pointer sharing for this one.

Parameters:
Name Type Description
enabled boolean

true to enable, false to disable.

Inherited From:
Overrides:
Returns:
Type
Promise

fetchMediaList(session, options)

Fetches media specific to this conversation

Parameters:
Name Type Description
session Session

May be null.

options object
Inherited From:
Overrides:
Returns:

mediaList

Type
Promise.<object>

fetchMessageHistory(session, options)

Loads message history for this conversation

Parameters:
Name Type Description
session Session

May be null.

options Object
Inherited From:
Overrides:
Returns:
Type
Promise.<Array.<ConversationMessage>>

getAvailableMediaList()

Returns information for media streams available in the conversation

Inherited From:
Overrides:
Deprecated:
  • Yes
Returns:

contact list

Type
Array.<StreamInfo>

getAvailableStreamList()

Returns information for media streams available in the conversation

Inherited From:
Overrides:
Returns:

contact list

Type
Array.<StreamInfo>

getCloudConversationId()

Returns Apizee cloud conversation id for this conversation, will be set to null if conversation is not joined

Inherited From:
Overrides:
Returns:
Type
string

getContacts()

Returns contact list for conversation

Inherited From:
Overrides:
Returns:

contact list

Type
Object.<string, Contact>

getContactsNumber()

Returns contacts list for conversation

Inherited From:
Overrides:
Returns:

contacts number

Type
number

getConversationCall(stream)

Returns the conversation call handle for a given stream.

Parameters:
Name Type Description
stream Stream

A stream (result of publish).

Inherited From:
Overrides:
Returns:

A conversation call handle on success, null otherwise.

Type
ConversationCall | null

getData()

Returns conversation persistent data

Inherited From:
Overrides:
Returns:

data

Type
Object

getFriendlyName()

Returns this conference's name as it is displayed on Apizee Cloud

Overrides:
Returns:
Type
string | null

getInfo()

Returns the info of the conference represented by this one.

Returns:
Type
Promise.<ConferenceInfo>

getInstanceId()

Returns instance id for this conversation, will be set to null if conversation is not joined

Overrides:
Returns:
Type
string | null

getModerator()

Get conversation moderator

Overrides:
Returns:

moderator or null if no moderator or moderator unknown

Type
Contact | null

getName()

Returns this conversation's room name

Inherited From:
Overrides:
Returns:
Type
string

getNetworkCap(options)

Gets the network capacity of this one.

Parameters:
Name Type Description
options object
Properties
Name Type Description
capacity object

Returns the overall capacity rather than the remaining available bandwidth.

Inherited From:
Overrides:
Returns:

available upload bandwidth and available download bandwidth

Type
Array.<number> | null

getRecordingInfo()

Returns the recoding information, if any.

Inherited From:
Overrides:
Returns:
Type
RecordingInfo | null

getRole()

Returns UserAgent's role for this conversation, will be set to null if conversation is not joined

Overrides:
Returns:
Type
string | null

getStatus()

Returns conversation status

Inherited From:
Overrides:
Returns:
Type
Symbol

getStreamInfo()

Returns information for the media stream

Properties:
Name Type Description
streamId string
Inherited From:
Overrides:
Returns:

stream information

Type
StreamInfo

getTags()

Returns the tags associated to the conference represented by this one.

Returns:

List of enterprise tags.

Type
Promise.<array.<EnterpriseTag>>

getWaitingRoomContacts()

Returns contacts in the waiting room, returns empty if conversation is not joined or user is not a moderator

Inherited From:
Overrides:
Returns:

contact list

Type
Object.<string, Contact>

isBound()

Tests whether the conversation represented by this one is bound to cloud.

Inherited From:
Overrides:
Returns:

True if this one is bound to cloud, false otherwise.

Type
boolean

isGroupChatJoined()

Inherited From:
Overrides:
Returns:

True if the group chat has been joined, false otherwise.

Type
Boolean

isJoined()

Checks if the conversation is joined

Inherited From:
Overrides:
Returns:
Type
Boolean

isPublishedStream(stream)

Does the stream is currently published in conversation

Parameters:
Name Type Description
stream Stream

Stream for which you want to know the publish status

Inherited From:
Overrides:
Returns:
Type
boolean

isRecorded()

Tests whether the call represented by this one is recorded.

Inherited From:
Overrides:
Returns:
Type
boolean

join(options)

Connects to a conference if not it is not already joined, additional parameters may be
required if the conference is private (JoinOptions)

Parameters:
Name Type Description
options JoinOptions

Optional data

Overrides:
Returns:

When joining is successful.

Type
Promise.<void>

joinGroupChat()

Joins group chat.

Inherited From:
Overrides:
Returns:
Type
Promise

leave()

Leaves conversation
The user will automatically stop publishing its streams to the conversation and stop subscribing to streams from the conversation.
The user will no longer receive events from the conversation
The user will no longer see who's within the conversation

Inherited From:
Overrides:
Returns:
Type
Promise

leaveGroupChat()

Leaves group chat.

Inherited From:
Overrides:
Returns:
Type
Promise

on(listener)

Adds a listener to a Observable event

Parameters:
Name Type Description
listener function
Inherited From:
Overrides:
Returns:

this instance for chaining

Type
Observable

publish(stream, options)

Publish stream to conversation
The stream will be able to be subscribed by other contacts within the conversation

Parameters:
Name Type Description
stream Stream

Stream to publish

options PublishOptions

Publish options.

Inherited From:
Overrides:
Returns:

Published stream in promise.

Type
Promise.<Stream>

pushData(data, options)

Pushes data to this one.

Parameters:
Name Type Description
data PushDataFileDescriptor | PushDataBufferDescriptor

data - Descriptor of the data to transfer.

options PushDataOptions
Inherited From:
Overrides:
Returns:
Type
Promise.<CloudMediaInfo>

pushMedia(media, options)

Pushes media specific to this conversation

Parameters:
Name Type Description
media string

dataURI media

options object
Properties
Name Type Description
filename string

Mandatory when overwriting.

overwrite boolean

Whether the overwriting is enabled. By default, overwriting is not enabled.

ttl number

The time to live of the data after being successfully pushed. By default, the data is persistent.

Inherited From:
Overrides:
Returns:

cloud media info in promise

Type
Promise.<CloudMediaInfo>

removeListener(eventType, listener)

Remove existing listener to Observable event

Parameters:
Name Type Description
eventType String
listener function
Inherited From:
Overrides:
Returns:

this instance for chaining

Type
Observable

sendCustomEvent(event, content)

Sends a custom data event to everyone in the conversation

Parameters:
Name Type Description
event string

event key

content Object
Inherited From:
Overrides:
Returns:
Type
Promise

sendData(data, options)

Sends data message to contacts in conversation.

Parameters:
Name Type Description
data Object

Data to send.

options Object
Inherited From:
Overrides:
Returns:
Type
Promise

sendInvitation(contact, options)

Invites a contact to this conversation

Parameters:
Name Type Description
contact Contact

to invite

options Object
Properties
Name Type Description
expirationTime number

Time for an invite to expire after being sent

Overrides:
Returns:
Type
SentInvitation

sendJoinRequest(session)

(re)Sends join request to moderator, if in waiting room

Parameters:
Name Type Description
session Session

connected session (optional)

Overrides:
Returns:
Type
Void

sendMessage(message, options)

Sends string message to contacts in conversation

Parameters:
Name Type Description
message String

message to send

options Object

options

Properties
Name Type Description
metadata Object

Optional user metadata.

Inherited From:
Overrides:
Returns:
  • Promise with message uuid.
Type
Promise.<number>

sendPointerLocation(source, x, y, data)

Sends a given pointer location to every other participant.

Parameters:
Name Type Description
source object

The display source identifier.

x number

The X coordinate of the mouse pointer in source coordinates.

y number

The Y coordinate of the mouse pointer in source coordinates.

data object

Optional data to send with.

Inherited From:
Overrides:

sendRawData(data, options)

Sends raw data message to contacts in conversation, for backwards compatibility purposes
Equivalent to Session.sendRawData() but to send to everyone in the conversation

Parameters:
Name Type Description
data Object

data to send

options Object
Inherited From:
Overrides:
Returns:
Type
Promise

setData(data)

Sets conversation persistent data (cloud user only)

Parameters:
Name Type Description
data Object
Inherited From:
Overrides:
Returns:
Type
Promise.<void>

setNetworkCap(upload, download)

Sets the network capacity of this one. Shall be done to enable resource reservation.

Parameters:
Name Type Description
upload number

Available upload bandwidth

download number

Available download bandwidth

Inherited From:
Overrides:
Returns:

True on success, false otherwise.

Type
boolean

setTags(List)

Sets the tags to the conference represented by this one.

Parameters:
Name Type Description
List array.<EnterpriseTag>

of enterprise tags.

Returns:
Type
Promise

startComposite()

Starts the composite stream on the video bridge.

Inherited From:
Overrides:
Returns:
Type
Promise

startNewWhiteboardSession()

Starts a new whiteboard session for this conversation and notifies contacts in conversation

Properties:
Name Type Description
canvasId string

Identifier of the canvas to use for whiteboard

cursorColor string

User cursor color, sets the user cursor color that will be seen by other participants. Set to '#000000' to have a black cursor. Default value is invisible

Inherited From:
Overrides:
Returns:
Type
Promise

startRecording(options)

Starts recording the conversation represented by this one.

The audioOnly and videoOnly parameters allow you to directly select
audio/video input for all streams in the room. For custom stream selection,
you shall let those parameters aside and use the following parameters instead: mode,
labelEnabled, labels.

The mode parameter allows you to configure how streams will rendered in the media
file. In the complete mode, selected audio-only streams will occupied the same amount
of place than video streams. In the efficient mode, selected audio-only streams will
not occupied any video space. In the audioOnly mode, only the audio part of selected
streams will be rendered and the media file will not contain any video component.

The labelEnabled parameter activates the use of label(s) for stream selection.

The labels parameter allows you to select stream(s). Only streams with matching label
will be rendered in the final media file.

Parameters:
Name Type Description
options Object

Recording preferences.

Properties
Name Type Description
audioOnly boolean

Whether to record only audio.

videoOnly boolean

Whether to record only video.

customIdInFilename string

This string will be added to the name of the final file.

mode string

Recording mode. Either 'complete' (default), 'efficient', 'audioOnly'.

labelEnabled string

Whether streams are selected based on label(s).

labels Object

Array of labels (string) to select stream in the room.

data Object

Additional user data.

ttl number

The time to live (in seconds) of the recording after being successfully created. By default, the data is persistent.

Inherited From:
Overrides:
Returns:
Type
Promise.<RecordingInfo>

stopComposite()

Stops the composite stream on the video bridge.

Inherited From:
Overrides:
Returns:
Type
Promise

stopNewWhiteboardSession()

Stops whiteboard session for this conversation and notifies contacts in conversation

Inherited From:
Overrides:
Returns:
Type
Promise

stopRecording()

Stops recording.

Inherited From:
Overrides:
Returns:
Type
Promise.<RecordingInfo>

subscribeToStream(streamId, options)

Subscribes to a stream.

The subscription will automatically stop if the contact publishing the stream unpublishes it.

The Conversation#streamAdded event will be fired when the stream becomes available.
The Conversation#streamRemoved event will be fired when the stream is no longer available.
The Conversation#hangup event will be fired the subscription is terminated.

Note that multiple Conversation#streamAdded and Conversation#streamRemoved events might be
fired in case failure correction.

Parameters:
Name Type Description
streamId String

Identifies the stream to subscribe to.

options SubscribeOptions
Inherited From:
Overrides:
Returns:
Type
Promise

unpublish(stream, options)

Unpublishes currently published stream to conversation
If other users within the conversation subscribed to this stream, it will be stopped on their side

Parameters:
Name Type Description
stream Stream

Stream to unpublish

options Object
Inherited From:
Overrides:
Returns:
Type
Void

unsubscribeToStream(streamId)

Unsubscribes from a conversation's stream
The stream will be stopped on the user's side

Parameters:
Name Type Description
streamId String
Inherited From:
Overrides:
Returns:
Type
Void

updateData()

Forces conversation persistent data update

Inherited From:
Overrides:
Returns:

data in promise

Type
Promise.<Object>

updateSubscribedStream(streamId, options)

Updates the call configuration for a given subscribed stream.

Parameters:
Name Type Description
streamId String

Stream identifier.

options SubscribeOptions

New call configuration.

Inherited From:
Overrides:
Returns:

When it is done.

Type
Promise

Events


audioAmplitude

Fired when the audio amplitude change happened on conversation stream (indicating user speaking or not)

Type: object
Properties:
Name Type Description
callId string
descriptor descriptor
Inherited From:
Overrides:

availableStreamsUpdated

Fired when available streams in conversation have been updated

Type: Array.<StreamInfo>
Inherited From:
Overrides:

callStatsUpdate

Type: object
Properties:
Name Type Description
callId string
stats CallStats
Inherited From:
Overrides:

closed

Fired when conversation has been closed

Type: void
Inherited From:
Overrides:

contactJoined

Fired when a contact joined the conversation

Type: Contact
Inherited From:
Overrides:

contactJoinedWaitingRoom

Contact joined the waiting room event (moderator only)

Type: Contact
Inherited From:
Overrides:

contactLeft

Fired when a contact left the conversation

Type: Contact
Inherited From:
Overrides:

contactLeftWaitingRoom

Contact left the waiting room event (moderator only)

Type: Contact
Inherited From:
Overrides:

customEvent

Fired when a custom data event has been received from a contact within the conversation.

Type: object
Properties:
Name Type Description
event string

event identifier

sender Contact
content object
Inherited From:
Overrides:

data

Fired when data is received from a contact within the conversation

Type: object
Properties:
Name Type Description
content object

data

sender Contact
Inherited From:
Overrides:

disconnectionWarning

Fired when a disconnection happened on conversation stream

Type: object
Properties:
Name Type Description
streamInfo Array.<StreamInfo>

Stream information

Inherited From:
Overrides:

entryAllowed

Fired when moderator allows user to enter

Type: void
Inherited From:
Overrides:

entryDenied

Fired when moderator denies user to enter

Type: void
Inherited From:
Overrides:

error

Fired when an error happened on conversation stream

Type: object
Properties:
Name Type Description
streamInfo Array.<StreamInfo>

Stream information

errorCode string

Code description of the error. Check possible values below.

errorInfo string

Code information about the error. Check possible values below.

Possible errors values are the following: (errorInfo, errorCode)

Connection errors:
  • ice disconnection detected: ICE_CONNECTION_STATE_DISCONNECTED
  • ice connection failed detected: ICE_CONNECTION_STATE_FAILED
  • distant ice disconnection detected: DISTANT_ICE_CONNECTION_STATE_DISCONNECTED
  • distant ice connection failed detected: DISTANT_ICE_CONNECTION_STATE_FAILED
Errors on signaling processing:
  • 200OK received but callId is not matching, no process : NOT_MATCHING_CALLID_ON_200OK
  • Cannot find call to process Update : CALL_NOT_FOUND_ON_UPDATE
  • Cannot find call to process 200 Update : CALL_NOT_FOUND_ON_200UPDATE
  • Call aborted after calls retries (maxCallsRetriesDuration reached) : CALL_ABORTED
Errors on Media establishment processing:
  • Set local Description Failure : SET_LOCAL_DESCRIPTION_FAILURE
  • Set remote Description Failure : SET_REMOTE_DESCRIPTION_FAILURE
Errors on calling API:
  • parameter error when calling function: setUnidirectionalCall(): PARAMETER_ERROR_SETUNIDIRCALL
  • parameter error when calling function: setNtoNConf(): PARAMETER_ERROR_SETNTONCONF
  • parameter error when calling function: setRTPMedia(): PARAMETER_ERROR_SETRTPMEDIA
  • parameter error when calling function: setMediaRoutingMode(): PARAMETER_ERROR_SETMEDIAROUTINGMODE
  • parameter error when calling function: setUserAcceptOnIncomingCall(): PARAMETER_ERROR_SETUSERACCEPTONINCOCALL
  • parameter error when calling function: hideLocalVideoOnCall(): PARAMETER_ERROR_SETHIDELOCALVIDEOONCALL
  • Trying to add a listener on an unknown event: UNKNOWN_EVENT_ON_ADDLISTENER
  • parameter error when calling function: setAllowMultipleCalls(): PARAMETER_ERROR_SETALLOWMULTIPLECALLS
Errors about recording :
  • Room not found when starting recording: START_RECORD_ROOM_NOT_FOUND
  • Caller not found when starting recording: START_RECORD_CALLER_NOT_FOUND
  • Media not found when starting recording: START_RECORD_MEDIA_FOUND
  • Recording is already ongoing: START_RECORD_ALREADY_ON
  • Room not found when stopping recording: STOP_RECORD_ROOM_NOT_FOUND
  • Caller not found when stopping recording: STOP_RECORD_CALLER_NOT_FOUND
  • Media not found when stopping recording: STOP_RECORD_MEDIA_FOUND
  • Recorder not found when stopping recording: STOP_RECORD_ENDPOINT_NOT_FOUND
  • Recording is not started stopping recording: STOP_RECORD_NOT_STARTED
  • Recorder is not ready yet, record is not started: STOP_RECORD_RECORDER_NOT_READY
Errors about media play:
  • Autoplay was prevented: IOS_AUTOPLAY_PREVENTED
Errors about media streams:
  • Error during media update on call: MEDIA_UPDATE_ERROR
Errors about user media:
  • Error during media media access: USER_MEDIA_ERROR
Errors about remote stream:
  • Error during subscription: STREAM_NOT_AVAILABLE
descriptor ConversationIceErrorDescriptor | object

Detailed descriptor of the error

Inherited From:
Overrides:

hangup

Fired when a publish or subscribe is terminated.

Type: object
Properties:
Name Type Description
from string

'local' or 'remote'.

reason string

Hangup reason.

streamId string

Stream ID.

Inherited From:
Overrides:

joined

Fired when conversation has been joined by the user.

Type: void
Inherited From:
Overrides:

left

Fired when conversation has been left by the user.

Type: void
Inherited From:
Overrides:

localStreamUpdated

Fired when local stream properties changed.

Type: object
Properties:
Name Type Description
callId string

Call ID.

streamId string

Stream ID.

audio boolean

Whether an audio line has been negotiated and active.

audioMuted boolean

Whether the audio line is muted.

video boolean

Whether a video line has been negotiated and active.

videoMuted boolean

Whether the video line is muted.

cause string

Either 'adaptation' or 'userAction'.

Inherited From:
Overrides:

message

Fired when a message is received from contact in the conversation

Type: object
Properties:
Name Type Description
content string

content of the message

sender Contact
time Date

receive time

Inherited From:
Overrides:

messageNotDelivered

Type: Object
Properties:
Name Type Description
error ApiRTCError

Hint.

contact Contact

Message recipient.

event String

Event (optional).

command String

Command (optional).

Inherited From:
Overrides:

moderatorConnected

Fired when moderator joined the conversation

Type: object
Properties:
Name Type Description
moderator Contact
Inherited From:
Overrides:

newMediaAvailable

Fired when a new media is available in the conversation.

Type: object
Properties:
Name Type Description
sender Contact
media CloudMediaInfo
Inherited From:
Overrides:

newWhiteboardSession

Fired when a contact in the conversation starts a new whiteboard session

Type: object
Properties:
Name Type Description
sender Contact
Inherited From:
Overrides:

participantEjected

Fired when a participant has been ejected from the conference.

Type: object
Properties:
Name Type Description
self boolean
contact Contact
Inherited From:
Overrides:

persistentDataUpdated

Fired when conversation persistent data has been updated.

Type: object
Inherited From:
Overrides:

pointerLocationChanged

Fired when a pointer location changed.

Type: object
Properties:
Name Type Description
sender Contact

sender.

source object

source identifier.

x number

The X coordinate of the mouse pointer in source coordinates.

y number

The Y coordinate of the mouse pointer in source coordinates.

data object

Optional data.

Inherited From:
Overrides:

pointerSharingEnabled

Fired when pointer sharing is enabled or disabled.

Type: object
Properties:
Name Type Description
enabled boolean

True when enabled, false when disabled.

Inherited From:
Overrides:

recordingAvailable

Fired when a recording is available for play or download.

Type: RecordingInfo
Inherited From:
Overrides:

recordingStarted

Fired when a recording started.

Type: RecordingInfo
Inherited From:
Overrides:

recordingStopped

Fired when a recording stopped.

Type: RecordingInfo
Inherited From:
Overrides:

remoteStreamUpdated

Fired when remote stream properties changed.

Type: object
Properties:
Name Type Description
callId string

Call ID.

audio boolean

Whether an audio line has been negotiated and active.

audioMuted boolean

Whether the audio line is muted.

video boolean

whether a video line has been negotiated and active.

videoMuted boolean

Whether the video line is muted.

cause string

Either 'adaptation' or 'userAction'.

Inherited From:
Overrides:

roomModeChanged

Fired when the mode of conference room is changing or changed.

Type: object
Properties:
Name Type Description
oldMode string

Represents the previous mode, being replaced (or replaced) by the new mode. Either 'mesh' or 'sfu'.

newMode string

Represents the new mode, replacing the previous mode. Either 'mesh' or 'sfu'.

state string

Represents the state of the room mode change. Either 'ongoing' or 'complete'.

Inherited From:
Overrides:

Fired when a slow link is detected.
An optional advice can be set. When advice is 'subscribeToAudioComposite', the
application should start the audio composite (#startComposite) and then subscribe
to the audio composite stream instead of subscribing to every stream individually.

Type: object
Properties:
Name Type Description
callId string

callId

advice string

Optional advice.

Inherited From:
Overrides:

streamAdded

Fired when a stream is received from this conversation after a subscription

Type: Stream
Inherited From:
Overrides:

streamListChanged

Fired when available stream list changed

Type: StreamInfo
Inherited From:
Overrides:

streamRemoved

Fired when stream is removed from this conversation after an unsubscription

Type: Stream
Inherited From:
Overrides:

transferBegun

Fired when a transfer begun (push data).

Type: object
Properties:
Name Type Description
id string

transfer id.

name string

filename.

Inherited From:
Overrides:

transferEnded

Fired when a transfer ended (push data).

Type: object
Properties:
Name Type Description
id string

transfer id.

name string

filename.

Inherited From:
Overrides:

transferPending

Fired when a transfer is pending (push data).

Type: object
Properties:
Name Type Description
id string

transfer id.

name string

filename.

rank number
Inherited From:
Overrides:

transferProgress

Fired with progress status during a transfer (push data).

Type: object
Properties:
Name Type Description
id string

transfer id.

name string

filename.

size number

total transfered byte count.

remBytes number

remaining byte count.

percentage number

progress ratio.

Inherited From:
Overrides:

waitingForModeratorAcceptance

Fired when entering the waiting room of a conversation, requiring the moderator to accept before joining the room

Type: object
Properties:
Name Type Description
moderator Contact
Inherited From:
Overrides: