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()