Field | Description |
free | Idle: Agent is online at their workstation but not currently engaged in a call. |
busy | In Call: Agent is handling an inbound or outbound call and will not receive new call assignments during this time. |
arrange | After-call-work |
notReady | Busy: agent will not receive new inbound calls, but can make outbound calls. |
rest | On Break: agents can select a break reason such as "Meal," "Meeting," or "Training" (reasons are configured by the admin in the Management Panel). |
Field | Description |
staffSeat | Web agent to make and answer calls through the web server. |
staffPhoneSeat | Agent who make and answer calls through mobile device. |
miniProgramSeat | Agent who make and answer calls through wechat mini-program. |
staffExtensionSeat | Agent who make and answer calls through SIP phone device. |
Parameter | Type | Required | Remarks | |
options | status | 'success' |'error' | Yes | SDK API call result, returns success on success, error on failure |
| errorMsg | string | No | Error message returned when status is error |
Parameter | Type | Required | Remarks | |
options | phoneNumber | String | Yes | Contact Number |
| phoneDesc | String | No | Number Remark will display in call bar instead of number |
| uui | String | No | |
| skillGroupId | String | No | Skill group ID associated with outbound call number. |
| callerPhoneNumber | String | No | Number that uses to make outbound call. |
| servingNumberGroupIds | String[] | No | Specified Number ID List |
| phoneEncodeType | 'number' | No | |
Parameter | Type | Required | Remarks | |
response | sessionId | String | Yes | Specify session ID |
| calleeLocation | String | No | Callee number location |
| calleePhoneNumber | String | Yes | Contact Number |
| callerPhoneNumber | String | Yes | Caller Number that is used to make the outbound call |
| serverType | String | Yes | Service Endpoint Type: Describes the type of agent device used during call sessions. Enum value: staffSeat, staffPhoneSeat, and staffExtensionSeat. For details, see Session Service Type. |
| remark | String | No | Callee number remarks |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID, obtain from tccc.events.callIn event |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | calleeUserId | String | Yes | Agent account (Callee Side) |
| useMobile | Boolean | No | Whether to call agent mobile or not |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
| skillGroupId | String | No | Transfer to designated skill group |
| userId | String | No | Transfer to designated agent |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | |
| textOnly | Boolean | No | The default is false, which means audio monitoring is initiated. Set it to true to enable text monitoring instead. |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Session has been taken over (intercepted) by Admin. |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
| dtmfText | String | No | Extension number to send |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
| skillGroupId | String | No | Transfer to designated skill group |
| userId | String | No | Transfer to designated agent |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
| skillGroupId | String | No | Transfer to designated skill group |
| userId | String | No | Transfer to designated agent |
Parameter | Type | Required | Remarks | |
options | status | String | Yes | Agent status, value range: free: Idle, available to start service rest: Rest, temporarily unavailable arrange: After-call-work notReady: Busy stopNotReady: Stop Busy |
| restReason | String | No | Break Reason |
Parameter | Type | Required | Remarks | |
settings | disableRingtone | Boolean | No | true means disable SDK's ringtones (e.g., inbound call and answer tones). |
| disableNotification | Boolean | No | true means disable SDK system notifications |
Callback Parameter | Type | Required | Remarks | |
options | tabUUID | String | Yes | A unique ID for the current page that changes after refresh, used for multi-tab SDK integration. |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Conversation ID |
| type | 'phone' | Yes | Type of voice session (e.g., Web, mobile, sip phone calls) |
| timeout | Number | Yes | Session connection timeout duration, (0 means no timeout is applied) |
| calleePhoneNumber | String | Yes | Contact Number |
| callerPhoneNumber | String | No | Caller Number |
| callerLocation | String | No | Caller number location |
| remark | String | No | Remarks |
| ivrPath | {key: String, label: String}[] | - | User IVR path: KEY represents the key pressed at each node, and LABEL represents the label for the key. |
| protectedCallee | String | No | When admin enables number masking to protect real numbers, the masked number will be shown in this field for the callee. |
| protectedCaller | String | No | When admin enables number masking to protect real numbers, the masked number will be shown in this field for the caller. |
| serverType | 'staffSeat' | 'staffPhoneSeat' | 'staffExtensionSeat' | Yes | Indicates the device used by the agent to answer incoming calls: 1) staffSeat (default): Web agent. 2) StaffPhoneSeat: Agent's mobile phone. 3) MiniProgramSeat: Mini Program agent. 4) staffExtensionSeat: Agent's linked desk phone. |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Conversation ID |
| type | 'phone' | Yes | Type of voice session (e.g., Web, mobile, sip phone calls) |
| timeout | Number | Yes | Session connection timeout duration, (0 means no timeout is applied) |
| nickname | String | Yes | Nickname. |
| avatar | String | No | User's profile photo |
| remark | String | No | Remarks |
| peerSource | String | No | Channel Source |
| channelName | String | No | custom parameter |
| clientData | String | No | user-defined parameter |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Conversation ID |
| type | 'voip' | Yes | Audio session type |
| timeout | Number | Yes | Session connection timeout duration, (0 means no timeout is applied) |
| callee | String | Yes | Channel |
| calleeRemark | String | No | Channel remarks |
| userId | String | Yes | user's openId |
| nickname | String | No | WeChat nickname can be obtained with user authorization |
| avatar | String | No | WeChat avatar can be obtained with user authorization |
| remark | String | No | Remarks |
| peerSource | String | No | Caller number location |
| ivrPath | {key: String, label: String}[] | No | User IVR path: KEY represents the key pressed at each node, and LABEL represents the label for the key. |
| clientData | String | No | user-defined parameter |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Conversation ID |
| type | 'video' | Yes | Video session type |
| timeout | String | Yes | Session connection timeout duration, (0 means no timeout is applied) |
| userId | String | Yes | user's openId |
| nickname | String | No | WeChat nickname can be obtained with user authorization |
| avatar | String | No | WeChat avatar can be obtained with user authorization |
| remark | String | No | Remarks |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Conversation ID |
| type | 'internal' | Yes | internal session type |
| timeout | Number | Yes | Session connection timeout duration, (0 means no timeout is applied) |
| peerUserId | String | Yes | Caller agent account |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
| tabUUID | String | No | Present in multi-tab integration, it indicates which tab the agent used to answer. |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
| closeBy | String | Yes | Hang Up Party: Client: client hang up seat: agent hang up admin: system hang up timer: timer hang up |
| mainReason | String | No | This is only applied in voice call, present when the disconnector is "admin," indicating the reason for the hung up. |
| subReason | String | No | This is only applied in voice call, present when the disconnector is "admin," indicating the detailed reason for the hung up. |
Callback Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
| callerPhoneNumber | String | Yes | Caller number used for making an outbound call |
| calleePhoneNumber | String | Yes | Contact Number |
| serverType | 'staffSeat' | 'staffPhoneSeat' | 'staffExtensionSeat' | 'MiniProgramSeat' | Yes | Indicates agent uses what device to make outbound calls: `staffSeat` - default value, indicating agent is using web browser to make calls. StaffPhoneSeat indicates mobile outbound call MiniProgramSeat indicates mini program outbound call staffExtensionSeat indicates telephone outbound call |
| tabUUID | String | No | Once multi-tab integration turned on, it indicates which tab the agent used to answer. |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | |
options | sessionId | String | Yes | Specify session ID |
Parameter | Type | Required | Remarks | | |
options | status | No | | ||
Parameter | Type | Required | Remarks | | |
options | sessionId | String | Yes | Specify session ID | |
| result | ASR recognition result | Yes | | |
| flow | 'IN' | 'OUT' | Yes | Recognition direction user-side agent side | |
function injectTcccWebSDK(SdkURL) {if (window.tccc) {console.warn('SDK already initialized, confirm whether to repeat initialization');return;}return new Promise((resolve, reject) => {const script = document.createElement('script');script.setAttribute('crossorigin', 'anonymous');script.src = SdkURL;/*Add enableShared to enable the multi-Tab feature.*/script.dataset.enableShared = 'true'document.body.appendChild(script);script.addEventListener('load', () => {window.tccc.on(window.tccc.events.ready, ({ tabUUID }) => {resolve('initialization successful, current tabUUID is ' + tabUUID)});window.tccc.on(window.tccc.events.tokenExpired, ({message}) => {console.error('initialization failed', message)reject(message)})})})}
let curTabUUID = '';window.tccc.on(window.tccc.events.ready, ({ tabUUID }) => {console.log('initialization successful, current tabUUID is ' + tabUUID)curTabUUID = tabUUID;});window.tccc.on(window.tccc.events.callOuted, ({ sessionId, tabUUID }) => {if (tabUUID && tabUUID !== curTabUUID) {// Receiving outbound call success event from other pages, business can handle by itself}})window.tccc.on(window.tccc.events.userAccessed, ({ sessionId, tabUUID }) => {if (tabUUID && tabUUID !== curTabUUID) {// Receiving answer success event from other pages, business can handle by itself// Here is example code, ignore this eventreturn;}})
피드백