Class: Conversation

Conversation

Conversation

Users are able to interact with each other by entering a conversation in a N-N fashion.
The client is able to listen to conversation events that will be fired once the conversation is joined

Extends

Methods


<static> getAvailableEvents()

Returns available events for this class

Returns:
Type
Array.<string>

asyncGetCloudConversationId(conversation, options)

Parameters:
Name Type Description
conversation Conversation
options object

token session

Returns:
Type
Promise.<integer>

cancelJoin()

Cancels an ongoing join request.


checkAccess(options)

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

Parameters:
Name Type Description
options Object

Optional data.

Returns:
Type
Promise.<ConferenceAccessStatus>

destroy()

Cleans up all local resources attached to this one.


enablePointerSharing(enabled)

Enables or disables pointer sharing for this one.

Parameters:
Name Type Description
enabled boolean

true to enable, false to disable.

Returns:
Type
Promise

enablePointerSharing(conversation, initiator, enabled)

Enables or disables pointer sharing for a given conversation.

Parameters:
Name Type Description
conversation Conversation
initiator boolean

whether caller has initiator role.

enabled boolean

true to enable, false to disable.

Returns:
Type
Promise.<string>

fetchMediaList(session, options)

Fetches media specific to this conversation

Parameters:
Name Type Description
session Session
options object
Returns:

mediaList

Type
Promise.<object>

fetchMessageHistory(session, options)

Loads message history for this conversation

Parameters:
Name Type Description
session Session
options Object
Returns:
Type
Promise.<Array.<ConversationMessage>>

getAvailableMediaList()

Returns information for media streams available in the conversation

Deprecated:
  • Yes
Returns:

contact list

Type
Array.<StreamInfo>

getAvailableStreamList()

Returns information for media streams available in the conversation

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

Returns:
Type
string

getContacts()

Returns contact list for conversation

Returns:

contact list

Type
Object.<string, Contact>

getConversationCall(stream)

Returns the conversation call handle for a given stream.

Parameters:
Name Type Description
stream Stream

A stream, result of preceding publish or subscribe call.

Returns:

A conversation call handle on success, null otherwise.

Type
ConversationCall

getData()

Returns conversation persistent data

Returns:

data

Type
Object

getName()

Returns this conversation's room name

Returns:
Type
string

getStatus()

Returns conversation status

Returns:
Type
Symbol

getWaitingRoomContacts()

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

Returns:

contact list

Type
Object.<string, Contact>

isJoined()

Checks if the conversation is joined

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

Returns:
Type
boolean

join(options)

Connects to a conversation if not already joined
Once in the conversation, the user will be able to see other contacts inside it, send and receive messages, publish streams and subscribe to conversation's streams

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

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

Returns:
Type
void

on(listener)

Adds a listener to a Observable event

Parameters:
Name Type Description
listener function
Inherited From:
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 Object

Publish options.

Properties
Name Type Description
qos Object

QoS preferences.

Properties
Name Type Description
videoMinQuality String

Defines minimum video quality (one of excellent, good, medium or bad).

videoForbidInactive Boolean

Forbids video disabling.

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
Returns:
Type
Promise.<CloudMediaInfo>

pushMedia(media, options)

Pushes media specific to this conversation

Parameters:
Name Type Description
media string

dataURI media

options object
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:
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
Returns:
Type
Void

sendData(data, options)

Sends data message to contacts in conversation

Parameters:
Name Type Description
data Object

data to send

options Object
Returns:
Type
Void

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

Returns:
Type
SentInvitation

sendMessage(message, options)

Sends string message to contacts in conversation

Parameters:
Name Type Description
message String

message to send

options Object

options

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.


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
Returns:
Type
Void

setData(data)

Sets conversation persistent data (cloud user only)

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

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

Returns:
Type
Void

startRecording(options)

Starts recording the conversation represented by this one.

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.

data object

User data.

Returns:
Type
Promise.<RecordingInfo>

stopNewWhiteboardSession()

Stops whiteboard session for this conversation and notifies contacts in conversation

Returns:
Type
Void

stopRecording()

Stops recording.

Returns:
Type
Promise

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
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
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
Returns:
Type
Void

updateData()

Forces conversation persistent data update

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.

Returns:

When it is done.

Type
Promise

Events


audioAmplitudeUpdate

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

availableStreamsUpdated

Fired when available streams in conversation have been updated

Type: Array.<StreamInfo>

callStatsUpdate

Type: object
Properties:
Name Type Description
callId string
stats CallStats

closed

Fired when conversation has been closed

Type: void

contactJoined

Fired when a contact joined the conversation

Type: Contact

contactJoinedWaitingRoom

Contact joined the waiting room event (moderator only)

Type: Contact

contactLeft

Fired when a contact left the conversation

Type: Contact

contactLeftWaitingRoom

Contact left the waiting room event (moderator only)

Type: Contact

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

data

Fired when data is received from a contact within the conversation

Type: object
Properties:
Name Type Description
content object

data

sender Contact

disconnectionWarning

Fired when a disconnection happened on conversation stream

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

Stream information


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

errorInfo string

Code information about the error

descriptor object

Detailed descriptor of the error


hangup

Fired when a publish or subscribe is terminated.

Type: object
Properties:
Name Type Description
from string

'local' or 'remote'.

reason string

Hangup reason.


joined

Fired when conversation has been joined by the user.

Type: void

left

Fired when conversation has been left by the user.

Type: void

localStreamUpdated

Fired when local stream properties changed.

Type: object
Properties:
Name Type Description
callId string

callId.

streamId string

streamId.

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.


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


moderatorConnected

Fired when moderator joined the conversation

Type: object
Properties:
Name Type Description
moderator Contact

newMediaAvailable

Fired when a new media is available in the conversation.

Type: object
Properties:
Name Type Description
sender Contact
media CloudMediaInfo

newWhiteboardSession

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

Type: object
Properties:
Name Type Description
sender Contact

persistentDataUpdated

Fired when conversation persistent data has been updated.

Type: object

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.


pointerSharingEnabled

Fired when pointer sharing is enabled or disabled.

Type: object
Properties:
Name Type Description
enabled boolean

True when enabled, false when disabled.


recordingAvailable

Fired when a recording is available for play or download.

Type: RecordingInfo

recordingStarted

Fired when a recording started.

Type: RecordingInfo

remoteStreamUpdated

Fired when remote stream properties changed.

Type: object
Properties:
Name Type Description
callId string

callId

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.


Fired when a slow link is detected.

Type: object
Properties:
Name Type Description
callId string

callId


streamAdded

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

Type: Stream

streamListChanged

Fired when available stream list changed

Type: StreamInfo

streamRemoved

Fired when stream is removed from this conversation after an unsubscription

Type: Stream

transferBegun

Fired when a transfer begun (push data).

Type: object
Properties:
Name Type Description
id string

transfer id.

name string

filename.


transferEnded

Fired when a transfer ended (push data).

Type: object
Properties:
Name Type Description
id string

transfer id.

name string

filename.


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.


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