@webex/contact-center 3.8.1 → 3.9.0-next.10
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/dist/cc.js +105 -63
- package/dist/cc.js.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/logger-proxy.js +24 -1
- package/dist/logger-proxy.js.map +1 -1
- package/dist/metrics/MetricsManager.js +1 -1
- package/dist/metrics/MetricsManager.js.map +1 -1
- package/dist/metrics/behavioral-events.js +51 -0
- package/dist/metrics/behavioral-events.js.map +1 -1
- package/dist/metrics/constants.js +12 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/services/AddressBook.js +271 -0
- package/dist/services/AddressBook.js.map +1 -0
- package/dist/services/EntryPoint.js +227 -0
- package/dist/services/EntryPoint.js.map +1 -0
- package/dist/services/Queue.js +261 -0
- package/dist/services/Queue.js.map +1 -0
- package/dist/services/config/constants.js +24 -2
- package/dist/services/config/constants.js.map +1 -1
- package/dist/services/config/index.js +1 -43
- package/dist/services/config/index.js.map +1 -1
- package/dist/services/config/types.js +0 -5
- package/dist/services/config/types.js.map +1 -1
- package/dist/services/core/GlobalTypes.js.map +1 -1
- package/dist/services/core/Utils.js +121 -2
- package/dist/services/core/Utils.js.map +1 -1
- package/dist/services/core/aqm-reqs.js +0 -4
- package/dist/services/core/aqm-reqs.js.map +1 -1
- package/dist/services/core/websocket/WebSocketManager.js +0 -4
- package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
- package/dist/services/task/TaskManager.js +1 -0
- package/dist/services/task/TaskManager.js.map +1 -1
- package/dist/services/task/index.js +145 -71
- package/dist/services/task/index.js.map +1 -1
- package/dist/types/cc.d.ts +77 -43
- package/dist/types/index.d.ts +8 -3
- package/dist/types/metrics/constants.d.ts +7 -0
- package/dist/types/services/AddressBook.d.ts +74 -0
- package/dist/types/services/EntryPoint.d.ts +67 -0
- package/dist/types/services/Queue.d.ts +76 -0
- package/dist/types/services/config/constants.d.ts +23 -1
- package/dist/types/services/config/index.d.ts +1 -14
- package/dist/types/services/config/types.d.ts +0 -64
- package/dist/types/services/core/GlobalTypes.d.ts +25 -0
- package/dist/types/services/core/Utils.d.ts +27 -1
- package/dist/types/services/task/index.d.ts +1 -1
- package/dist/types/types.d.ts +162 -0
- package/dist/types/utils/PageCache.d.ts +173 -0
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/PageCache.js +192 -0
- package/dist/utils/PageCache.js.map +1 -0
- package/dist/webex.js +1 -1
- package/package.json +10 -10
- package/src/cc.ts +121 -81
- package/src/index.ts +19 -3
- package/src/logger-proxy.ts +24 -1
- package/src/metrics/MetricsManager.ts +1 -1
- package/src/metrics/behavioral-events.ts +54 -0
- package/src/metrics/constants.ts +15 -0
- package/src/services/AddressBook.ts +291 -0
- package/src/services/EntryPoint.ts +241 -0
- package/src/services/Queue.ts +277 -0
- package/src/services/config/constants.ts +26 -2
- package/src/services/config/index.ts +1 -55
- package/src/services/config/types.ts +0 -65
- package/src/services/core/GlobalTypes.ts +27 -0
- package/src/services/core/Utils.ts +155 -1
- package/src/services/core/aqm-reqs.ts +0 -5
- package/src/services/core/websocket/WebSocketManager.ts +0 -4
- package/src/services/task/TaskManager.ts +1 -0
- package/src/services/task/index.ts +172 -56
- package/src/types.ts +180 -0
- package/src/utils/PageCache.ts +252 -0
- package/test/unit/spec/cc.ts +30 -82
- package/test/unit/spec/metrics/MetricsManager.ts +0 -1
- package/test/unit/spec/metrics/behavioral-events.ts +14 -0
- package/test/unit/spec/services/AddressBook.ts +332 -0
- package/test/unit/spec/services/EntryPoint.ts +259 -0
- package/test/unit/spec/services/Queue.ts +323 -0
- package/test/unit/spec/services/config/index.ts +0 -71
- package/test/unit/spec/services/core/Utils.ts +50 -0
- package/test/unit/spec/services/core/aqm-reqs.ts +1 -3
- package/test/unit/spec/services/core/websocket/WebSocketManager.ts +0 -4
- package/test/unit/spec/services/task/TaskManager.ts +8 -1
- package/test/unit/spec/services/task/index.ts +226 -122
- package/umd/contact-center.min.js +2 -2
- package/umd/contact-center.min.js.map +1 -1
|
@@ -331,15 +331,21 @@ class Task extends _events.default {
|
|
|
331
331
|
}
|
|
332
332
|
return Promise.resolve(); // TODO: reject for extension as part of refactor
|
|
333
333
|
} catch (error) {
|
|
334
|
-
const
|
|
335
|
-
|
|
336
|
-
|
|
334
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.ACCEPT, _constants.TASK_FILE);
|
|
335
|
+
const taskErrorProps = {
|
|
336
|
+
trackingId: err.data?.trackingId,
|
|
337
|
+
errorMessage: err.data?.message,
|
|
338
|
+
errorType: err.data?.errorType,
|
|
339
|
+
errorData: err.data?.errorData,
|
|
340
|
+
reasonCode: err.data?.reasonCode
|
|
341
|
+
};
|
|
337
342
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_ACCEPT_FAILED, {
|
|
338
343
|
taskId: this.data.interactionId,
|
|
339
344
|
error: error.toString(),
|
|
345
|
+
...taskErrorProps,
|
|
340
346
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(error.details)
|
|
341
347
|
}, ['operational', 'behavioral', 'business']);
|
|
342
|
-
throw
|
|
348
|
+
throw err;
|
|
343
349
|
}
|
|
344
350
|
}
|
|
345
351
|
|
|
@@ -372,10 +378,8 @@ class Task extends _events.default {
|
|
|
372
378
|
});
|
|
373
379
|
return Promise.resolve();
|
|
374
380
|
} catch (error) {
|
|
375
|
-
const
|
|
376
|
-
|
|
377
|
-
} = (0, _Utils.getErrorDetails)(error, _constants2.METHODS.TOGGLE_MUTE, _constants.TASK_FILE);
|
|
378
|
-
throw detailedError;
|
|
381
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.TOGGLE_MUTE, _constants.TASK_FILE);
|
|
382
|
+
throw err;
|
|
379
383
|
}
|
|
380
384
|
}
|
|
381
385
|
|
|
@@ -413,15 +417,21 @@ class Task extends _events.default {
|
|
|
413
417
|
});
|
|
414
418
|
return Promise.resolve();
|
|
415
419
|
} catch (error) {
|
|
416
|
-
const
|
|
417
|
-
|
|
418
|
-
|
|
420
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.DECLINE, _constants.TASK_FILE);
|
|
421
|
+
const taskErrorProps = {
|
|
422
|
+
trackingId: err.data?.trackingId,
|
|
423
|
+
errorMessage: err.data?.message,
|
|
424
|
+
errorType: err.data?.errorType,
|
|
425
|
+
errorData: err.data?.errorData,
|
|
426
|
+
reasonCode: err.data?.reasonCode
|
|
427
|
+
};
|
|
419
428
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_DECLINE_FAILED, {
|
|
420
429
|
taskId: this.data.interactionId,
|
|
421
430
|
error: error.toString(),
|
|
431
|
+
...taskErrorProps,
|
|
422
432
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(error.details || {})
|
|
423
433
|
}, ['operational', 'behavioral']);
|
|
424
|
-
throw
|
|
434
|
+
throw err;
|
|
425
435
|
}
|
|
426
436
|
}
|
|
427
437
|
|
|
@@ -478,16 +488,22 @@ class Task extends _events.default {
|
|
|
478
488
|
});
|
|
479
489
|
return response;
|
|
480
490
|
} catch (error) {
|
|
481
|
-
const
|
|
482
|
-
|
|
483
|
-
|
|
491
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.HOLD, _constants.TASK_FILE);
|
|
492
|
+
const taskErrorProps = {
|
|
493
|
+
trackingId: err.data?.trackingId,
|
|
494
|
+
errorMessage: err.data?.message,
|
|
495
|
+
errorType: err.data?.errorType,
|
|
496
|
+
errorData: err.data?.errorData,
|
|
497
|
+
reasonCode: err.data?.reasonCode
|
|
498
|
+
};
|
|
484
499
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_HOLD_FAILED, {
|
|
485
500
|
taskId: this.data.interactionId,
|
|
486
501
|
mediaResourceId: this.data.mediaResourceId,
|
|
487
502
|
error: error.toString(),
|
|
503
|
+
...taskErrorProps,
|
|
488
504
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(error.details || {})
|
|
489
505
|
}, ['operational', 'behavioral']);
|
|
490
|
-
throw
|
|
506
|
+
throw err;
|
|
491
507
|
}
|
|
492
508
|
}
|
|
493
509
|
|
|
@@ -551,17 +567,23 @@ class Task extends _events.default {
|
|
|
551
567
|
});
|
|
552
568
|
return response;
|
|
553
569
|
} catch (error) {
|
|
554
|
-
const
|
|
555
|
-
error: detailedError
|
|
556
|
-
} = (0, _Utils.getErrorDetails)(error, _constants2.METHODS.RESUME, _constants.TASK_FILE);
|
|
570
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.RESUME, _constants.TASK_FILE);
|
|
557
571
|
const mainInteractionId = this.data.interaction?.mainInteractionId;
|
|
572
|
+
const taskErrorProps = {
|
|
573
|
+
trackingId: err.data?.trackingId,
|
|
574
|
+
errorMessage: err.data?.message,
|
|
575
|
+
errorType: err.data?.errorType,
|
|
576
|
+
errorData: err.data?.errorData,
|
|
577
|
+
reasonCode: err.data?.reasonCode
|
|
578
|
+
};
|
|
558
579
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_RESUME_FAILED, {
|
|
559
580
|
taskId: this.data.interactionId,
|
|
560
581
|
mainInteractionId,
|
|
561
582
|
mediaResourceId: mainInteractionId ? this.data.interaction.media[mainInteractionId].mediaResourceId : '',
|
|
583
|
+
...taskErrorProps,
|
|
562
584
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(error.details || {})
|
|
563
585
|
}, ['operational', 'behavioral']);
|
|
564
|
-
throw
|
|
586
|
+
throw err;
|
|
565
587
|
}
|
|
566
588
|
}
|
|
567
589
|
|
|
@@ -631,14 +653,20 @@ class Task extends _events.default {
|
|
|
631
653
|
});
|
|
632
654
|
return response;
|
|
633
655
|
} catch (error) {
|
|
634
|
-
const
|
|
635
|
-
|
|
636
|
-
|
|
656
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.END, _constants.TASK_FILE);
|
|
657
|
+
const taskErrorProps = {
|
|
658
|
+
trackingId: err.data?.trackingId,
|
|
659
|
+
errorMessage: err.data?.message,
|
|
660
|
+
errorType: err.data?.errorType,
|
|
661
|
+
errorData: err.data?.errorData,
|
|
662
|
+
reasonCode: err.data?.reasonCode
|
|
663
|
+
};
|
|
637
664
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_END_FAILED, {
|
|
638
665
|
taskId: this.data.interactionId,
|
|
666
|
+
...taskErrorProps,
|
|
639
667
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(error.details || {})
|
|
640
668
|
}, ['operational', 'behavioral', 'business']);
|
|
641
|
-
throw
|
|
669
|
+
throw err;
|
|
642
670
|
}
|
|
643
671
|
}
|
|
644
672
|
|
|
@@ -720,16 +748,22 @@ class Task extends _events.default {
|
|
|
720
748
|
});
|
|
721
749
|
return response;
|
|
722
750
|
} catch (error) {
|
|
723
|
-
const
|
|
724
|
-
|
|
725
|
-
|
|
751
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.WRAPUP, _constants.TASK_FILE);
|
|
752
|
+
const taskErrorProps = {
|
|
753
|
+
trackingId: err.data?.trackingId,
|
|
754
|
+
errorMessage: err.data?.message,
|
|
755
|
+
errorType: err.data?.errorType,
|
|
756
|
+
errorData: err.data?.errorData,
|
|
757
|
+
reasonCode: err.data?.reasonCode
|
|
758
|
+
};
|
|
726
759
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_WRAPUP_FAILED, {
|
|
727
760
|
taskId: this.data.interactionId,
|
|
728
761
|
wrapUpCode: wrapupPayload.auxCodeId,
|
|
729
762
|
wrapUpReason: wrapupPayload.wrapUpReason,
|
|
763
|
+
...taskErrorProps,
|
|
730
764
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(error.details || {})
|
|
731
765
|
}, ['operational', 'behavioral', 'business']);
|
|
732
|
-
throw
|
|
766
|
+
throw err;
|
|
733
767
|
}
|
|
734
768
|
}
|
|
735
769
|
|
|
@@ -788,15 +822,21 @@ class Task extends _events.default {
|
|
|
788
822
|
});
|
|
789
823
|
return result;
|
|
790
824
|
} catch (error) {
|
|
791
|
-
const
|
|
792
|
-
|
|
793
|
-
|
|
825
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.PAUSE_RECORDING, _constants.TASK_FILE);
|
|
826
|
+
const taskErrorProps = {
|
|
827
|
+
trackingId: err.data?.trackingId,
|
|
828
|
+
errorMessage: err.data?.message,
|
|
829
|
+
errorType: err.data?.errorType,
|
|
830
|
+
errorData: err.data?.errorData,
|
|
831
|
+
reasonCode: err.data?.reasonCode
|
|
832
|
+
};
|
|
794
833
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_PAUSE_RECORDING_FAILED, {
|
|
795
834
|
taskId: this.data.interactionId,
|
|
796
835
|
error: error.toString(),
|
|
836
|
+
...taskErrorProps,
|
|
797
837
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(error.details || {})
|
|
798
838
|
}, ['operational', 'behavioral', 'business']);
|
|
799
|
-
throw
|
|
839
|
+
throw err;
|
|
800
840
|
}
|
|
801
841
|
}
|
|
802
842
|
|
|
@@ -864,15 +904,21 @@ class Task extends _events.default {
|
|
|
864
904
|
});
|
|
865
905
|
return result;
|
|
866
906
|
} catch (error) {
|
|
867
|
-
const
|
|
868
|
-
|
|
869
|
-
|
|
907
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.RESUME_RECORDING, _constants.TASK_FILE);
|
|
908
|
+
const taskErrorProps = {
|
|
909
|
+
trackingId: err.data?.trackingId,
|
|
910
|
+
errorMessage: err.data?.message,
|
|
911
|
+
errorType: err.data?.errorType,
|
|
912
|
+
errorData: err.data?.errorData,
|
|
913
|
+
reasonCode: err.data?.reasonCode
|
|
914
|
+
};
|
|
870
915
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_RESUME_RECORDING_FAILED, {
|
|
871
916
|
taskId: this.data.interactionId,
|
|
872
917
|
error: error.toString(),
|
|
918
|
+
...taskErrorProps,
|
|
873
919
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(error.details || {})
|
|
874
920
|
}, ['operational', 'behavioral', 'business']);
|
|
875
|
-
throw
|
|
921
|
+
throw err;
|
|
876
922
|
}
|
|
877
923
|
}
|
|
878
924
|
|
|
@@ -935,17 +981,23 @@ class Task extends _events.default {
|
|
|
935
981
|
});
|
|
936
982
|
return result;
|
|
937
983
|
} catch (error) {
|
|
938
|
-
const
|
|
939
|
-
|
|
940
|
-
|
|
984
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.CONSULT, _constants.TASK_FILE);
|
|
985
|
+
const taskErrorProps = {
|
|
986
|
+
trackingId: err.data?.trackingId,
|
|
987
|
+
errorMessage: err.data?.message,
|
|
988
|
+
errorType: err.data?.errorType,
|
|
989
|
+
errorData: err.data?.errorData,
|
|
990
|
+
reasonCode: err.data?.reasonCode
|
|
991
|
+
};
|
|
941
992
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_CONSULT_START_FAILED, {
|
|
942
993
|
taskId: this.data.interactionId,
|
|
943
994
|
destination: consultPayload.to,
|
|
944
995
|
destinationType: consultPayload.destinationType,
|
|
945
996
|
error: error.toString(),
|
|
997
|
+
...taskErrorProps,
|
|
946
998
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(error.details || {})
|
|
947
999
|
}, ['operational', 'behavioral', 'business']);
|
|
948
|
-
throw
|
|
1000
|
+
throw err;
|
|
949
1001
|
}
|
|
950
1002
|
}
|
|
951
1003
|
|
|
@@ -1006,15 +1058,21 @@ class Task extends _events.default {
|
|
|
1006
1058
|
});
|
|
1007
1059
|
return result;
|
|
1008
1060
|
} catch (error) {
|
|
1009
|
-
const
|
|
1010
|
-
|
|
1011
|
-
|
|
1061
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.END_CONSULT, _constants.TASK_FILE);
|
|
1062
|
+
const taskErrorProps = {
|
|
1063
|
+
trackingId: err.data?.trackingId,
|
|
1064
|
+
errorMessage: err.data?.message,
|
|
1065
|
+
errorType: err.data?.errorType,
|
|
1066
|
+
errorData: err.data?.errorData,
|
|
1067
|
+
reasonCode: err.data?.reasonCode
|
|
1068
|
+
};
|
|
1012
1069
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_CONSULT_END_FAILED, {
|
|
1013
1070
|
taskId: this.data.interactionId,
|
|
1014
1071
|
error: error.toString(),
|
|
1072
|
+
...taskErrorProps,
|
|
1015
1073
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(error.details || {})
|
|
1016
1074
|
}, ['operational', 'behavioral', 'business']);
|
|
1017
|
-
throw
|
|
1075
|
+
throw err;
|
|
1018
1076
|
}
|
|
1019
1077
|
}
|
|
1020
1078
|
|
|
@@ -1083,18 +1141,24 @@ class Task extends _events.default {
|
|
|
1083
1141
|
});
|
|
1084
1142
|
return result;
|
|
1085
1143
|
} catch (error) {
|
|
1086
|
-
const
|
|
1087
|
-
|
|
1088
|
-
|
|
1144
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.TRANSFER, _constants.TASK_FILE);
|
|
1145
|
+
const taskErrorProps = {
|
|
1146
|
+
trackingId: err.data?.trackingId,
|
|
1147
|
+
errorMessage: err.data?.message,
|
|
1148
|
+
errorType: err.data?.errorType,
|
|
1149
|
+
errorData: err.data?.errorData,
|
|
1150
|
+
reasonCode: err.data?.reasonCode
|
|
1151
|
+
};
|
|
1089
1152
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_TRANSFER_FAILED, {
|
|
1090
1153
|
taskId: this.data.interactionId,
|
|
1091
1154
|
destination: transferPayload.to,
|
|
1092
1155
|
destinationType: transferPayload.destinationType,
|
|
1093
1156
|
isConsultTransfer: false,
|
|
1094
1157
|
error: error.toString(),
|
|
1158
|
+
...taskErrorProps,
|
|
1095
1159
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(error.details || {})
|
|
1096
1160
|
}, ['operational', 'behavioral', 'business']);
|
|
1097
|
-
throw
|
|
1161
|
+
throw err;
|
|
1098
1162
|
}
|
|
1099
1163
|
}
|
|
1100
1164
|
|
|
@@ -1132,36 +1196,38 @@ class Task extends _events.default {
|
|
|
1132
1196
|
*/
|
|
1133
1197
|
async consultTransfer(consultTransferPayload) {
|
|
1134
1198
|
try {
|
|
1135
|
-
|
|
1199
|
+
// Get the destination agent ID using custom logic from participants data
|
|
1200
|
+
const destAgentId = (0, _Utils.getDestinationAgentId)(this.data.interaction?.participants, this.data.agentId);
|
|
1201
|
+
|
|
1202
|
+
// Resolve the target id (queue consult transfers go to the accepted agent)
|
|
1203
|
+
if (!destAgentId) {
|
|
1204
|
+
throw new Error('No agent has accepted this queue consult yet');
|
|
1205
|
+
}
|
|
1206
|
+
_loggerProxy.default.info(`Initiating consult transfer to ${consultTransferPayload?.to || destAgentId}`, {
|
|
1136
1207
|
module: _constants.TASK_FILE,
|
|
1137
1208
|
method: _constants2.METHODS.CONSULT_TRANSFER,
|
|
1138
1209
|
interactionId: this.data.interactionId
|
|
1139
1210
|
});
|
|
1211
|
+
// Obtain payload based on desktop logic using TaskData
|
|
1212
|
+
const finalDestinationType = (0, _Utils.deriveConsultTransferDestinationType)(this.data);
|
|
1140
1213
|
|
|
1141
|
-
//
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
// Override the destination with the agent who accepted the queue consult
|
|
1148
|
-
consultTransferPayload = {
|
|
1149
|
-
to: this.data.destAgentId,
|
|
1150
|
-
destinationType: _types2.CONSULT_TRANSFER_DESTINATION_TYPE.AGENT
|
|
1151
|
-
};
|
|
1152
|
-
}
|
|
1214
|
+
// By default we always use the computed destAgentId as the target id
|
|
1215
|
+
const consultTransferRequest = {
|
|
1216
|
+
to: destAgentId,
|
|
1217
|
+
destinationType: finalDestinationType
|
|
1218
|
+
};
|
|
1153
1219
|
const result = await this.contact.consultTransfer({
|
|
1154
1220
|
interactionId: this.data.interactionId,
|
|
1155
|
-
data:
|
|
1221
|
+
data: consultTransferRequest
|
|
1156
1222
|
});
|
|
1157
1223
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_TRANSFER_SUCCESS, {
|
|
1158
1224
|
taskId: this.data.interactionId,
|
|
1159
|
-
destination:
|
|
1160
|
-
destinationType:
|
|
1225
|
+
destination: consultTransferRequest.to,
|
|
1226
|
+
destinationType: consultTransferRequest.destinationType,
|
|
1161
1227
|
isConsultTransfer: true,
|
|
1162
1228
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponse(result)
|
|
1163
1229
|
}, ['operational', 'behavioral', 'business']);
|
|
1164
|
-
_loggerProxy.default.log(`Consult transfer completed successfully to ${consultTransferPayload
|
|
1230
|
+
_loggerProxy.default.log(`Consult transfer completed successfully to ${consultTransferPayload?.to || destAgentId}`, {
|
|
1165
1231
|
module: _constants.TASK_FILE,
|
|
1166
1232
|
method: _constants2.METHODS.CONSULT_TRANSFER,
|
|
1167
1233
|
trackingId: result.trackingId,
|
|
@@ -1169,18 +1235,26 @@ class Task extends _events.default {
|
|
|
1169
1235
|
});
|
|
1170
1236
|
return result;
|
|
1171
1237
|
} catch (error) {
|
|
1172
|
-
const
|
|
1173
|
-
|
|
1174
|
-
|
|
1238
|
+
const err = (0, _Utils.generateTaskErrorObject)(error, _constants2.METHODS.CONSULT_TRANSFER, _constants.TASK_FILE);
|
|
1239
|
+
const taskErrorProps = {
|
|
1240
|
+
trackingId: err.data?.trackingId,
|
|
1241
|
+
errorMessage: err.data?.message,
|
|
1242
|
+
errorType: err.data?.errorType,
|
|
1243
|
+
errorData: err.data?.errorData,
|
|
1244
|
+
reasonCode: err.data?.reasonCode
|
|
1245
|
+
};
|
|
1246
|
+
const failedDestinationType = (0, _Utils.deriveConsultTransferDestinationType)(this.data);
|
|
1247
|
+
const failedDestAgentId = (0, _Utils.getDestinationAgentId)(this.data.interaction?.participants, this.data.agentId);
|
|
1175
1248
|
this.metricsManager.trackEvent(_constants3.METRIC_EVENT_NAMES.TASK_TRANSFER_FAILED, {
|
|
1176
1249
|
taskId: this.data.interactionId,
|
|
1177
|
-
destination:
|
|
1178
|
-
destinationType:
|
|
1250
|
+
destination: failedDestAgentId || '',
|
|
1251
|
+
destinationType: failedDestinationType,
|
|
1179
1252
|
isConsultTransfer: true,
|
|
1180
1253
|
error: error.toString(),
|
|
1254
|
+
...taskErrorProps,
|
|
1181
1255
|
..._MetricsManager.default.getCommonTrackingFieldForAQMResponseFailed(error.details || {})
|
|
1182
1256
|
}, ['operational', 'behavioral', 'business']);
|
|
1183
|
-
throw
|
|
1257
|
+
throw err;
|
|
1184
1258
|
}
|
|
1185
1259
|
}
|
|
1186
1260
|
}
|