Call
A Call represents a one-to-one call with another browser, a SIP endpoint, or even a phone number. The Call object supports both audio and video.
Properties
Name | Type | Description |
---|---|---|
id | string | The identifier of the call. |
direction | string | The direction of the call. Can be either inbound or outbound . |
state | string | The state of the call. See State for all the possible call states. |
prevState | string | The previous state of the call. See State for all the possible call states. |
localStream | MediaStream | The local stream of the call. This can be used in a video/audio element to play the local media. |
remoteStream | MediaStream | The remote stream of the call. This can be used in a video/audio element to play the remote media. |
State
The state
and prevState
properties of a Call have the following values:
Value | Description |
---|---|
new | New Call has been created in the client. |
trying | You are attempting to call someone. |
requesting | Your outbound call is being sent to the server. |
recovering | Your previous call is recovering after the page refresh. If you refresh the page during a call, you will automatically be joined with the latest call. |
ringing | Someone is attempting to call you. |
answering | You are attempting to answer the inbound Call. |
early | You received the media before the Call has been answered. |
active | Call has become active. |
held | Call has been held. |
hangup | Call has ended. |
destroy | Call has been destroyed. |
purge | Call has been purged. |
Methods
answer
Start the process to answer the incoming Call.
Parameters
None
Returns
None
Example
call.answer()
deaf
Turn off the audio input track.
Example
call.deaf()
dtmf
Send a Dual Tone Multi Frequency (DTMF) string to Relay.
Parameters
Name | Type | Required | Description |
---|---|---|---|
string | string | required | DTMF to send. |
Returns
None
Examples
call.dtmf('0')
hangup
Hangs up the call.
Parameters
None
Returns
None
Examples
call.hangup()
hold
Holds the call.
Parameters
None
Returns
None
Examples
call.hold()
muteAudio
Turn off the audio output track.
Example
call.muteAudio()
muteVideo
Turn off the video output track.
Example
call.muteVideo()
setAudioInDevice
Change the audio input device used for the Call.
Example
// within an async function ..
const success = await call.setAudioInDevice('d346d0f78627e3b808cdf0c2bc0b25b4539848ecf852ff03df5ac7545f4f5398')
if (success) {
// The Call audio input has been set to the device 'd346d0f78627e3b808cdf0c2bc0b25b4539848ecf852ff03df5ac7545f4f5398'
} else {
// The browser does not support the .setSinkId() API..
}
setAudioOutDevice
Change the audio output device used for the Call.
Example
// within an async function ..
const success = await call.setAudioOutDevice('d346d0f78627e3b808cdf0c2bc0b25b4539848ecf852ff03df5ac7545f4f5398')
if (success) {
// The Call audio has been redirect to the device 'd346d0f78627e3b808cdf0c2bc0b25b4539848ecf852ff03df5ac7545f4f5398'
} else {
// The browser does not support the .setSinkId() API..
}
setVideoDevice
Change the video output device used for the Call.
Example
// within an async function ..
const success = await call.setVideoDevice('d346d0f78627e3b808cdf0c2bc0b25b4539848ecf852ff03df5ac7545f4f5398')
if (success) {
// The Call video has been redirect to the device 'd346d0f78627e3b808cdf0c2bc0b25b4539848ecf852ff03df5ac7545f4f5398'
} else {
// The browser does not support the .setSinkId() API..
}
toggleAudioMute
Toggle the audio output track.
Example
call.toggleAudioMute()
toggleHold
Toggles the hold state of the call.
Parameters
None
Returns
None
Examples
call.toggleHold()
toggleVideoMute
Toggle the video output track.
Example
call.toggleVideoMute()
undeaf
Turn on the audio input track.
Example
call.undeaf()
unhold
Un-holds the call.
Parameters
None
Returns
None
Examples
call.unhold()
unmuteAudio
Turn on the audio output track.
Example
call.unmuteAudio()
unmuteVideo
Turn on the video output track.
Example
call.unmuteVideo()