呼叫能力 (JS-SDK)
# 呼叫能力 (JS-SDK)
# 更新日志
版本号 | 时间 | 说明 |
---|---|---|
--- | --- | --- |
6.4.0 | 2024-01-30 | 初始版本。 |
--- | --- | --- |
# javascript-sdk插件引用地址
<script type="text/javascript" src="https://static.soboten.com/call-sdk/6.4.0/sobot-call-sdk.js"></script>
1
# 初始化
# ● 初始化插件
使用JavaScript SDK第一步需要创建实例
const agent = new SobotClient.agent()
1
第二步需要订阅需要的通话事件以及座席状态发生变化的相关事件(例1、例2 二选一即可,如两种方法同时采用,则均会收到事件推送)
例1:监听座席相关的所有事件
agent.on('EventAgentAll', function (msg) {
// 根据msg中的messageID进行各自的逻辑处理
switch(msg.messageID) {
case 'EventAgentConnectionChanged' :
// 座席被挤下线事件
// do something ...
break
case 'EventAgentReady' :
// 座席就绪事件
// do something ...
break
case 'EventAgentNotReady' :
// 座席置忙事件
// do something ...
break
default:
// do something ...
}
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
例2:监听所需的座席相关的事件(完整事件请参照呼叫能力消息格式文档)
// 进行链式调用
agent
.on('EventAgentConnectionChanged', function (msg) {
// 座席被挤下线事件
// do something ...
})
.on('EventAgentReady', function (msg) {
// 座席就绪事件
// do something ...
})
.on('EventAgentNotReady', function (msg) {
// 座席置忙事件
// do something ...
})
.on('EventDialing', function (dialingMsg) {
// dialingMsg -- 拨号事件
// do something ...
})
.on('EventRinging', function (ringingMsg) {
// ringingMsg -- 响铃事件
// do something ...
})
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
取消订阅事件方法
// 订阅事件后可以取消订阅事件
agent
.off('EventAgentConnectionChanged')
.off('EventAgentReady')
...
// agent.off方法提供两个参数 如: agent.off(eventName, functionName)
// eventName为您订阅的事件名称,functionName为您定义的执行函数名称,同一事件可以进行多次订阅以及独立取消,如果off方法只传递了eventName则会取消所有订阅函数,使用方法如下:
function test1 (msg) {
// 第一次订阅的座席就绪事件
// do something ...
}
function test2 (msg) {
// 第二次订阅的座席就绪事件
// do something ...
}
agent
.on('EventAgentReady', test1)
.on('EventAgentReady', test2)
// 取消订阅方式,如下:
// 单独取消test1的订阅
agent.off('EventAgentReady', test1)
// 单独取消test2的订阅
agent.off('EventAgentReady', test2)
// 或者取消所有座席就绪事件的订阅
agent.off('EventAgentReady')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
使用JavaScript SDK第三步需要初始化
agent.initAgent({
token: 'xxxxxxxxxxxx',
companyId: 'xxxxxxxxxxxxxx',
agent: "1005",
agentType: "0",
allowStorageListen: true,
businessTags: 'scc',
success: function (msg){
console.log('new Client success : ', msg)
},
error: function (msg){
console.log('new Client error : ', msg)
}
})
// 初始化成功会在success回调函数中返回msg,msg中status为success 参数见下表1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
表1 初始化请求参数说明
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
token | 登录鉴权 | string | 否 | 座席登录鉴权(对接token方式请参照智齿接口认证文档)需对接座席级授权接口(座席级token) |
companyId | 公司编码 | string | 否 | 公司编码 |
agent | 座席 | string | 否 | 座席工号 或 座席id。 |
agentType | 接口座席参数类别 | string | 是 | 0:座席工号;1:座席id;为空时默认为座席工号 |
allowStorageListen | 允许多标签外呼 | boolean | 是 | false:不开启;true:开启多标签外呼;为空时默认不开启 |
success | 成功回调函数 | function | 是 | 成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
DNRole说明
Unknown(0, ""),
Origination(1, "发起电话者")
Destination(2, "接电话者")
AddedBy(3, "加入会议者")
NewParty(4, "被加入会议中者")
DeletedBy(5, "踢出会议者")
DeletedParty(6, "退出会议者")
ObserveBy(7, "监听者")
TransferBy(8, "发起转接成功者")
ConsultBy(9, "发起咨询者")
BargeinBy(10, "发起强插者")
BargeinTo(11, "被强插者")
InterceptTo(12, "被抢接者")
TransferTo(13, "被转接者")
ObserveTo(14, "被监听者")
InterceptBy(15, "发起抢接者")
ConferenceBy(16, "")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 登录操作
# ● 签入
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 系统在本接口中获取最新的座席工号,如更换工号,请再重新签入后,更换的工号才生效。
- 从一个端调用签入接口会导致其他端断开连接(非座席离线);
- 支持座席服务端的登录状态=离线、在线等全部状态签入。但座席服务端工作状态=呼叫中、振铃中、通话中、保持中、整理中时,不允许签入。
示例:
agent.login(
{
agentState: '2',
phoneType: "webrtc",
bindExt: "1000",
bindMobile: '13333333333',
unbindExtOnLogout: false,
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
agentState | 登录状态 | string | 是 | 签入成功后的座席登录状态。 1:在线;2:勿扰。 为空时,默认勿扰。 |
phoneType | 接听方式 | string | 否 | 接口指定的接听方式签入成功后,会修改座席默认的接听方式。管理员重置座席接听方式权限也会改变座席默认的接听方式。 sip:SIP话机;pstn:手机;webrtc:网页。 为空时,系统取座席默认的接听方式。 |
bindExt | 绑定分机账号 | string | 否 | 接口指定的分机账号会改变座席设置中绑定的分机账号。 不同座席绑定的分机账号不可相同。数据权限为操作座席已绑定的分机加其他未绑定座席的分机。 |
bindMobile | 绑定电话号码 | string | 是 | 手机号码或固话号码。 接听方式为手机时,绑定电话号码非空,接口指定的绑定电话号码会改变座席设置中绑定的电话号码。 不同座席绑定的电话号码不可相同。 |
unbindExtOnLogout | 离线时解绑分机 | boolean | 是 | false:不解绑;true:离线后自动解绑。 |
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
agentState | 登录状态 | string | 签入成功后的座席登录状态。 1:在线;2:勿扰。 为空时,默认勿扰。 |
phoneType | 接听方式 | string | 接口指定的接听方式签入成功后,会修改座席默认的接听方式。管理员重置座席接听方式权限也会改变座席默认的接听方式。 sip:SIP话机;pstn:手机;webrtc:网页。 为空时,系统取座席默认的接听方式。 |
bindExt | 绑定分机账号 | string | 接口指定的分机账号会改变座席设置中绑定的分机账号。 为空时,系统取座席设置中绑定的分机账号。 |
bindMobile | 绑定电话号码 | string | 手机号码或固话号码。 接口指定的电话号码会改变座席设置中绑定的电话号码。 为空时,系统取座席设置中绑定的电话号码。 |
reasonCode | 置忙原因 | number | 置忙的原因。 2:勿扰;11:小休;12:小休(培训);13:小休(会议);14:小休(用餐);15:小休(活动);16:小休(自定义1);17:小休(自定义2);18:小休(自定义3)。 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorCode | 错误编码 | string | 错误编码 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 签出
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 座席工作状态为就绪中、置忙中、锁定中才可以。否则,不允许。
示例:
agent.logout(
{
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorCode | 错误编码 | string | 错误编码 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 置忙
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
示例:
agent.notReady(
{
reasonCode: 11,
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
reasonCode | 置忙原因 | number | 否 | 置忙后显示的登录状态。 2:勿扰;11:小休;12:小休(培训);13:小休(会议);14:小休(用餐);15:小休(活动);16:小休(自定义1);17:小休(自定义2);18:小休(自定义3)。 |
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorCode | 错误编码 | string | 错误编码 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 置闲
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
示例:
agent.ready(
{
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorCode | 错误编码 | string | 错误编码 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 座席重置离线
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 座席在任何登录状态、任何电话状态下都可以强制挂断座席电话并签出到离线状态;
- 可以用于座席端状态异常时,重置座席为离线。
示例:
agent.resetLogout(
{
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorCode | 错误编码 | string | 错误编码 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 查询座席可用的置忙原因
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 仅仅查询座席有权限的小休状态和自定义小休状态集合。
示例:
agent.queryStates(
{
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
states | 座席的登录状态列表 | object | 座席的登录状态列表。见下表1 |
表1 states登录状态列表
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
code | 编码 | string | 2-勿扰;11:小休;12-18自定义小休。 |
name | 名称 | string | 状态名称。 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
message | 失败原因 | string | 失败原因 |
# ● 查询座席可用的接听方式
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 查询座席有权限的接听方式集合,并返回其中的默认接听方式(管理工作台中,设置UI修改座席的接听方式权限,会导致座席默认的接听方式被重置)。
示例:
agent.queryPhoneType(
{
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
agentUUID | 座席ID | string | 座席ID |
agentID | 座席工号 | string | 座席工号 |
agentName | 座席名称 | string | 座席名称 |
ext | 绑定的分机账号 | string | 绑定的分机账号 |
phone | 绑定电话号码 | string | 绑定电话号码 |
phoneTypes | 接听方式列表 | object | 接听方式集合。见下表1 |
表1 phoneTypes接听方式列表
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
phoneType | 接听方式 | string | sip:SIP话机;pstn:手机;webrtc:网页。 |
default | 集合中默认值接听方式 | boolean | 集合中只有1条数据为默认数据。 true:默认接听方式;false:非默认接听方式。 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 查询座席可用的分机
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
示例:
agent.queryUnusedExts(
{
currPage: 1,
pageSize: 50,
ext: '0001',
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
ext | 分机号(用于模糊查询) | string | 是 | 默认:空 |
currPage | 页码 | number | 是 | 默认: 1 |
pageSize | 分页条数 | number | 是 | 默认: 50 |
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
currPage | 页码 | number | 默认: 1 |
pageSize | 分页条数 | number | 默认: 50 |
total | 总条数 | number | -- |
exts | 分机账号信息 | object | 分机账号的数组(见下表1) |
表1 exts说明
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
ext | 分机账号 | string | 分机账号 |
langCodeTxt | 语音编码 | string | OPUS:Opus;PCMA:G.711 alaw;PCMU :G.711 ulaw。 分机最后设置的语音编码(网页接听方式下有效) |
default | 集合中的默认值 | boolean | 集合中只有1条数据为默认数据。 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 查询座席的签入信息
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
示例:
agent.queryAgentLoginInfo(
{
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
agentUuid | 座席ID | string | 座席ID |
agentID | 座席工号 | string | 座席工号 |
agentName | 座席名称 | string | 座席名称 |
ext | 绑定的分机账号 | string | 绑定的分机账号 |
phone | 绑定电话号码 | string | 绑定电话号码 |
phoneTypes | 接听方式列表 | object | 接听方式集合。见下表1 |
表1 phoneTypes接听方式列表
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
phoneType | 接听方式 | string | sip:SIP话机;pstn:手机;webrtc:网页。 |
defaultPhoneType | 集合中默认值接听方式 | boolean | 集合中只有1条数据为默认数据。 true:默认接听方式;false:非默认接听方式。 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 查询座席的可签入数据
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
示例:
agent.queryAgentCanJoinedInfo(
{
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
id | 座席ID | string | 座席ID |
agentID | 座席工号 | string | 座席工号 |
agentName | 座席名称 | string | 座席名称 |
loginStatusCode | 登录状态编码 | string | 最近签入的选项,可空。 |
loginStatusName | 登录状态名称 | string | 最近签入的选项,可空。 |
currentPhoneType | 接听方式 | string | 最近签入的选项,可空。 |
ext | 绑定的分机账号 | string | 绑定的分机账号 |
phone | 绑定电话号码 | string | 绑定电话号码 |
phoneTypes | 接听方式列表 | object | 接听方式集合。见下表1 |
loginStatus | 登录状态列表 | object | 登录状态列表。见下表2 |
表1 phoneTypes接听方式列表
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
phoneType | 接听方式 | string | sip:SIP话机;pstn:手机;webrtc:网页。 |
表2 loginStatus 登录状态列表
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
code | 编码 | string | 编码 |
name | 名称 | string | 名称 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorMessage | 失败原因 | string | 失败原因 |
# 呼叫操作
# ● 外呼
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
示例:
agent.makeCall(
{
otherDN: "133****3333",
privacyNumber: "XFHAOWHFEFLASJLKWJLD",
ANI: "01066666666",
agentANI: "01088888888",
outboundRouteType: "1",
outboundPlanCode: "xxxxxxxxxxxxx",
}
)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
otherDN | 客户号码 | string | 否 | UI显示的客户号码。例如:135XXXXX5678;13512345678; |
privacyNumber | 客户号码加密 | string | 是 | 支持加密号码外呼;例如:XFHAOWHFEFLASJLKWJLD; |
ANI | 指定客户侧的外显号码 | string | 是 | 企业数据权限范围内的有效号码,可不在座席设置数据权限范围内。 非空时,系统使用该号码外呼客户。座席外呼路由中设置的数据都失效。 指定客户侧的外显号码和指定客户侧的外显号码方案编码都为空时,系统使用<外呼路由>中座席设置的规则和号码外呼。 |
outboundPlanCode | 指定客户侧的外显号码方案编码 | string | 是 | 企业数据权限范围内的有效动态外显号码方案,可不在座席设置数据权限范围内。 指定客户侧的外显号码非空时,指定客户侧的外显号码方案编码必须为空。 非空时,系统使用该方案查询号码外呼。座席外呼路由中设置的数据都失效。 指定客户侧的外显号码和指定客户侧的外显号码方案编码都为空时,系统使用<外呼路由>中座席设置的规则和号码外呼。 |
agentANI | 指定座席侧的外显号码 | string | 是 | 座席手机接听场景下呼叫座席侧的外显号码。企业数据权限范围内的有效号码。 非空时,系统使用该号码呼叫座席。 为空时,系统使用本次外呼客户时的外显号码呼叫座席手机。 |
# ● 拒接
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
示例:
agent.rejectCall()
1
# ● 接听
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
示例:
agent.answer()
1
# ● 挂机
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
示例:
agent.hangup()
1
# ● 保持
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 暂时挂起座席和客户的通话,保持后,客户会听到保持音乐,座席侧静音。
- 本操作支持SIP话机;网页;手机;3种接听方式。
示例:
agent.holdCall()
1
# ● 取消保持
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 恢复挂起的座席和客户的通话,取消保持后,客户和座席恢复正常通话。
示例:
agent.retrieveCall()
1
# ● 静音
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 关闭操作座席的麦克风,使其他人都无法听到当前座席端的声音。例如:座席A咨询座席B,座席A和座席B都可以操作静音关闭自己的麦克风。
- 监听发起者不支持该操作(发起者的麦克风在监听中,始终是关闭状态)。
- 本操作支持SIP话机;网页;手机;3种接听方式。
示例:
agent.muteCall()
1
# ● 取消静音
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 恢复座席侧的麦克风,使其他人和座席恢复正常通话。
示例:
agent.unmute()
1
# ● 转移
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 将客户直接呼叫转移到其他座席/电话号码/分机号,操作成功后挂断当前座席通话。如果中继号码只有1路并发,且中继号码被呼入来电占用1路,则无法支持该号码进行转移到第三方电话号码操作(转移操作的呼叫会失败)。
示例:
agent.singleTransfer(
{
targetType: "0",
target: "1002",
}
)
1
2
3
4
5
6
2
3
4
5
6
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
targetType | 类型 | string | 否 | 0:座席;1:第三方号码;2:分机账号; |
target | 目标 | string | 否 | 座席工号 或 座席id,根据<接口座席参数类别>定义。 电话号码。 分机账号。 |
# ● 咨询
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 邀请第三者(座席/第三方号码)加入当前通话之前,先咨询第三者,询问其是否愿意加入通话。
- 如果中继号码只有1路并发,且中继号码被呼入来电占用1路,则无法支持该号码进行咨询第三方电话号码操作(咨询操作的呼叫会失败)。
示例:
agent.initiateConsult(
{
targetType: "0",
target: "1002",
}
)
1
2
3
4
5
6
2
3
4
5
6
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
targetType | 类型 | string | 否 | 0:座席;1:第三方号码;2:分机账号; |
target | 目标 | string | 否 | 座席工号 或 座席id,根据<接口座席参数类别>定义。 电话号码。 分机账号。 |
# ● 咨询取消
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 被咨询方(第三者)接通之前,发起者可以取消咨询。
示例:
agent.cancelConsult()
1
# ● 咨询后取回
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 结束第三者(座席/第三方号码)的通话,恢复前序座席和客户的通话。包含“咨询三方后取回“的场景也使用该接口。
示例:
agent.retrieveConsult()
1
# ● 咨询后转移
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 咨询第三者(座席/第三方号码)通话之后,将该通话转移给第三者,同时结束前序座席的通话。包含”咨询三方后转移“的场景也使用该接口。
示例:
agent.consultTransfer()
1
# ● 咨询后三方
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 咨询第三者(座席/第三方号码)通话后,第三者同意加入三人通话,此时前序座席把第三者拉入到当前通话,形成三方一起通话。
示例:
agent.consultConference()
1
# ● 延长整理时长
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 座席电话状态为整理中时,可以延长整理时长;30-900秒。
示例:
agent.delayACW(
{
delayTime: 60,
}
)
1
2
3
4
5
2
3
4
5
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
delayTime | 延长时间 | number | 否 | 正整数,30-900秒 |
# ● 结束整理
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 座席电话状态为整理中时,可以提前结束整理状态。
示例:
agent.completeACW()
1
# ● 结束整理并置忙
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 座席电话状态为整理中时,可以提前结束整理状态并且进入勿扰状态。
示例:
agent.completeACWToBusy()
1
# ● 发送按键
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
示例:
agent.sendDtmf(
{
dtmfDigits: '801#',
}
)
1
2
3
4
5
2
3
4
5
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
dtmfDigits | 按键集合 | string | 否 | 最大24位。字符包含1-9、*、#。例如:801#。 |
# 辅助操作
# ● 查询座席的外呼路由规则
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 座席签入后,可以查询座席《外呼路由》中设置的外呼路由规则。
示例:
agent.queryRoutes(
{
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
agentUUID | 座席ID | string | 座席ID |
agentID | 座席工号 | string | 座席工号 |
agentName | 座席名称 | string | 座席名称 |
explicitRule | 外显规则数组 | object | 外显规则集合。见下表1 |
explicitSchema | 动态外显方案数组 | object | 动态外显方案集合。见下表2 |
explicitNumbers | 外显号码数组 | object | 外显号码集合。见下表3 |
表1 explicitRule 外显规则数组说明
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
code | 编码 | string | 1:企业号码池随机匹配;2:动态外显号码方案匹配;3:座席号码池指定。 |
name | 名称 | string | 名称。 |
hasSet | 是否默认 | boolean | 集合中只有1条数据为默认数据。 true:默认外显规则;false:非默认外显规则。 |
表2 explicitSchema 动态外显方案数组说明
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
code | 编码 | string | 方案id |
planName | 名称 | string | 名称。 |
hasSet | 是否默认 | boolean | 集合中只有1条数据为默认数据。 true:默认方案;false:非默认方案。 |
表3 explicitNumbers 外显号码数组说明
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
number | 外显号码 | string | 中继号码。 |
nickName | 号码别名 | string | 中继号码的别名。 |
hasSet | 是否默认 | boolean | 集合中只有1条数据为默认数据。 true:默认外显号码;false:非默认外显号码。 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 修改座席的外呼路由规则
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 座席电话空闲的时候,可以切换座席最后使用的外显规则。
示例:
agent.setRoute(
{
explicitRule: "1",
explicitCode: "xxxxxxxx",
explicitNumber: "13333333333",
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
explicitRule | 外显规则 | string | 否 | 需在<外呼路由>中座席的外显规则数据权限范围内。 1:企业号码池随机匹配;2:动态外显号码方案匹配;3:座席号码池指定。 |
explicitCode | 动态外显方案编码 | string | 是 | 需在<外呼路由>中座席的动态外显方案数据权限范围内。 当外显规则=动态外显号码方案匹配时,非空。 |
explicitNumber | 外显号码 | string | 是 | 需在<外呼路由>中座席的个人号码池数据权限范围内。 当外显规则=座席号码池指定时,非空。 |
# 返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
agentUUID | 座席ID | string | 座席ID |
agentID | 座席工号 | string | 座席工号 |
agentName | 座席名称 | string | 座席名称 |
explicitRule | 外显规则数组 | object | 外显规则集合。见下表1 |
explicitSchema | 动态外显方案数组 | object | 动态外显方案集合。见下表2 |
explicitNumbers | 外显号码数组 | object | 外显号码集合。见下表3 |
表1 explicitRule 外显规则数组说明
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
code | 编码 | string | 1:企业号码池随机匹配;2:动态外显号码方案匹配;3:座席号码池指定。 |
name | 名称 | string | 名称。 |
hasSet | 是否默认 | boolean | 集合中只有1条数据为默认数据。 true:默认外显规则;false:非默认外显规则。 |
表2 explicitSchema 动态外显方案数组说明
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
code | 编码 | string | 方案id |
planName | 名称 | string | 名称。 |
hasSet | 是否默认 | boolean | 集合中只有1条数据为默认数据。 true:默认方案;false:非默认方案。 |
表3 explicitNumbers 外显号码数组说明
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
number | 外显号码 | string | 中继号码。 |
nickName | 号码别名 | string | 中继号码的别名。 |
hasSet | 是否默认 | boolean | 集合中只有1条数据为默认数据。 true:默认外显号码;false:非默认外显号码。 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 查询企业的座席列表
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
示例:
agent.queryAgents(
{
agentName: '张三',
agentState: 1,
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
agentName | 座席姓名 | string | 是 | 精确搜索 |
agentState | 座席工作状态 | number | 是 | -1:全部;1:就绪中;为空时,默认就绪中。 |
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
agents | 座席列表 | object | 座席的数组(见下表1) |
表1 agents参数说明
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
agentUUID | 座席ID | string | 座席ID |
agentID | 座席工号 | string | 座席工号 |
agentName | 座席名称 | string | 座席名称 |
ext | 座席绑定的分机账号 | string | 座席绑定的分机账号 |
agentState | 座席登录状态 | number | 座席当前的状态(0:离线;1-空闲/就绪;2-勿扰) |
workStatus | 座席工作状态 | number | 1:就绪中 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 修改分机的属性
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
示例:
agent.setLangCode(
{
ext: '1006',
langCodeTxt: 'G.711 alaw',
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
ext | 分机号 | string | 否 | -- |
langCodeTxt | 语音编码 | string | 否 | OPUS:Opus;PCMA:G.711 alaw;PCMU :G.711 ulaw。 修改后的语音编码(网页接听方式下有效) |
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorMessage | 失败原因 | string | 失败原因 |
# 班长操作
# ● 强制签出
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 操作后该座席会被强行签出。
示例:
agent.forceLogout(
{
targetAgentID: '1001',
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
targetAgentID | 目标座席 | string | 否 | 座席工号 或 座席id。 |
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorCode | 错误编码 | string | 错误编码 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 强制置忙
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 操作后该座席会被强行变为忙碌。
示例:
agent.forceBusy(
{
targetAgentID: '1001',
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
targetAgentID | 目标座席 | string | 否 | 座席工号 或 座席id。 |
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorCode | 错误编码 | string | 错误编码 |
errorMessage | 失败原因 | string | 失败原因 |
# ● 强制置闲
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 操作后该座席会被强行变为就绪。
示例:
agent.forceReady(
{
targetAgentID: '1001',
success: function(event) {
// do something ...
},
error: function(cause) {
// Error, can't go on...
},
}
)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 请求参数
属性 | 名称 | 类型 | 可空 | 说明 |
---|---|---|---|---|
targetAgentID | 目标座席 | string | 否 | 座席工号 或 座席id。 |
success | 成功回调函数 | function | 是 | 请求成功后的回调函数。 |
error | 失败回调函数 | function | 是 | 请求失败后的回调函数。 |
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | success:成功 |
# 失败回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
status | 请求状态 | string | error:失败 |
errorCode | 错误编码 | string | 错误编码 |
errorMessage | 失败原因 | string | 失败原因 |
# 扩展功能
# ● 查询通信服务网络延时
- 本接口的返回值会持续增加属性,请使用正确的兼容方式编码,保障返回值属性增加时,调用端的代码不会抛错!
- 仅限接听方式为《网页电话》时,查询座席端到通信服务端(CTI)的网络延时。
示例:
agent.on('EventJanusLatency', function (msg) {
// do something
})
1
2
3
2
3
# 成功回调函数返回值
属性 | 名称 | 类型 | 说明 |
---|---|---|---|
ping | 延时时长 | number | 单位:毫秒。 |
jitter | 抖动 | number | 网络抖动。单位:毫秒。 |
loss | 丢包 | string | 网络丢包率。 |
quality | 语音通信网络质量分类 | string | e:很好(流畅); d:稍差(欠流畅,有点杂音); c:还可以(听不太清楚,有延迟); b:勉强(听不清楚,延迟较大,需要重复多遍交流); a:极差(听不懂;延迟大,交流不通畅); |
上次更新: 2024/4/2 20:13:22