TUICallEvent
TUICallEvent API Introduction
TUICallEvent API is the Event Interface of the Audio and Video Call Components.
Event List
EVENT | Description |
An error occurred during the call. | |
This event is received when the SDK enters the ready state | |
Receiving this event after a duplicate sign-in indicates that the user has been removed from the room | |
If a user answers, this event will be received | |
A user joined the call. | |
A user left the call. | |
A user declined the call. | |
A user didn't respond. | |
A user was busy. | |
Whether a user has a video stream. | |
Whether a user has an audio stream. | |
The volume levels of all users. | |
Group Chat Update, Invitation List this callback will be received | |
Call connected event, v1.4.6+ supported | |
A call was received. It will be discarded later and it is recommended to use TUICallEvent.ON_CALL_RECEIVED | |
Call request event, v1.4.6+ supported | |
Call cancellation event, It will be abandoned later and it is recommended to use TUICallEvent.ON_CALL_CANCELED | |
Call connected event, v1.4.6+ supported | |
The call ended. | |
Device list update, this event will be received | |
Call type switching, this event will be received | |
All user network quality events, v3.0.7+ supported |
ERROR
Error event during the call. You can capture internal errors during the call by monitoring this event.
let onError = function(error) {console.log(error.code, error.msg);};tuiCallEngine.on(TUICallEvent.ERROR, onError);
The parameters are described below:
Parameter | Type | Meaning |
code | Number | |
msg | String | Error message |
SDK_READY
TUICallEngine relies on @tencentcloud/chat SDK. The SDK_READY event will be triggered only after successful login, and then you can use various functions of the SDK.
let onSDKReady = function(event) {console.log(event);};tuiCallEngine.on(TUICallEvent.SDK_READY, onSDKReady);
KICKED_OUT
The current user was kicked offline:At this time, you can prompt the user with a UI message and then invoke
login
again.let handleOnKickedOut = function(event) {console.log(event);};tuiCallEngine.on(TUICallEvent.KICKED_OUT, handleOnKickedOut);
USER_ACCEPT
If a user answers, all other users will receive this event, where `userID` is the user who answered.
1. In a 1v1 call: when the callee answers, the caller will throw this event.
2. In group calls: if A calls B and C, and B answers, both A and C will throw this event, with the event's `userID` being B. Similarly, if C answers, both A and B will throw this event, with the event's `userID` being C.
let handleUserAccept = function(event) {console.log(event.userID);};tuiCallEngine.on(TUICallEvent.USER_ACCEPT, handleUserAccept);
The parameters are described below:
Parameter | Type | Meaning |
userID | String | Answering User ID |
USER_ENTER
If a user enters the call, other users will throw this event, and userID is the user name who entered the call.
let handleUserEnter = function(event) {console.log(event.userID);};tuiCallEngine.on(TUICallEvent.USER_ENTER, handleUserEnter);
The parameters are described below:
Parameter | Type | Meaning |
userID | String | Entering User ID |
USER_LEAVE
When a user leaves the call, this event will be thrown by other users in the call. The userID is the name of the user who left the call.
let handleUserLeave = function(event) {console.log(event.userID);};tuiCallEngine.on(TUICallEvent.USER_LEAVE, handleUserLeave);
The parameters are described below:
Parameter | Type | Meaning |
userID | String | Exiting User ID |
REJECT
This event is thrown when the call is rejected
1. In a 1v1 call, only the calling party will receive the rejection event, and userID is the called username.
2. In a group call, when an invitee refuses the call, this event will be thrown by other people in the group call. The userID is the name of the user who refused the call.
let handleInviteeReject = function(event) {console.log(event.userID);};tuiCallEngine.on(TUICallEvent.REJECT, handleInviteeReject);
The parameters are described below:
Parameter | Type | Meaning |
userID | String | Rejecting User ID |
NO_RESP
This event will be thrown by other calling users when the callee does not respond.
In a 1v1 call, only the initiator will receive the event of no answer. For example, A invites B, B does not answer, A can receive this event.
In a group call, when an invitee does not respond, this event will be thrown by everyone else in the group call. For example, if A invites B and C to join the call, but B does not respond, both A and C will throw this event.
let handleNoResponse = function(event) {console.log(event.sponsor, event.userIDList);};tuiCallEngine.on(TUICallEvent.NO_RESP, handleNoResponse);
The parameters are described below:
Parameter | Type | Meaning |
sponsor | String | Caller's User ID |
userIDList | Array<String> | List of Users Who Triggered Timeout Due to No Response |
LINE_BUSY
Call busy event. For example: when B is on a call, and A calls B, A will throw an event.
let handleLineBusy = function(event) {console.log(event);};tuiCallEngine.on(TUICallEvent.LINE_BUSY, handleLineBusy);
The parameters are described below:
Parameter | Type | Meaning |
userID | String | Busy User ID |
USER_VIDEO_AVAILABLE
If a user turns on/off the camera during a video call, this event will be thrown by other users in the call. For example: A and B are on a video call, A turns on/off the camera, and B will throw this event.
let handleUserVideoChange = function(event) {console.log(event.userID, event.isVideoAvailable);};tuiCallEngine.on(TUICallEvent.USER_VIDEO_AVAILABLE, handleUserVideoChange);
The parameters are described below:
Parameter | Type | Meaning |
userID | String | Remote User ID |
isVideoAvailable | Boolean | true: Remote User turns Camera On; false: Remote User turns Camera Off |
USER_AUDIO_AVAILABLE
If a user turns on/off the microphone during an audio or video call, this event will be thrown by other users on the call. For example: A and B are having an audio and video call, and A turns on/off the microphone, and B will throw this event.
let handleUserAudioChange = function(event) {console.log(event.userID, event.isAudioAvailable);};tuiCallEngine.on(TUICallEvent.USER_AUDIO_AVAILABLE, handleUserAudioChange);
The parameters are described below:
Parameter | Type | Meaning |
userID | String | User ID to turn microphone on/off |
isAudioAvailable | Boolean | true the user turns on the microphone; false the user turns off the microphone |
USER_VOICE_VOLUME
When the user's volume changes during an audio or video call, this event will be thrown by other users on the call. For example: A and B are having an audio and video call, and if A's volume changes, B will throw this event.
let handleUserVoiceVolumeChange = function(event) {console.log(event.volumeMap);};tuiCallEngine.on(TUICallEvent.USER_VOICE_VOLUME, handleUserVoiceVolumeChange);
The parameters are described below:
Parameter | Type | Meaning |
volumeMap | Array<Object> | Volume meter, the corresponding volume can be obtained according to each userid, volume range: [0, 100] |
GROUP_CALL_INVITEE_LIST_UPDATE
Group chat update invitation list, this event will be received.
let handleGroupInviteeListUpdate = function(event) {console.log(event.userIDList);};tuiCallEngine.on(TUICallEvent.GROUP_CALL_INVITEE_LIST_UPDATE, handleGroupInviteeListUpdate);
The parameters are described below:
Parameter | Type | Meaning |
userIDList | Array<String> | Group update invitation list |
INVITED
Receiving a new incoming call event, the called party will be notified. By listening to this event, you can decide whether to display the call answering interface.
Note:
ON_CALL_RECEIVED
Receiving a new incoming call event, the called party will be notified. By listening to this event, you can decide whether to display the call answering interface.
Note:
v1.4.6+ supported.
let handleOnCallReceived = function(event) {console.log(event);};tuiCallEngine.on(TUICallEvent.ON_CALL_RECEIVED, handleOnCallReceived);
The parameters are described below:
Parameter | Type | Meaning |
sponsor | String | Inviter |
userIDList | Array<String> | Also Invited Persons |
isFromGroup | Boolean | Is it a Group Call |
inviteData | Object | Call Data |
inviteID | String | Invitation ID, identifying one invitation |
userData | String | Extended field: Utilized for amplifying details in the invitation signaling |
callId | String | Unique ID for this call |
roomID | Number | Audio-Video Room ID for this call |
callMediaType | Number | Media Type of the call, Video Call, Voice Call |
callRole | String | role, Enumeration Type: Caller, Called |
CALLING_CANCEL
If the call is not established, this event will be thrown. By listening to this event, you can implement display logic similar to missed calls, reset UI state, etc. Scenarios where the call is not established include:
Note:
ON_CALL_CANCELED
If the call is not established, this event will be thrown. By listening to this event, you can implement display logic similar to missed calls, reset UI state, etc. Scenarios where the call is not established include:
Caller Cancelled: The caller throws this event, userID is the caller; the called also throws this event, userID is the called;
Callee Timeout: The caller will throw both NO_RESP and CALLING_CANCEL events, userID is the caller; the called throws the CALLING_CANCEL event, userID is the called;
Callee Rejected: The caller will throw both REJECT and CALLING_CANCEL events, userID is the caller; the called throws the CALLING_CANCEL event, userID is the called;
Callee Busy: The caller will throw both LINE_BUSY and CALLING_CANCEL events, userID is the caller; the callee throws the CALLING_CANCEL event, userID is the callee;
Note:
Supported from version v1.4.6+ .
let handleOnCallCanceled = function(event) {console.log(event.userID);};tuiCallEngine.on(TUICallEvent.ON_CALL_CANCELED, handleOnCallCanceled);
The parameters are described below:
Parameter | Type | Meaning |
userID | String | Cancelled User ID |
callId | String | Unique ID for this call |
roomID | Number | Audio-Video Room ID for this call |
callMediaType | Number | Media Type of the call, Video Call, Voice Call |
callRole | String | role, Enumeration Type: Caller, Called |
ON_CALL_BEGIN
Indicates call connection. Both caller and called can receive it. You can start cloud recording, content review, etc., by listening to this event.
Note:
Supported from version v1.4.6+ .
let handleOnCallBegin = function(event) {console.log(event);};tuiCallEngine.on(TUICallEvent.ON_CALL_BEGIN, handleOnCallBegin);
The parameters are described below:
Parameter | Type | Meaning |
callId | String | Unique ID for this call |
roomID | Number | Audio-Video Room ID for this call |
callMediaType | Number | Media Type of the call, Video Call, Voice Call |
callRole | String | role, Type: Caller, Called |
CALLING_END
Indicates call termination. Both caller and called can trigger this event. You can display information such as call duration, call type, or stop the cloud recording process by listening to this event.
let handleCallingEnd = function(event) {console.log(event.userID, event.);};tuiCallEngine.on(TUICallEvent.CALLING_END, handleCallingEnd);
The parameters are described below:
Parameter | Type | Meaning |
roomID | Number | Audio-Video Room ID for this call, currently only supports numeric room number, future versions will support character string room numbers |
callMediaType | Number | Media Type of the call, Video Call, Voice Call |
callRole | String | role, Enumeration Type: Caller ('inviter'), Called ('invitee'), Unknown ('') |
totalTime | Number | The duration of this call in seconds |
userID | String | userID of the call termination. |
callId | String | The unique ID for this call. v1.4.6+ Supported |
callEnd | Number | The duration of this call (will be deprecated, Please use totalTime) in seconds |
DEVICED_UPDATED
Device list update, this event will be received.
let handleDeviceUpdated = function({ microphoneList, cameraList, currentMicrophoneID, currentCameraID }) {console.log(microphoneList, cameraList, currentMicrophoneID, currentCameraID)};tuiCallEngine.on(TUICallEvent.DEVICED_UPDATED, handleDeviceUpdated);
CALL_TYPE_CHANGED
Call type switching, this event will be received.
let handleCallTypeChanged = function({ oldCallType, newCallType }) {console.log(oldCallType, newCallType)};tuiCallEngine.on(TUICallEvent.CALL_TYPE_CHANGED, handleDeviceUpdated);
The parameters are described below:
Parameter | Type | Meaning |
oldCallType | Number | Old call type |
newCallType | Number | New call type |
ON_USER_NETWORK_QUALITY_CHANGED
All user network quality events
Note:
v3.0.7+ supported.
let handleOnUserNetworkQualityChange = function(event) {console.log(event.networkQualityList);};tuiCallEngine.on(TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED, handleOnUserNetworkQualityChange);
The parameters are described below:
Parameter | Type | Meaning |
networkQualityList | Array<Object> | Network status, according to userID, you can get the current network quality of the corresponding user (only local uplink and downlink). For example:
networkQualityList: [{ userId: quality }] 。
Network Quality Description:
quality = 0, Network state is unknown
quality = 1, Network state is excellent
quality = 2, Network state is good
quality = 3, Network state is average
quality = 4, Network state is poor
quality = 5, Network state is very poor
quality = 6, Network connection is disconnected |
- TUICallEvent API Introduction
- Event List
- ERROR
- SDK_READY
- KICKED_OUT
- USER_ACCEPT
- USER_ENTER
- USER_LEAVE
- REJECT
- NO_RESP
- LINE_BUSY
- USER_VIDEO_AVAILABLE
- USER_AUDIO_AVAILABLE
- USER_VOICE_VOLUME
- GROUP_CALL_INVITEE_LIST_UPDATE
- INVITED
- ON_CALL_RECEIVED
- CALLING_CANCEL
- ON_CALL_CANCELED
- ON_CALL_BEGIN
- CALLING_END
- DEVICED_UPDATED
- CALL_TYPE_CHANGED
- ON_USER_NETWORK_QUALITY_CHANGED