@zhaokun/cti 1.4.6 → 1.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # 呼叫中心 ZHAOKUN-CTI-SDK
2
2
 
3
+ #### 预览地址
4
+
5
+ [在线示例](https://unpkg.com/@zhaokun/cti/latest/index.html)
6
+
3
7
  ### 安装
4
8
 
5
9
  #### Script 标签引入
@@ -8,6 +12,9 @@
8
12
  <script src="./zhaokun.cti.min.js"></script>
9
13
  ```
10
14
 
15
+ [zhaokun.cti.min.js 下载](https://unpkg.com/@zhaokun/cti)
16
+ [denoiser 文件下载](https://unpkg.com/@zhaokun/cti/latest/denoiser.wasm)
17
+
11
18
  #### NPM 安装
12
19
 
13
20
  ```
@@ -25,12 +32,12 @@ function init() {
25
32
  content = new zhaokunCTI({
26
33
  webrtc: true, // 必填 是否是webrtc
27
34
  token: "", // 必填 接口获取的token
28
- agent: "", // 必填 坐席工号
29
- account: "", // 必填 分机号
30
- socket: "", // 必填 socket连接地址
35
+ agent: "", // 必填 坐席工号 四位分机号 如1001
36
+ account: "", // 必填 分机号 格式 C{企业id}{agent} 如C10001001
37
+ socket: "", // 必填 socket连接地址 例如 ws(s)://example.com
31
38
  env: "", // debug 打印日志
32
39
  aiDenoise: false, // ai 降噪开关
33
- aiDenoisePath: "https://www.example.com/denoiser.wasm", // 可访问的文件地址,文件在https://www.npmjs.com/package/@zhaokun/cti?activeTab=code latest文件夹里面的denoiser.wasm
40
+ aiDenoisePath: "https://www.example.com/denoiser.wasm", // 网站路径地址
34
41
  })
35
42
 
36
43
  content.onmessage(function (obj) {
@@ -41,8 +48,9 @@ function init() {
41
48
  })
42
49
 
43
50
  // socket 连接成功
44
- content.onopen(function () {
51
+ content.onopen(function (obj) {
45
52
  console.log("onopen")
53
+ // obj.code 200 连接成功 201 断网重连连接成功 202 JsSIP重连成功
46
54
  })
47
55
 
48
56
  // 获取在线时间
@@ -60,7 +68,7 @@ function init() {
60
68
  content.onpermission(function (permission) {
61
69
  // console.log("onpermission", permission)
62
70
  {
63
- "microphone": true // 麦克风是否开启 true false
71
+ "microphone": true // 麦克风是否开启 true false
64
72
  }
65
73
  })
66
74
 
@@ -70,7 +78,8 @@ function init() {
70
78
  })
71
79
 
72
80
  // socket 连接断开
73
- content.onclose(function () {
81
+ content.onclose(function (obj) {
82
+ // obj.code 200 正常断开,201 网络异常断开,202 JsSIP重连 203 WebRTC注册失败断开
74
83
  console.log("onclose")
75
84
  })
76
85
 
@@ -165,7 +174,7 @@ content.agent.transferQueue("")
165
174
  #### 询问开始
166
175
 
167
176
  ```
168
- content.agent.threeWayStart({
177
+ content.agent.consultStart({
169
178
  customer: "", // 手机号或分机号
170
179
  relayNumber: "", // 主叫号码(中继号码)
171
180
  })
@@ -295,91 +304,146 @@ content.tool.getDefaultMedia()
295
304
 
296
305
  #### 中继号码消息(响应)
297
306
 
298
- | 参数名称 | 类型 | 描述 |
299
- | ------------- | ------ | --------- |
300
- | type | string | RelayList |
301
- | data | object | |
302
- | └ relay400 | string | 400号码 |
303
- | └ relayName | string | 中继名称 |
304
- | └ relayNumber | string | 中继号码 |
307
+ | 参数名称 | 类型 | 必返回 | 描述 |
308
+ | ------------- | ------ | ------ | --------- |
309
+ | type | string | 是 | RelayList |
310
+ | data | object | 是 | |
311
+ | └ relay400 | string | 否 | 400号码 |
312
+ | └ relayName | string | 是 | 中继名称 |
313
+ | └ relayNumber | string | 是 | 中继号码 |
305
314
 
306
315
  #### 队列列表消息(响应)
307
316
 
308
- | 参数名称 | 类型 | 描述 |
309
- | -------- | ------ | --------- |
310
- | type | string | QueueList |
311
- | data | object | |
312
- | └ id | string | 队列ID |
313
- | └ title | string | 队列名称 |
317
+ | 参数名称 | 类型 | 必返回 | 描述 |
318
+ | -------- | ------ | ------ | --------- |
319
+ | type | string | 是 | QueueList |
320
+ | data | object | 是 | |
321
+ | └ id | string | 是 | 队列ID |
322
+ | └ title | string | 是 | 队列名称 |
314
323
 
315
324
  #### 号码属地消息(响应)
316
325
 
317
- | 参数名称 | 类型 | 描述 |
318
- | ---------- | ------ | ------------ |
319
- | type | string | RegionInfo |
320
- | data | object | |
321
- | └ channel | string | 运营商 |
322
- | └ zone | string | 区号 |
323
- | └ code | string | 行政区域代码 |
324
- | └ province | string | 省 |
325
- | └ city | string | 市 |
326
+ | 参数名称 | 类型 | 必返回 | 描述 |
327
+ | ---------- | ------ | ------ | ------------ |
328
+ | type | string | 是 | RegionInfo |
329
+ | data | object | 是 | |
330
+ | └ channel | string | 是 | 运营商 |
331
+ | └ zone | string | 是 | 区号 |
332
+ | └ code | string | 是 | 行政区域代码 |
333
+ | └ province | string | 是 | 省 |
334
+ | └ city | string | 是 | 市 |
335
+
336
+ > 注:号码属地仅支持11位手机号码
326
337
 
327
338
  #### 账号签出(响应)
328
339
 
329
- | 参数名称 | 类型 | 描述 |
330
- | -------- | ------ | ------ |
331
- | type | string | Logout |
332
- | data | object | |
340
+ | 参数名称 | 类型 | 必返回 | 描述 |
341
+ | -------- | ------ | ------ | ------ |
342
+ | type | string | 是 | Logout |
343
+ | data | object | 否 | |
333
344
 
334
345
  #### 坐席状态消息(响应)
335
346
 
336
- | 参数名称 | 类型 | 描述 |
337
- | --------- | ------- | ------------------------------------------- |
338
- | type | string | Status |
339
- | data | object | |
340
- | └ uid | integer | 账号ID |
341
- | └ account | string | 话机账号 |
342
- | └ status | integer | 状态(1空闲2忙碌3小休4振铃5通话6保持7后处理) |
343
- | └ time | integer | 状态时间(10位时间戳) |
347
+ | 参数名称 | 类型 | 必返回 | 描述 |
348
+ | --------- | ------- | ------ | ------------------------------------------- |
349
+ | type | string | 是 | Status |
350
+ | data | object | 是 | |
351
+ | └ uid | integer | 是 | 账号ID |
352
+ | └ account | string | 是 | 话机账号 |
353
+ | └ status | integer | 是 | 状态(1空闲2忙碌3小休4振铃5通话6保持7后处理) |
354
+ | └ time | integer | 是 | 状态时间(10位时间戳) |
344
355
 
345
356
  #### 电话振铃(响应)
346
357
 
347
- | 参数名称 | 类型 | 描述 |
348
- | -------------- | ------- | -------------------- |
349
- | type | string | Ring |
350
- | data | object | |
351
- | └ id | string | 电话UUID |
352
- | └ uid | integer | 账号ID |
353
- | └ type | integer | 电话类型(1呼出0呼入) |
354
- | └ customer | string | 客户号码 |
355
- | └ relay400 | string | relay400 |
356
- | └ transferType | string | 转接类型 |
357
- | └ transferFrom | string | 转接来源 |
358
- | └ custom | string | 业务编号 |
358
+ | 参数名称 | 类型 | 必返回 | 描述 |
359
+ | -------------- | ------- | ------ | ---------------------------------------- |
360
+ | type | string | 是 | Ring |
361
+ | data | object || |
362
+ | └ id | string | 是 | 电话UUID |
363
+ | └ uid | integer | 是 | 账号ID |
364
+ | └ type | integer | 是 | 电话类型(1呼出0呼入) |
365
+ | └ customer | string | 是 | 客户号码 |
366
+ | └ relay400 | string | 否 | relay400 |
367
+ | └ transferType | string | 否 | 转接类型(来电是转接、三方、询问该值存在) |
368
+ | └ transferFrom | string | 否 | 转接来源 |
369
+ | └ custom | string | 否 | 业务编号 |
370
+
371
+ #### 挂机(响应)
372
+
373
+ | 参数名称 | 类型 | 必返回 | 描述 |
374
+ | -------- | ------ | ------ | -------- |
375
+ | type | string | 是 | Hangup |
376
+ | data | string | | |
377
+ | └ cause | string | 是 | 挂机原因 |
378
+
379
+ > 挂机原因:
380
+ > | 类型 | 中文 |
381
+ > | ---- | ---- |
382
+ > | NORMAL_CLEARING | 正常挂机 |
383
+ > | ORIGINATOR_CANCEL | 振铃取消 |
384
+ > | CALL_REJECTED | 拒接 |
385
+ > | NO_ANSWER | 无人接听 |
386
+ > | USER_BUSY | 用户忙 |
387
+ > | MEDIA_TIMEOUT | 媒体超时 |
388
+ > | UNALLOCATED_NUMBER | 号码错误 |
359
389
 
360
390
  #### 三方/询问(响应)
361
391
 
362
- | 参数名称 | 类型 | 描述 |
363
- | -------- | ------ | ------------------------------------------------- |
364
- | type | string | TransferResult |
365
- | data | object | |
366
- | └ type | string | 类型(threeway三方consult询问) |
367
- | └ result | string | 结果(start开始 cancel取消 transfer转接answer应答) |
392
+ | 参数名称 | 类型 | 必返回 | 描述 |
393
+ | -------- | ------ | ------ | ------------------------------------------------- |
394
+ | type | string | 是 | TransferResult |
395
+ | data | object | 是 | |
396
+ | └ type | string | 是 | 类型(threeway三方consult询问) |
397
+ | └ result | string | 是 | 结果(start开始 cancel取消 transfer转接answer应答) |
398
+
399
+ > 注:
400
+ >
401
+ > - start:表示当前询问或者三方请求发起成功
402
+ > - answer:表示被询问或者三方的人电话已经接通
403
+ > - cancel:表示被询问或三方的人电话挂机
404
+ > - transfer:表示发起询问的人挂机或发起人执行询问转
368
405
 
369
406
  #### 状态恢复(响应)
370
407
 
371
- | 参数名称 | 类型 | 描述 |
372
- | ---------- | ------- | -------------------- |
373
- | type | string | Resume |
374
- | data | object | |
375
- | └ id | string | 电话UUID |
376
- | └ uid | integer | 账号ID |
377
- | └ type | integer | 电话类型(1呼出0呼入) |
378
- | └ customer | string | 客户号码 |
408
+ | 参数名称 | 类型 | 必返回 | 描述 |
409
+ | ---------- | ------- | ------ | -------------------- |
410
+ | type | string | 是 | Resume |
411
+ | data | object | 是 | |
412
+ | └ id | string | 是 | 电话UUID |
413
+ | └ uid | integer | 是 | 账号ID |
414
+ | └ type | integer | 是 | 电话类型(1呼出0呼入) |
415
+ | └ customer | string | 是 | 客户号码 |
416
+
417
+ > 注:该场景是客户端在通话或振铃过程中,websocket连接断开后重新连接登录成功,服务器检测电话在通话或振铃中,会主动推送该事件。
379
418
 
380
419
  #### 通用错误消息(响应)
381
420
 
382
- | 参数名称 | 类型 | 描述 |
383
- | -------- | ------ | -------- |
384
- | type | string | Error |
385
- | data | string | 错误消息 |
421
+ | 参数名称 | 类型 | 必返回 | 描述 |
422
+ | -------- | ------- | ------ | -------- |
423
+ | type | string | | Error |
424
+ | code | integer | 是 | 错误编码 |
425
+ | data | string | 是 | 错误消息 |
426
+
427
+ #### 报错编码
428
+
429
+ | 报错编码code | 报错消息 | 报错级别 | 连接状态 | 描述 |
430
+ | ------------ | ----------------------------- | -------- | -------- | ---------------------------------------------------------------------------------- |
431
+ | 500 | 服务运行故障,请联系IT管理员 | 高 | 终止 | 系统级异常,上报厂商 |
432
+ | 11000 | token验证未通过 | 高 | 终止 | 需要重新获取Token再次连接 |
433
+ | 11001 | 无可用机器 | 高 | 终止 | 系统级异常,上报厂商 |
434
+ | 11010 | 消息格式不正确 | 高 | 正常 | 消息格式不符合系统规范 |
435
+ | 11011 | 请求已提交 | 中 | 正常 | 同一操作,出现多次请求被退回,比如:连续发送两次呼叫指令 |
436
+ | 11012 | 表单验证不正确 | 中 | 正常 | 表单请求数据验证未通过,建议排除客户端程序或数据 |
437
+ | 11013 | 系统配置不存在 | 高 | 终止 | 系统基础配置不存在,基本不会出现可以忽略 |
438
+ | 11030 | 坐席信息不存在 | 中 | 正常 | 登录过程中,使用了系统不存在账户 |
439
+ | 11031 | 坐席状态不允许操作 | 低 | 正常 | 非法操作,比如:坐席在通话中,客户端发送呼叫指令 |
440
+ | 11033 | 坐席手机号码不存在 | 低 | 正常 | 坐席账号未绑定手机号码,在使用手机接听请求中被退回 |
441
+ | 11034 | 坐席账号已登录 | 中 | 正常 | 坐席已经登录后,再次收到登录请求 |
442
+ | 11035 | 坐席已开启手机接听 | 低 | 正常 | 坐席已经是手机接听模式,再次请求开启手机接听 |
443
+ | 11036 | 坐席已开启手机接听,不允许呼叫 | 低 | 正常 | 坐席使用手机接听过程中,只能接电话,无法外呼 |
444
+ | 11037 | 被叫坐席状态不允许呼叫 | 低 | 正常 | 在转接、三方、询问操作中,被叫坐席非空闲状态不允许呼叫 |
445
+ | 11040 | 分机账号未注册 | 高 | 正常 | 坐席登录过程中,系统检测话机未注册,无法登录系统 |
446
+ | 11041 | 分机账号不存在 | 高 | 终止 | 登录请求需要填写坐席账号和分机号码,客户端使用了不存在的账号 |
447
+ | 11050 | 通话不存在 | 低 | 正常 | 坐席在非通话或振铃过程中,请求了需要通话数据的操作,比如:挂机、DTMF、评价、转接等 |
448
+ | 11051 | 通话路由不存在 | 高 | 正常 | 系统级异常,上报厂商 |
449
+ | 11053 | 黑名单号码 | 低 | 正常 | 被叫号码命中系统黑名单 |