@94ai/softphone 4.0.1 → 5.0.2

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.
@@ -370,13 +370,34 @@ document.addEventListener('DOMContentLoaded', async (event) => {
370
370
  getMedia
371
371
  } = softphone // 👈 sdk
372
372
 
373
+
374
+ // const userAgentManager = UserAgentFactory.getUserAgentManager({
375
+ // agentId: 1,
376
+
377
+ // sgOpen: '1',
378
+ // // sg:'1'
379
+ // openBaseUrl:'1',
380
+
381
+ // sign,
382
+ // timestamp,
383
+ // appKey: "910adb209ffe2080",
384
+ // signoverdued(){
385
+ // return get94Aisign().then((res)=> {
386
+ // return res.data;
387
+ // })
388
+ // },
389
+
390
+ // openXhrIntercept(xhr){ // 定制openapi请求头
391
+ // xhr.setRequestHeader('language','en-US');
392
+ // }
393
+ // })
394
+
373
395
  /** 方式一:appKey + appSecret + agentTag 获取软电话链接代理实例 */
374
396
  // 以下信息采用九四系统的坐席信息接入外呼服务器实现软电话功能
375
397
  // agentTag: 'agent1111', // 测试线 坐席维度定位 或用agentId
376
398
  // appKey: 'ed96615038ffe394', // 测试线 企业维度定位
377
399
  // appSecret: '9fb4aac7b1dbfbb21696bcd7a30cb382', // 测试线 企业维度定位
378
400
 
379
-
380
401
  /**
381
402
  * 获取软电话代理实例
382
403
  */
@@ -461,6 +482,7 @@ document.addEventListener('DOMContentLoaded', async (event) => {
461
482
  throw new Error(angentInfo)
462
483
  }
463
484
 
485
+
464
486
  /**
465
487
  * 签入
466
488
  */
@@ -308,12 +308,11 @@ document.addEventListener('DOMContentLoaded', async (event) => {
308
308
  // appSecret: '9fb4aac7b1dbfbb21696bcd7a30cb382', // 测试线 企业维度定位
309
309
 
310
310
  /**
311
- * 获取软电话代理实例
312
311
  * 1. 如果是海外环境新增这三个参数
313
312
  * sgOpen: '1',
314
- * sgBase: '1',
313
+ * sg: '1',
315
314
  * openBaseUrl: '1',
316
- * 2. 如果通过sign初始化,记得注册过期回调刷新sign
315
+ * 2. 为了appSecret安全性,通过sign初始化,记得注册过期回调刷新sign
317
316
  * sign: 'xxx', // 代替appSecret
318
317
  * timestamp: 'xxx',
319
318
  * async signOverdued() {
@@ -353,7 +352,7 @@ document.addEventListener('DOMContentLoaded', async (event) => {
353
352
 
354
353
  /**
355
354
  * 获取token & 实时查到tag等自定义注入字段对接步骤:(海外:gateway.sg.94ai.com, 国内:gateway.94ai.com)
356
- * 1. sdk获取来电相关id
355
+ * 1. sdk来电获取来电相关id
357
356
  * onInvite: (invitation: Invitation) => {
358
357
  * // invitation.incomingInviteRequest.message.headers['X-Numberid']?.[0].raw
359
358
  * // invitation.incomingInviteRequest.message.headers['X-Taskid']?.[0].raw
@@ -444,7 +443,7 @@ document.addEventListener('DOMContentLoaded', async (event) => {
444
443
 
445
444
  /** 方式二:extensionNumber + extPassword + wsProtocol + wsRegisterAddress 获取软电话链接代理实例 */
446
445
  // 即直接通过【分机号】和【分机密码】以及【外呼服务器地址】实现软电话的直接签入
447
- // 测试环境不能访问openAPI,可以采用决策系统内部接口获取分机信息接入外呼服务器
446
+ // 九四的同学:测试环境不能访问openAPI,可以采用决策系统内部接口获取分机信息接入外呼服务器
448
447
  // 生产环境如果采用分机维度的分机信息可以通过agentTag调用openapi获取
449
448
  // const extensionNumber = '2839' // 测试线 分机账号
450
449
  // const extPassword = 'zjh13542240708' // 测试线 分机密码
@@ -460,6 +459,13 @@ document.addEventListener('DOMContentLoaded', async (event) => {
460
459
  // const sipServerHost = `sip:${extensionNumber}@${wsRegisterAddress}` // fs地址
461
460
  // const wsAddress = `${wsProtocol}://${wsRegisterAddress}` // socket地址
462
461
 
462
+ // const extensionNumber = '1001' // 生产线 分机账号
463
+ // const extPassword = '946666' // 生产线 分机密码
464
+ // const wsProtocol = 'ws' // 生产线 外呼服务器地址协议
465
+ // const wsRegisterAddress = '192.168.0.92:5066' // 生产线 外呼服务器地址
466
+ // const sipServerHost = `sip:${extensionNumber}@${wsRegisterAddress}` // fs地址
467
+ // const wsAddress = `${wsProtocol}://${wsRegisterAddress}` // socket地址
468
+ //
463
469
  // const userAgentManager = UserAgentFactory.getUserAgentManager({
464
470
  // authorizationPassword: extPassword, // 分机密码
465
471
  // authorizationUsername: extensionNumber, // 分机账号
@@ -468,21 +474,24 @@ document.addEventListener('DOMContentLoaded', async (event) => {
468
474
  // server: wsAddress // socket地址
469
475
  // },
470
476
  // logLevel: 'error', // 日志等级,默认error
471
- // viaHost, // fp.umd.min.js生成的唯一值,用来配查呼叫问题,可以不传,内部会自动生成
477
+ // // viaHost, // fp.umd.min.js生成的唯一值,用来配查呼叫问题,可以不传,内部会自动生成
472
478
  // contactName: extensionNumber, // sip协议要求,同分机账号即可,注意类型为string, 不传默认同分机账号
473
- // refreshSpeekVolumn(value) { // 当来电接通时,实时查看坐席说话的音量实际传送到给对方的音量大小
474
- // volumn.innerText = value
475
- // },
476
- // refreshRequirementCheck(value) { // 权限网络检测
477
- // browserSoftphoneEnv.innerText = JSON.stringify(value, null, 2)
478
- // },
479
- // refreshChat(info) {
480
- // chatInfo.innerText = JSON.stringify(info, null, 2)
481
- // },
482
- // refreshChatErrorCallback(e) {
483
- // console.log(e)
484
- // },
485
- // enableChatInfoPush: true // 开启会话记录实时推送,开启后,当任务外呼时,可以实时获取通话记录信息,实时回调到refreshChat,中途出现任何异常会回调refreshChatErrorCallback
479
+ // clusterMode: true,
480
+ // reClusterRegisterTimeout: 1000,
481
+ // reClusterConnectTimeout: 1000,
482
+ // // refreshSpeekVolumn(value) { // 当来电接通时,实时查看坐席说话的音量实际传送到给对方的音量大小
483
+ // // volumn.innerText = value
484
+ // // },
485
+ // // refreshRequirementCheck(value) { // 权限网络检测
486
+ // // browserSoftphoneEnv.innerText = JSON.stringify(value, null, 2)
487
+ // // },
488
+ // // refreshChat(info) {
489
+ // // chatInfo.innerText = JSON.stringify(info, null, 2)
490
+ // // },
491
+ // // refreshChatErrorCallback(e) {
492
+ // // console.log(e)
493
+ // // },
494
+ // // enableChatInfoPush: true // 开启会话记录实时推送,开启后,当任务外呼时,可以实时获取通话记录信息,实时回调到refreshChat,中途出现任何异常会回调refreshChatErrorCallback
486
495
  // })
487
496
 
488
497
  /**
@@ -690,14 +699,20 @@ document.addEventListener('DOMContentLoaded', async (event) => {
690
699
  try {
691
700
  await new Promise((resolve, reject) => {
692
701
  const fn = async () => {
693
- await userAgentManager.acceptInvite({
694
- onAck (info) { // 👈 接听响应成功
695
- resolve(info)
696
- },
697
- onAckTimeout () { // 👈 接听响应失败
698
- reject(new Error('接听响应失败'))
699
- }
700
- }) // 👈 一键接听,下行代码被执行说明接听信令被成功发出
702
+ try {
703
+ await userAgentManager.acceptInvite({
704
+ onAck (info) { // 👈 接听响应成功
705
+ resolve(info)
706
+ },
707
+ onAckTimeout () { // 👈 接听响应失败
708
+ reject(new Error('接听响应失败'))
709
+ }
710
+ }) // 👈 一键接听,下行代码被执行说明接听信令被成功发出
711
+ } catch (e) {
712
+ console.log('accept error:', e.message)
713
+ reject(e)
714
+ throw e
715
+ }
701
716
  console.log('接听信令被成功发出')
702
717
  }
703
718
  fn()