@webex/calling 3.0.0-next.23 → 3.0.0-next.24

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.
Files changed (126) hide show
  1. package/dist/CallHistory/CallHistory.js +5 -6
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  4. package/dist/CallHistory/callHistoryFixtures.js +3 -6
  5. package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
  6. package/dist/CallHistory/constants.js +9 -18
  7. package/dist/CallHistory/constants.js.map +1 -1
  8. package/dist/CallSettings/CallSettings.js +18 -13
  9. package/dist/CallSettings/CallSettings.js.map +1 -1
  10. package/dist/CallSettings/CallSettings.test.js.map +1 -1
  11. package/dist/CallSettings/UcmBackendConnector.js +3 -4
  12. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  13. package/dist/CallSettings/UcmBackendConnector.test.js +2 -2
  14. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  15. package/dist/CallSettings/WxCallBackendConnector.js +19 -13
  16. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  17. package/dist/CallSettings/WxCallBackendConnector.test.js +2 -2
  18. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  19. package/dist/CallSettings/constants.js +11 -22
  20. package/dist/CallSettings/constants.js.map +1 -1
  21. package/dist/CallSettings/testFixtures.js +4 -8
  22. package/dist/CallSettings/testFixtures.js.map +1 -1
  23. package/dist/CallingClient/CallingClient.js +17 -15
  24. package/dist/CallingClient/CallingClient.js.map +1 -1
  25. package/dist/CallingClient/CallingClient.test.js +9 -7
  26. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  27. package/dist/CallingClient/callRecordFixtures.js +2 -4
  28. package/dist/CallingClient/callRecordFixtures.js.map +1 -1
  29. package/dist/CallingClient/calling/CallerId/index.js +6 -6
  30. package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
  31. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
  32. package/dist/CallingClient/calling/call.js +49 -38
  33. package/dist/CallingClient/calling/call.js.map +1 -1
  34. package/dist/CallingClient/calling/call.test.js +9 -8
  35. package/dist/CallingClient/calling/call.test.js.map +1 -1
  36. package/dist/CallingClient/calling/callManager.js +3 -5
  37. package/dist/CallingClient/calling/callManager.js.map +1 -1
  38. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  39. package/dist/CallingClient/calling/types.js +31 -33
  40. package/dist/CallingClient/calling/types.js.map +1 -1
  41. package/dist/CallingClient/callingClientFixtures.js +16 -32
  42. package/dist/CallingClient/callingClientFixtures.js.map +1 -1
  43. package/dist/CallingClient/constants.js +100 -200
  44. package/dist/CallingClient/constants.js.map +1 -1
  45. package/dist/CallingClient/line/index.js +5 -4
  46. package/dist/CallingClient/line/index.js.map +1 -1
  47. package/dist/CallingClient/line/line.test.js +4 -4
  48. package/dist/CallingClient/line/line.test.js.map +1 -1
  49. package/dist/CallingClient/line/types.js +6 -7
  50. package/dist/CallingClient/line/types.js.map +1 -1
  51. package/dist/CallingClient/registration/register.js +51 -42
  52. package/dist/CallingClient/registration/register.js.map +1 -1
  53. package/dist/CallingClient/registration/register.test.js +5 -4
  54. package/dist/CallingClient/registration/register.test.js.map +1 -1
  55. package/dist/CallingClient/registration/registerFixtures.js +5 -10
  56. package/dist/CallingClient/registration/registerFixtures.js.map +1 -1
  57. package/dist/Contacts/ContactsClient.js +30 -19
  58. package/dist/Contacts/ContactsClient.js.map +1 -1
  59. package/dist/Contacts/ContactsClient.test.js +4 -4
  60. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  61. package/dist/Contacts/constants.js +10 -18
  62. package/dist/Contacts/constants.js.map +1 -1
  63. package/dist/Contacts/contactFixtures.js +26 -52
  64. package/dist/Contacts/contactFixtures.js.map +1 -1
  65. package/dist/Contacts/types.js +29 -9
  66. package/dist/Contacts/types.js.map +1 -1
  67. package/dist/Errors/catalog/CallError.js +3 -5
  68. package/dist/Errors/catalog/CallError.js.map +1 -1
  69. package/dist/Errors/catalog/CallingDeviceError.js +3 -5
  70. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
  71. package/dist/Errors/catalog/ExtendedError.js +2 -3
  72. package/dist/Errors/catalog/ExtendedError.js.map +1 -1
  73. package/dist/Errors/catalog/LineError.js +3 -5
  74. package/dist/Errors/catalog/LineError.js.map +1 -1
  75. package/dist/Errors/types.js +15 -20
  76. package/dist/Errors/types.js.map +1 -1
  77. package/dist/Events/impl/index.js +2 -3
  78. package/dist/Events/impl/index.js.map +1 -1
  79. package/dist/Events/types.js +42 -51
  80. package/dist/Events/types.js.map +1 -1
  81. package/dist/Logger/index.js +1 -2
  82. package/dist/Logger/index.js.map +1 -1
  83. package/dist/Logger/index.test.js.map +1 -1
  84. package/dist/Logger/types.js +9 -12
  85. package/dist/Logger/types.js.map +1 -1
  86. package/dist/Metrics/index.js +2 -4
  87. package/dist/Metrics/index.js.map +1 -1
  88. package/dist/Metrics/index.test.js +2 -2
  89. package/dist/Metrics/index.test.js.map +1 -1
  90. package/dist/Metrics/types.js +15 -20
  91. package/dist/Metrics/types.js.map +1 -1
  92. package/dist/SDKConnector/index.js +1 -2
  93. package/dist/SDKConnector/index.js.map +1 -1
  94. package/dist/SDKConnector/utils.js +1 -2
  95. package/dist/SDKConnector/utils.js.map +1 -1
  96. package/dist/Voicemail/BroadworksBackendConnector.js +21 -12
  97. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  98. package/dist/Voicemail/BroadworksBackendConnector.test.js +2 -2
  99. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  100. package/dist/Voicemail/UcmBackendConnector.js +19 -11
  101. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  102. package/dist/Voicemail/UcmBackendConnector.test.js +5 -4
  103. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  104. package/dist/Voicemail/Voicemail.js +17 -12
  105. package/dist/Voicemail/Voicemail.js.map +1 -1
  106. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  107. package/dist/Voicemail/WxCallBackendConnector.js +17 -10
  108. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  109. package/dist/Voicemail/WxCallBackendConnector.test.js +4 -4
  110. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  111. package/dist/Voicemail/constants.js +29 -58
  112. package/dist/Voicemail/constants.js.map +1 -1
  113. package/dist/Voicemail/voicemailFixture.js +35 -70
  114. package/dist/Voicemail/voicemailFixture.js.map +1 -1
  115. package/dist/common/Utils.js +5 -7
  116. package/dist/common/Utils.js.map +1 -1
  117. package/dist/common/Utils.test.js +2 -2
  118. package/dist/common/Utils.test.js.map +1 -1
  119. package/dist/common/constants.js +41 -82
  120. package/dist/common/constants.js.map +1 -1
  121. package/dist/common/testUtil.js +10 -20
  122. package/dist/common/testUtil.js.map +1 -1
  123. package/dist/common/types.js +30 -40
  124. package/dist/common/types.js.map +1 -1
  125. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  126. package/package.json +3 -2
@@ -74,7 +74,7 @@ var SPARK_CALL_SESSION = {
74
74
  isPMR: false,
75
75
  correlationIds: ['58ea6cd9-852b-4a77-957f-e704c8b0e63e']
76
76
  };
77
- var MOCK_SESSION_EVENT = {
77
+ var MOCK_SESSION_EVENT = exports.MOCK_SESSION_EVENT = {
78
78
  id: 'id',
79
79
  data: {
80
80
  userSessions: {
@@ -86,8 +86,7 @@ var MOCK_SESSION_EVENT = {
86
86
  timestamp: 12345,
87
87
  trackingId: 'tracking-id'
88
88
  };
89
- exports.MOCK_SESSION_EVENT = MOCK_SESSION_EVENT;
90
- var MOCK_MULTIPLE_SESSIONS_EVENT = {
89
+ var MOCK_MULTIPLE_SESSIONS_EVENT = exports.MOCK_MULTIPLE_SESSIONS_EVENT = {
91
90
  id: 'id',
92
91
  data: {
93
92
  userSessions: {
@@ -99,5 +98,4 @@ var MOCK_MULTIPLE_SESSIONS_EVENT = {
99
98
  timestamp: 12345,
100
99
  trackingId: 'tracking-id'
101
100
  };
102
- exports.MOCK_MULTIPLE_SESSIONS_EVENT = MOCK_MULTIPLE_SESSIONS_EVENT;
103
101
  //# sourceMappingURL=callRecordFixtures.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","WEBEX_CALL_SESSION","id","durationSecs","self","name","phoneNumber","url","sessionId","sessionType","SessionType","WEBEX_CALLING","startTime","endTime","direction","disposition","Disposition","INITIATED","other","isPrivate","callbackAddress","durationSeconds","joinedDurationSeconds","participantCount","links","locusUrl","conversationUrl","isDeleted","isPMR","correlationIds","SPARK_CALL_SESSION","SPARK","MOCK_SESSION_EVENT","data","userSessions","statusCode","eventType","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","timestamp","trackingId","exports","MOCK_MULTIPLE_SESSIONS_EVENT"],"sources":["callRecordFixtures.ts"],"sourcesContent":["import {CallSessionEvent, SessionType, Disposition, MOBIUS_EVENT_KEYS} from '../Events/types';\n\nconst WEBEX_CALL_SESSION = {\n id: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n durationSecs: 438,\n self: {\n id: 'a24027e7-9b6e-4047-a950-42f4492148ec',\n name: 'Mark',\n phoneNumber: '123456',\n },\n url: 'https://janus-a.wbx2.com/janus/api/v1/history/userSessions/d74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionId: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionType: SessionType.WEBEX_CALLING,\n startTime: '2022-08-02T10:45:21.565Z',\n endTime: '2022-08-02T10:53:01.624Z',\n direction: 'OUTGOING',\n disposition: Disposition.INITIATED,\n other: {\n id: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n name: 'test',\n isPrivate: false,\n callbackAddress: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n phoneNumber: '123456679',\n },\n durationSeconds: 438,\n joinedDurationSeconds: 457,\n participantCount: 2,\n links: {\n locusUrl: 'https://locus-a.wbx2.com/locus/api/v1/loci/f5dbe4da-663b-3f73-a2fc-3a2fb0f12080',\n conversationUrl:\n 'https://conv-a.wbx2.com/conversation/api/v1/conversations/c9252ff0-9de2-11ec-a582-59d00c02cca9',\n callbackAddress: '123-456-7890',\n },\n\n isDeleted: false,\n isPMR: false,\n correlationIds: ['58ea6cd9-852b-4a77-957f-e704c8b0e63e'],\n};\n\nconst SPARK_CALL_SESSION = {\n id: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n durationSecs: 438,\n self: {\n id: 'a24027e7-9b6e-4047-a950-42f4492148ec',\n name: 'Mark',\n phoneNumber: '123456',\n },\n url: 'https://janus-a.wbx2.com/janus/api/v1/history/userSessions/d74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionId: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionType: SessionType.SPARK,\n startTime: '2022-08-02T10:45:21.565Z',\n endTime: '2022-08-02T10:53:01.624Z',\n direction: 'OUTGOING',\n disposition: Disposition.INITIATED,\n other: {\n id: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n name: 'test',\n isPrivate: false,\n callbackAddress: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n phoneNumber: '123456679',\n },\n durationSeconds: 438,\n joinedDurationSeconds: 457,\n participantCount: 2,\n links: {\n locusUrl: 'https://locus-a.wbx2.com/locus/api/v1/loci/f5dbe4da-663b-3f73-a2fc-3a2fb0f12080',\n conversationUrl:\n 'https://conv-a.wbx2.com/conversation/api/v1/conversations/c9252ff0-9de2-11ec-a582-59d00c02cca9',\n callbackAddress: '123-456-7890',\n },\n\n isDeleted: false,\n isPMR: false,\n correlationIds: ['58ea6cd9-852b-4a77-957f-e704c8b0e63e'],\n};\n\nexport const MOCK_SESSION_EVENT: CallSessionEvent = {\n id: 'id',\n data: {\n userSessions: {\n userSessions: [WEBEX_CALL_SESSION],\n statusCode: 0,\n },\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n },\n timestamp: 12345,\n trackingId: 'tracking-id',\n};\n\nexport const MOCK_MULTIPLE_SESSIONS_EVENT: CallSessionEvent = {\n id: 'id',\n data: {\n userSessions: {\n userSessions: [WEBEX_CALL_SESSION, SPARK_CALL_SESSION],\n statusCode: 0,\n },\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n },\n timestamp: 12345,\n trackingId: 'tracking-id',\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAMC,kBAAkB,GAAG;EACzBC,EAAE,EAAE,sCAAsC;EAC1CC,YAAY,EAAE,GAAG;EACjBC,IAAI,EAAE;IACJF,EAAE,EAAE,sCAAsC;IAC1CG,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE;EACf,CAAC;EACDC,GAAG,EAAE,iGAAiG;EACtGC,SAAS,EAAE,sCAAsC;EACjDC,WAAW,EAAEC,kBAAW,CAACC,aAAa;EACtCC,SAAS,EAAE,0BAA0B;EACrCC,OAAO,EAAE,0BAA0B;EACnCC,SAAS,EAAE,UAAU;EACrBC,WAAW,EAAEC,kBAAW,CAACC,SAAS;EAClCC,KAAK,EAAE;IACLhB,EAAE,EAAE,sCAAsC;IAC1CG,IAAI,EAAE,MAAM;IACZc,SAAS,EAAE,KAAK;IAChBC,eAAe,EAAE,sCAAsC;IACvDd,WAAW,EAAE;EACf,CAAC;EACDe,eAAe,EAAE,GAAG;EACpBC,qBAAqB,EAAE,GAAG;EAC1BC,gBAAgB,EAAE,CAAC;EACnBC,KAAK,EAAE;IACLC,QAAQ,EAAE,iFAAiF;IAC3FC,eAAe,EACb,gGAAgG;IAClGN,eAAe,EAAE;EACnB,CAAC;EAEDO,SAAS,EAAE,KAAK;EAChBC,KAAK,EAAE,KAAK;EACZC,cAAc,EAAE,CAAC,sCAAsC;AACzD,CAAC;AAED,IAAMC,kBAAkB,GAAG;EACzB5B,EAAE,EAAE,sCAAsC;EAC1CC,YAAY,EAAE,GAAG;EACjBC,IAAI,EAAE;IACJF,EAAE,EAAE,sCAAsC;IAC1CG,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE;EACf,CAAC;EACDC,GAAG,EAAE,iGAAiG;EACtGC,SAAS,EAAE,sCAAsC;EACjDC,WAAW,EAAEC,kBAAW,CAACqB,KAAK;EAC9BnB,SAAS,EAAE,0BAA0B;EACrCC,OAAO,EAAE,0BAA0B;EACnCC,SAAS,EAAE,UAAU;EACrBC,WAAW,EAAEC,kBAAW,CAACC,SAAS;EAClCC,KAAK,EAAE;IACLhB,EAAE,EAAE,sCAAsC;IAC1CG,IAAI,EAAE,MAAM;IACZc,SAAS,EAAE,KAAK;IAChBC,eAAe,EAAE,sCAAsC;IACvDd,WAAW,EAAE;EACf,CAAC;EACDe,eAAe,EAAE,GAAG;EACpBC,qBAAqB,EAAE,GAAG;EAC1BC,gBAAgB,EAAE,CAAC;EACnBC,KAAK,EAAE;IACLC,QAAQ,EAAE,iFAAiF;IAC3FC,eAAe,EACb,gGAAgG;IAClGN,eAAe,EAAE;EACnB,CAAC;EAEDO,SAAS,EAAE,KAAK;EAChBC,KAAK,EAAE,KAAK;EACZC,cAAc,EAAE,CAAC,sCAAsC;AACzD,CAAC;AAEM,IAAMG,kBAAoC,GAAG;EAClD9B,EAAE,EAAE,IAAI;EACR+B,IAAI,EAAE;IACJC,YAAY,EAAE;MACZA,YAAY,EAAE,CAACjC,kBAAkB,CAAC;MAClCkC,UAAU,EAAE;IACd,CAAC;IACDC,SAAS,EAAEC,wBAAiB,CAACC;EAC/B,CAAC;EACDC,SAAS,EAAE,KAAK;EAChBC,UAAU,EAAE;AACd,CAAC;AAACC,OAAA,CAAAT,kBAAA,GAAAA,kBAAA;AAEK,IAAMU,4BAA8C,GAAG;EAC5DxC,EAAE,EAAE,IAAI;EACR+B,IAAI,EAAE;IACJC,YAAY,EAAE;MACZA,YAAY,EAAE,CAACjC,kBAAkB,EAAE6B,kBAAkB,CAAC;MACtDK,UAAU,EAAE;IACd,CAAC;IACDC,SAAS,EAAEC,wBAAiB,CAACC;EAC/B,CAAC;EACDC,SAAS,EAAE,KAAK;EAChBC,UAAU,EAAE;AACd,CAAC;AAACC,OAAA,CAAAC,4BAAA,GAAAA,4BAAA"}
1
+ {"version":3,"names":["_types","require","WEBEX_CALL_SESSION","id","durationSecs","self","name","phoneNumber","url","sessionId","sessionType","SessionType","WEBEX_CALLING","startTime","endTime","direction","disposition","Disposition","INITIATED","other","isPrivate","callbackAddress","durationSeconds","joinedDurationSeconds","participantCount","links","locusUrl","conversationUrl","isDeleted","isPMR","correlationIds","SPARK_CALL_SESSION","SPARK","MOCK_SESSION_EVENT","exports","data","userSessions","statusCode","eventType","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","timestamp","trackingId","MOCK_MULTIPLE_SESSIONS_EVENT"],"sources":["callRecordFixtures.ts"],"sourcesContent":["import {CallSessionEvent, SessionType, Disposition, MOBIUS_EVENT_KEYS} from '../Events/types';\n\nconst WEBEX_CALL_SESSION = {\n id: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n durationSecs: 438,\n self: {\n id: 'a24027e7-9b6e-4047-a950-42f4492148ec',\n name: 'Mark',\n phoneNumber: '123456',\n },\n url: 'https://janus-a.wbx2.com/janus/api/v1/history/userSessions/d74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionId: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionType: SessionType.WEBEX_CALLING,\n startTime: '2022-08-02T10:45:21.565Z',\n endTime: '2022-08-02T10:53:01.624Z',\n direction: 'OUTGOING',\n disposition: Disposition.INITIATED,\n other: {\n id: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n name: 'test',\n isPrivate: false,\n callbackAddress: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n phoneNumber: '123456679',\n },\n durationSeconds: 438,\n joinedDurationSeconds: 457,\n participantCount: 2,\n links: {\n locusUrl: 'https://locus-a.wbx2.com/locus/api/v1/loci/f5dbe4da-663b-3f73-a2fc-3a2fb0f12080',\n conversationUrl:\n 'https://conv-a.wbx2.com/conversation/api/v1/conversations/c9252ff0-9de2-11ec-a582-59d00c02cca9',\n callbackAddress: '123-456-7890',\n },\n\n isDeleted: false,\n isPMR: false,\n correlationIds: ['58ea6cd9-852b-4a77-957f-e704c8b0e63e'],\n};\n\nconst SPARK_CALL_SESSION = {\n id: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n durationSecs: 438,\n self: {\n id: 'a24027e7-9b6e-4047-a950-42f4492148ec',\n name: 'Mark',\n phoneNumber: '123456',\n },\n url: 'https://janus-a.wbx2.com/janus/api/v1/history/userSessions/d74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionId: 'd74d19cc-6aa7-f341-6012-aec433cc6f8d',\n sessionType: SessionType.SPARK,\n startTime: '2022-08-02T10:45:21.565Z',\n endTime: '2022-08-02T10:53:01.624Z',\n direction: 'OUTGOING',\n disposition: Disposition.INITIATED,\n other: {\n id: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n name: 'test',\n isPrivate: false,\n callbackAddress: 'c9bde63c-e3e2-4db4-ba45-0d6c698ffd65',\n phoneNumber: '123456679',\n },\n durationSeconds: 438,\n joinedDurationSeconds: 457,\n participantCount: 2,\n links: {\n locusUrl: 'https://locus-a.wbx2.com/locus/api/v1/loci/f5dbe4da-663b-3f73-a2fc-3a2fb0f12080',\n conversationUrl:\n 'https://conv-a.wbx2.com/conversation/api/v1/conversations/c9252ff0-9de2-11ec-a582-59d00c02cca9',\n callbackAddress: '123-456-7890',\n },\n\n isDeleted: false,\n isPMR: false,\n correlationIds: ['58ea6cd9-852b-4a77-957f-e704c8b0e63e'],\n};\n\nexport const MOCK_SESSION_EVENT: CallSessionEvent = {\n id: 'id',\n data: {\n userSessions: {\n userSessions: [WEBEX_CALL_SESSION],\n statusCode: 0,\n },\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n },\n timestamp: 12345,\n trackingId: 'tracking-id',\n};\n\nexport const MOCK_MULTIPLE_SESSIONS_EVENT: CallSessionEvent = {\n id: 'id',\n data: {\n userSessions: {\n userSessions: [WEBEX_CALL_SESSION, SPARK_CALL_SESSION],\n statusCode: 0,\n },\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n },\n timestamp: 12345,\n trackingId: 'tracking-id',\n};\n"],"mappings":"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"}
@@ -20,7 +20,7 @@ var _common = require("../../../common");
20
20
  /**
21
21
  *
22
22
  */
23
- var CallerId = /*#__PURE__*/function () {
23
+ var CallerId = exports.CallerId = /*#__PURE__*/function () {
24
24
  /**
25
25
  * Start the callerId instance.
26
26
  *
@@ -51,7 +51,7 @@ var CallerId = /*#__PURE__*/function () {
51
51
  */
52
52
  (0, _createClass2.default)(CallerId, [{
53
53
  key: "resolveCallerId",
54
- value: function () {
54
+ value: (function () {
55
55
  var _resolveCallerId = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(filter) {
56
56
  var displayResult, isChanged;
57
57
  return _regenerator.default.wrap(function _callee$(_context) {
@@ -116,9 +116,10 @@ var CallerId = /*#__PURE__*/function () {
116
116
  *
117
117
  * @param data - Entire URI string.
118
118
  */
119
+ )
119
120
  }, {
120
121
  key: "parseRemotePartyInfo",
121
- value: function () {
122
+ value: (function () {
122
123
  var _parseRemotePartyInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(data) {
123
124
  var lastToken, externalId;
124
125
  return _regenerator.default.wrap(function _callee2$(_context2) {
@@ -156,6 +157,7 @@ var CallerId = /*#__PURE__*/function () {
156
157
  * @param paid - Entire sip uri. Can be PA-Id or From header.
157
158
  * @returns - a collection of name and number.
158
159
  */
160
+ )
159
161
  }, {
160
162
  key: "parseSipUri",
161
163
  value: function parseSipUri(paid) {
@@ -259,9 +261,7 @@ var CallerId = /*#__PURE__*/function () {
259
261
  * @param webex -.
260
262
  * @param emitterCb -.
261
263
  */
262
- exports.CallerId = CallerId;
263
- var createCallerId = function createCallerId(webex, emitterCb) {
264
+ var createCallerId = exports.createCallerId = function createCallerId(webex, emitterCb) {
264
265
  return new CallerId(webex, emitterCb);
265
266
  };
266
- exports.createCallerId = createCallerId;
267
267
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_index","_interopRequireDefault","require","_constants","_SDKConnector","_common","CallerId","webex","emitter","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","callerInfo","getWebex","setWebex","_createClass2","key","value","_resolveCallerId","_asyncToGenerator2","_regenerator","mark","_callee","filter","displayResult","isChanged","wrap","_callee$","_context","prev","next","resolveCallerIdDisplay","sent","name","log","info","file","CALLER_ID_FILE","method","num","avatarSrc","id","stop","resolveCallerId","_x","apply","arguments","_parseRemotePartyInfo","_callee2","data","lastToken","externalId","_callee2$","_context2","split","slice","includes","concat","warn","parseRemotePartyInfo","_x2","parseSipUri","paid","result","replace","nameMatch","FETCH_NAME","exec","substring","indexOf","length","trimEnd","phoneMatch","match","VALID_PHONE","fetchCallerDetails","callerId","undefined","from","exports","createCallerId","emitterCb"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\nimport {CallerIdInfo} from '../../../Events/types';\nimport {ISDKConnector, WebexSDK} from '../../../SDKConnector/types';\nimport {DisplayInformation} from '../../../common/types';\nimport log from '../../../Logger/index';\nimport {CALLER_ID_FILE, FETCH_NAME, VALID_PHONE} from '../../constants';\n\nimport SDKConnector from '../../../SDKConnector';\nimport {ICallerId} from './types';\nimport {CallEmitterCallBack} from '../types';\nimport {resolveCallerIdDisplay} from '../../../common';\n\n/**\n *\n */\nexport class CallerId implements ICallerId {\n private webex: WebexSDK;\n\n private callerInfo: DisplayInformation;\n\n private sdkConnector: ISDKConnector;\n\n private emitter: CallEmitterCallBack;\n\n /**\n * Start the callerId instance.\n *\n * @param webex -.\n * @param callObj -.\n * @param emitter -.\n */\n constructor(webex: WebexSDK, emitter: CallEmitterCallBack) {\n this.sdkConnector = SDKConnector;\n this.callerInfo = {} as DisplayInformation;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.emitter = emitter;\n }\n\n /**\n * The handler which processes the data received from the SCIM query\n * performed through externalId.\n *\n * @param filter - A filter to be used for query.\n */\n private async resolveCallerId(filter: string) {\n const displayResult = (await resolveCallerIdDisplay(filter)) as DisplayInformation;\n let isChanged = false;\n\n /* It makes sense to emit only if the resolution gives different results than what we already have.\n * Note that results gathered from the SCIM Query is always given preference.\n */\n if (displayResult.name && this.callerInfo.name !== displayResult.name) {\n log.info('Updating Name after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.name = displayResult.name;\n isChanged = true;\n }\n\n if (displayResult.num && this.callerInfo.num !== displayResult.num) {\n log.info('Updating Number after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.num = displayResult.num;\n isChanged = true;\n }\n\n if (!this.callerInfo.avatarSrc || this.callerInfo.avatarSrc !== displayResult.avatarSrc) {\n log.info('Updating Avatar Id after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.avatarSrc = displayResult.avatarSrc;\n isChanged = true;\n }\n\n if (!this.callerInfo.id || this.callerInfo.id !== displayResult.id) {\n log.info('Updating User Id after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.id = displayResult.id;\n isChanged = true;\n }\n\n if (isChanged) {\n this.emitter(this.callerInfo);\n }\n }\n\n /**\n * Remote party Id parser.\n *\n * @param data - Entire URI string.\n */\n private async parseRemotePartyInfo(data: string) {\n /* External Id will be the last token if at all it exists */\n const lastToken = data.split(';').slice(-1)[0];\n\n if (lastToken.includes('externalId')) {\n const externalId = lastToken.split('=')[1];\n\n log.info(`externalId retrieved: ${externalId}`, {\n file: CALLER_ID_FILE,\n method: 'parseRemotePartyInfo',\n });\n\n this.resolveCallerId(`id eq \"${externalId}\"`);\n } else {\n log.warn(`externalId not found!`, {\n file: CALLER_ID_FILE,\n method: 'parseRemotePartyInfo',\n });\n }\n }\n\n /**\n * Parser for SIP Uris.\n *\n * @param paid - Entire sip uri. Can be PA-Id or From header.\n * @returns - a collection of name and number.\n */\n private parseSipUri(paid: string) {\n const result = {} as DisplayInformation;\n\n const data = paid.split('@')[0].replace(/\"/g, '');\n\n const nameMatch = FETCH_NAME.exec(data);\n\n const num = data.substring(data.indexOf(':') + 1, data.length);\n\n if (nameMatch) {\n result.name = nameMatch[0].trimEnd();\n } else {\n log.warn(`Name field not found!`, {\n file: CALLER_ID_FILE,\n method: 'parseSipUri',\n });\n }\n\n const phoneMatch = num.match(VALID_PHONE);\n\n if (phoneMatch && phoneMatch[0].length === num.length) {\n result.num = num;\n } else {\n log.warn(`Number field not found!`, {\n file: CALLER_ID_FILE,\n method: 'parseSipUri',\n });\n }\n\n return result;\n }\n\n /**\n * The main entrypoint of the Caller-Id instance.\n * It returns intermediate name and number and starts the\n * caller Id resolution in background.\n *\n * @param callerId - CallerId data passed to us by Call Instance.\n * @returns - A collection of name and number.\n */\n public fetchCallerDetails(callerId: CallerIdInfo) {\n /* resetting previously set fields */\n this.callerInfo.id = undefined;\n this.callerInfo.avatarSrc = undefined;\n this.callerInfo.name = undefined;\n this.callerInfo.num = undefined;\n\n if ('p-asserted-identity' in callerId) {\n log.info('Parsing p-asserted-identity within remote party information', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n const result = this.parseSipUri(callerId['p-asserted-identity'] as string);\n\n /* For P-Asserted-Identity, we update the callerInfo blindly, as it is of highest preference */\n this.callerInfo.name = result.name;\n this.callerInfo.num = result.num;\n }\n\n if (callerId.from) {\n log.info('Parsing from header within the remote party information', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n\n const result = this.parseSipUri(callerId.from);\n\n /* For From header , we should only update if not filled already by P-Asserted-Identity */\n if (!this.callerInfo.name && result.name) {\n log.info('Updating name field from From header', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n this.callerInfo.name = result.name;\n }\n\n if (!this.callerInfo.num && result.num) {\n log.info('Updating number field from From header', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n this.callerInfo.num = result.num;\n }\n }\n\n /* Emit the intermediate CallerId */\n\n if (this.callerInfo.name || this.callerInfo.num) {\n this.emitter(this.callerInfo);\n }\n\n /* We need to parse x-broadworks-remote-party-info if present asynchronously */\n if ('x-broadworks-remote-party-info' in callerId) {\n log.info('Parsing x-broadworks-remote-party-info within remote party information', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n\n this.parseRemotePartyInfo(callerId['x-broadworks-remote-party-info'] as string);\n }\n\n return this.callerInfo;\n }\n}\n\n/**\n * To create CallerId instance.\n *\n * @param webex -.\n * @param emitterCb -.\n */\nexport const createCallerId = (webex: WebexSDK, emitterCb: CallEmitterCallBack): ICallerId =>\n new CallerId(webex, emitterCb);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_index","_interopRequireDefault","require","_constants","_SDKConnector","_common","CallerId","exports","webex","emitter","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","callerInfo","getWebex","setWebex","_createClass2","key","value","_resolveCallerId","_asyncToGenerator2","_regenerator","mark","_callee","filter","displayResult","isChanged","wrap","_callee$","_context","prev","next","resolveCallerIdDisplay","sent","name","log","info","file","CALLER_ID_FILE","method","num","avatarSrc","id","stop","resolveCallerId","_x","apply","arguments","_parseRemotePartyInfo","_callee2","data","lastToken","externalId","_callee2$","_context2","split","slice","includes","concat","warn","parseRemotePartyInfo","_x2","parseSipUri","paid","result","replace","nameMatch","FETCH_NAME","exec","substring","indexOf","length","trimEnd","phoneMatch","match","VALID_PHONE","fetchCallerDetails","callerId","undefined","from","createCallerId","emitterCb"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\nimport {CallerIdInfo} from '../../../Events/types';\nimport {ISDKConnector, WebexSDK} from '../../../SDKConnector/types';\nimport {DisplayInformation} from '../../../common/types';\nimport log from '../../../Logger/index';\nimport {CALLER_ID_FILE, FETCH_NAME, VALID_PHONE} from '../../constants';\n\nimport SDKConnector from '../../../SDKConnector';\nimport {ICallerId} from './types';\nimport {CallEmitterCallBack} from '../types';\nimport {resolveCallerIdDisplay} from '../../../common';\n\n/**\n *\n */\nexport class CallerId implements ICallerId {\n private webex: WebexSDK;\n\n private callerInfo: DisplayInformation;\n\n private sdkConnector: ISDKConnector;\n\n private emitter: CallEmitterCallBack;\n\n /**\n * Start the callerId instance.\n *\n * @param webex -.\n * @param callObj -.\n * @param emitter -.\n */\n constructor(webex: WebexSDK, emitter: CallEmitterCallBack) {\n this.sdkConnector = SDKConnector;\n this.callerInfo = {} as DisplayInformation;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.emitter = emitter;\n }\n\n /**\n * The handler which processes the data received from the SCIM query\n * performed through externalId.\n *\n * @param filter - A filter to be used for query.\n */\n private async resolveCallerId(filter: string) {\n const displayResult = (await resolveCallerIdDisplay(filter)) as DisplayInformation;\n let isChanged = false;\n\n /* It makes sense to emit only if the resolution gives different results than what we already have.\n * Note that results gathered from the SCIM Query is always given preference.\n */\n if (displayResult.name && this.callerInfo.name !== displayResult.name) {\n log.info('Updating Name after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.name = displayResult.name;\n isChanged = true;\n }\n\n if (displayResult.num && this.callerInfo.num !== displayResult.num) {\n log.info('Updating Number after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.num = displayResult.num;\n isChanged = true;\n }\n\n if (!this.callerInfo.avatarSrc || this.callerInfo.avatarSrc !== displayResult.avatarSrc) {\n log.info('Updating Avatar Id after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.avatarSrc = displayResult.avatarSrc;\n isChanged = true;\n }\n\n if (!this.callerInfo.id || this.callerInfo.id !== displayResult.id) {\n log.info('Updating User Id after resolution', {\n file: CALLER_ID_FILE,\n method: 'resolveCallerId',\n });\n this.callerInfo.id = displayResult.id;\n isChanged = true;\n }\n\n if (isChanged) {\n this.emitter(this.callerInfo);\n }\n }\n\n /**\n * Remote party Id parser.\n *\n * @param data - Entire URI string.\n */\n private async parseRemotePartyInfo(data: string) {\n /* External Id will be the last token if at all it exists */\n const lastToken = data.split(';').slice(-1)[0];\n\n if (lastToken.includes('externalId')) {\n const externalId = lastToken.split('=')[1];\n\n log.info(`externalId retrieved: ${externalId}`, {\n file: CALLER_ID_FILE,\n method: 'parseRemotePartyInfo',\n });\n\n this.resolveCallerId(`id eq \"${externalId}\"`);\n } else {\n log.warn(`externalId not found!`, {\n file: CALLER_ID_FILE,\n method: 'parseRemotePartyInfo',\n });\n }\n }\n\n /**\n * Parser for SIP Uris.\n *\n * @param paid - Entire sip uri. Can be PA-Id or From header.\n * @returns - a collection of name and number.\n */\n private parseSipUri(paid: string) {\n const result = {} as DisplayInformation;\n\n const data = paid.split('@')[0].replace(/\"/g, '');\n\n const nameMatch = FETCH_NAME.exec(data);\n\n const num = data.substring(data.indexOf(':') + 1, data.length);\n\n if (nameMatch) {\n result.name = nameMatch[0].trimEnd();\n } else {\n log.warn(`Name field not found!`, {\n file: CALLER_ID_FILE,\n method: 'parseSipUri',\n });\n }\n\n const phoneMatch = num.match(VALID_PHONE);\n\n if (phoneMatch && phoneMatch[0].length === num.length) {\n result.num = num;\n } else {\n log.warn(`Number field not found!`, {\n file: CALLER_ID_FILE,\n method: 'parseSipUri',\n });\n }\n\n return result;\n }\n\n /**\n * The main entrypoint of the Caller-Id instance.\n * It returns intermediate name and number and starts the\n * caller Id resolution in background.\n *\n * @param callerId - CallerId data passed to us by Call Instance.\n * @returns - A collection of name and number.\n */\n public fetchCallerDetails(callerId: CallerIdInfo) {\n /* resetting previously set fields */\n this.callerInfo.id = undefined;\n this.callerInfo.avatarSrc = undefined;\n this.callerInfo.name = undefined;\n this.callerInfo.num = undefined;\n\n if ('p-asserted-identity' in callerId) {\n log.info('Parsing p-asserted-identity within remote party information', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n const result = this.parseSipUri(callerId['p-asserted-identity'] as string);\n\n /* For P-Asserted-Identity, we update the callerInfo blindly, as it is of highest preference */\n this.callerInfo.name = result.name;\n this.callerInfo.num = result.num;\n }\n\n if (callerId.from) {\n log.info('Parsing from header within the remote party information', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n\n const result = this.parseSipUri(callerId.from);\n\n /* For From header , we should only update if not filled already by P-Asserted-Identity */\n if (!this.callerInfo.name && result.name) {\n log.info('Updating name field from From header', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n this.callerInfo.name = result.name;\n }\n\n if (!this.callerInfo.num && result.num) {\n log.info('Updating number field from From header', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n this.callerInfo.num = result.num;\n }\n }\n\n /* Emit the intermediate CallerId */\n\n if (this.callerInfo.name || this.callerInfo.num) {\n this.emitter(this.callerInfo);\n }\n\n /* We need to parse x-broadworks-remote-party-info if present asynchronously */\n if ('x-broadworks-remote-party-info' in callerId) {\n log.info('Parsing x-broadworks-remote-party-info within remote party information', {\n file: CALLER_ID_FILE,\n method: 'fetchCallerDetails',\n });\n\n this.parseRemotePartyInfo(callerId['x-broadworks-remote-party-info'] as string);\n }\n\n return this.callerInfo;\n }\n}\n\n/**\n * To create CallerId instance.\n *\n * @param webex -.\n * @param emitterCb -.\n */\nexport const createCallerId = (webex: WebexSDK, emitterCb: CallEmitterCallBack): ICallerId =>\n new CallerId(webex, emitterCb);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_testUtil","require","_","_Logger","_interopRequireDefault","waitForMsecs","msec","_promise","default","resolve","setTimeout","webex","getTestUtilsWebex","describe","dummyAvatar","dummyScimResponse","totalResults","itemsPerPage","startIndex","schemas","Resources","userName","emails","primary","type","value","name","givenName","familyName","phoneNumbers","entitlements","cisSyncSource","photos","id","meta","created","lastModified","lastLoginTime","version","location","organizationID","creator","modifier","displayName","active","licenseID","userSettings","sipAddresses","isTeamsOnJabberEnabled","isUCCallOnJabberEnabled","userType","mfaEnabled","teamsClusterId","request","mockResolvedValue","statusCode","body","callerId","it","createCallerId","log","expect","toBeTruthy","_asyncToGenerator2","_regenerator","mark","_callee","dummyCallerId","output","wrap","_callee$","_context","prev","next","from","fetchCallerDetails","toStrictEqual","num","avatarSrc","stop","_callee2","_callee2$","_context2","_callee3","_callee3$","_context3","_callee4","_callee4$","_context4","_callee5","_callee5$","_context5","toBeFalsy","_callee6","warnSpy","_callee6$","_context6","mockRejectedValue","jest","spyOn","toHaveBeenCalledWith","file","method","toBe","undefined"],"sources":["index.test.ts"],"sourcesContent":["/* eslint-disable dot-notation */\nimport {DisplayInformation} from '../../../common/types';\nimport {getTestUtilsWebex} from '../../../common/testUtil';\nimport {createCallerId} from '.';\nimport log from '../../../Logger';\nimport {ICallerId} from './types';\n\nconst waitForMsecs = (msec: number) =>\n new Promise((resolve) => {\n setTimeout(resolve, msec);\n });\n\nconst webex = getTestUtilsWebex();\n\ndescribe('CallerId tests', () => {\n const dummyAvatar =\n 'https://avatar-int-us-east-1.webexcontent.com/Avtr~V1~1704d30d-a131-4bc7-9449-948487643793/V1~bf911e86a1561896d7d0053b46a8d0c9ed82a7bc434a1f84621c2c45cc825f37~3720694b1e4340818a3d12d70eb2b6e1~80';\n\n const dummyScimResponse = {\n totalResults: '1',\n itemsPerPage: '1',\n startIndex: '1',\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\n Resources: [\n {\n userName: 'atlas.test.wxcwebrtc+user8@gmail.com',\n emails: [\n {\n primary: true,\n type: 'work',\n value: 'atlas.test.wxcwebrtc+user8@gmail.com',\n },\n ],\n name: {\n givenName: 'Cathy',\n familyName: 'James',\n },\n phoneNumbers: [\n {\n primary: true,\n type: 'work',\n value: '5008',\n },\n ],\n entitlements: [\n 'basic-meeting',\n 'basic-message',\n 'bc-sp-standard',\n 'screen-share',\n 'spark',\n 'spark-test-account',\n 'squared-call-initiation',\n 'webex-squared',\n ],\n cisSyncSource: 'SCIM',\n photos: [\n {\n type: 'photo',\n value: dummyAvatar,\n },\n {\n type: 'thumbnail',\n value: dummyAvatar,\n },\n ],\n id: '652fe0c7-05ce-4acd-8bda-9a080830187f',\n meta: {\n created: '2022-03-16T16:13:53.847Z',\n lastModified: '2022-05-31T14:39:12.782Z',\n lastLoginTime: '2022-05-31T14:39:12.780Z',\n version: 'W/\"66025591113\"',\n location:\n 'https://identitybts.webex.com/identity/scim/1704d30d-a131-4bc7-9449-948487643793/v1/Users/652fe0c7-05ce-4acd-8bda-9a080830187f',\n organizationID: '1704d30d-a131-4bc7-9449-948487643793',\n creator: '97fe25e3-d3e8-400e-856b-5b0cd5b0c790',\n modifier: '8c7abf2f-0c8e-49cf-b8e4-693d4ec7daee',\n },\n displayName: 'Cathy',\n active: true,\n licenseID: ['BCSTD_8c81f40c-e848-484e-8ca8-0fb6dabc75a5'],\n userSettings: ['{\"spark.signUpDate\":\"1648547902173\"}', '{\"user-origin\":\"admin-invited\"}'],\n sipAddresses: [\n {\n type: 'cloud-calling',\n value: 'atlas.test.wxcwebrtc+user8@webrtcmobius.call.wbx2.com',\n primary: true,\n },\n ],\n isTeamsOnJabberEnabled: false,\n isUCCallOnJabberEnabled: false,\n userType: 'user',\n mfaEnabled: false,\n teamsClusterId: 'urn:TEAM:us-east-1_int13',\n },\n ],\n };\n\n webex.request.mockResolvedValue({\n statusCode: 200,\n body: dummyScimResponse,\n });\n\n let callerId: ICallerId;\n\n it('create callerId Object', () => {\n callerId = createCallerId(webex, () => log.log('dummy print', {}));\n expect(callerId).toBeTruthy();\n });\n\n /* Follow tests will follow different combinations of the headers.\n * We will check whether the priority order is followed or not.\n */\n it(' When PA-ID, From header is present along with x-broad-works, ', async () => {\n const dummyCallerId = {\n 'x-broadworks-remote-party-info':\n 'userId=\"nkjwuovmbo@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865888;ext=5888;country-code=1\";externalId=69fde5ad-fb8b-4a1b-9998-b0999e95719b',\n 'p-asserted-identity': '\"Bob Marley\" <sip:5888@10.155.4.7;user=phone>',\n from: '\"Alice\" <sip:5889@64941297.int10.bcld.webex.com>;tag=1932136170-1654008881246',\n };\n\n const output = callerId.fetchCallerDetails(dummyCallerId);\n\n /* PAI should be preferred */\n expect(output.name).toStrictEqual('Bob Marley');\n expect(output.num).toStrictEqual('5888');\n await waitForMsecs(50);\n\n /* Should be overwritten by x-broadworks */\n expect(callerId['callerInfo'].avatarSrc).toStrictEqual(dummyAvatar);\n expect(callerId['callerInfo'].id).toStrictEqual(dummyScimResponse.Resources[0].id);\n expect(callerId['callerInfo'].name).toStrictEqual('Cathy');\n expect(callerId['callerInfo'].num).toStrictEqual('5008');\n });\n\n it(' When PA-ID ,From header is present along with x-broad-works , but name in PAI is of wrong format', async () => {\n const dummyCallerId = {\n 'x-broadworks-remote-party-info':\n 'userId=\"nkjwuovmbo@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865888;ext=5888;country-code=1\";externalId=69fde5ad-fb8b-4a1b-9998-b0999e95719b',\n 'p-asserted-identity':\n '\"69fde5ad-fb8b-4a1b-9998-b0999e95719b\" <sip:5888@10.155.4.7;user=phone>',\n from: '\"Alice\" <sip:5889@64941297.int10.bcld.webex.com>;tag=1932136170-1654008881246',\n };\n\n callerId['callerInfo'] = {} as DisplayInformation;\n const output = callerId.fetchCallerDetails(dummyCallerId);\n\n /* PAI name is ignored and From's name should be taken, but number is taken from PAI */\n expect(output.name).toStrictEqual('Alice');\n expect(output.num).toStrictEqual('5888');\n await waitForMsecs(50);\n\n /* Should be overwritten by x-broadworks */\n expect(callerId['callerInfo'].avatarSrc).toStrictEqual(dummyAvatar);\n expect(callerId['callerInfo'].id).toStrictEqual(dummyScimResponse.Resources[0].id);\n expect(callerId['callerInfo'].name).toStrictEqual('Cathy');\n expect(callerId['callerInfo'].num).toStrictEqual('5008');\n });\n\n it(' When PA-ID ,From header is present along with x-broad-works , but name in PAI is of wrong format', async () => {\n const dummyCallerId = {\n 'x-broadworks-remote-party-info':\n 'userId=\"nkjwuovmbo@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865888;ext=5888;country-code=1\";externalId=69fde5ad-fb8b-4a1b-9998-b0999e95719b',\n 'p-asserted-identity':\n '\"69fde5ad-fb8b-4a1b-9998-b0999e95719b\" <sip:69fde5ad-fb8b-4a1b-9998-b0999e95719b@10.155.4.7;user=phone>',\n from: '\"Alice\" <sip:5889@64941297.int10.bcld.webex.com>;tag=1932136170-1654008881246',\n };\n\n callerId['callerInfo'] = {} as DisplayInformation;\n const output = callerId.fetchCallerDetails(dummyCallerId);\n\n /* PAI name and number is ignored and From's name, number should be taken */\n expect(output.name).toStrictEqual('Alice');\n expect(output.num).toStrictEqual('5889');\n await waitForMsecs(50);\n\n /* Should be overwritten by x-broadworks */\n expect(callerId['callerInfo'].avatarSrc).toStrictEqual(dummyAvatar);\n expect(callerId['callerInfo'].id).toStrictEqual(dummyScimResponse.Resources[0].id);\n expect(callerId['callerInfo'].name).toStrictEqual('Cathy');\n expect(callerId['callerInfo'].num).toStrictEqual('5008');\n });\n\n it(' When PA-ID is present but From header is absent', async () => {\n const dummyCallerId = {\n 'x-broadworks-remote-party-info':\n 'userId=\"nkjwuovmbo@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865888;ext=5888;country-code=1\";externalId=69fde5ad-fb8b-4a1b-9998-b0999e95719b',\n 'p-asserted-identity': '\"Bob Marley\" <sip:5888@10.155.4.7;user=phone>',\n };\n\n callerId['callerInfo'] = {} as DisplayInformation;\n const output = callerId.fetchCallerDetails(dummyCallerId);\n\n /* PAI name and number is taken */\n expect(output.name).toStrictEqual('Bob Marley');\n expect(output.num).toStrictEqual('5888');\n await waitForMsecs(50);\n\n /* Should be overwritten by x-broadworks */\n expect(callerId['callerInfo'].avatarSrc).toStrictEqual(dummyAvatar);\n expect(callerId['callerInfo'].id).toStrictEqual(dummyScimResponse.Resources[0].id);\n expect(callerId['callerInfo'].name).toStrictEqual('Cathy');\n expect(callerId['callerInfo'].num).toStrictEqual('5008');\n });\n\n it(' When PA-ID, From header is present but x-broad-works does not have externalId, ', async () => {\n const dummyCallerId = {\n 'x-broadworks-remote-party-info':\n 'userId=\"nkjwuovmbo@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865888;ext=5888;country-code=1\";',\n 'p-asserted-identity': '\"Bob Marley\" <sip:5888@10.155.4.7;user=phone>',\n from: '\"Alice\" <sip:5889@64941297.int10.bcld.webex.com>;tag=1932136170-1654008881246',\n };\n\n callerId['callerInfo'] = {} as DisplayInformation;\n const output = callerId.fetchCallerDetails(dummyCallerId);\n\n /* PAI should be preferred */\n expect(output.name).toStrictEqual('Bob Marley');\n expect(output.num).toStrictEqual('5888');\n await waitForMsecs(50);\n\n /* Since x-broadworks is not present , intermediary details should be retained */\n expect(callerId['callerInfo'].avatarSrc).toBeFalsy();\n expect(callerId['callerInfo'].id).toBeFalsy();\n expect(callerId['callerInfo'].name).toStrictEqual('Bob Marley');\n expect(callerId['callerInfo'].num).toStrictEqual('5888');\n });\n\n it(' When PA-ID, From header is present along with x-broad-works but SCIM query fails, ', async () => {\n const dummyCallerId = {\n 'x-broadworks-remote-party-info':\n 'userId=\"nkjwuovmbo@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865888;ext=5888;country-code=1\";externalId=69fde5ad-fb8b-4a1b-9998-b0999e95719b',\n 'p-asserted-identity': '\"Bob Marley\" <sip:5888@10.155.4.7;user=phone>',\n from: '\"Alice\" <sip:5889@64941297.int10.bcld.webex.com>;tag=1932136170-1654008881246',\n };\n\n webex.request.mockRejectedValue({\n statusCode: 404,\n body: dummyScimResponse,\n });\n\n const warnSpy = jest.spyOn(log, 'warn');\n const output = callerId.fetchCallerDetails(dummyCallerId);\n\n /* PAI should be preferred */\n expect(output.name).toStrictEqual('Bob Marley');\n expect(output.num).toStrictEqual('5888');\n await waitForMsecs(50);\n\n expect(warnSpy).toHaveBeenCalledWith('Error response: - 404', {\n file: 'utils',\n method: 'resolveCallerIdDisplay',\n });\n\n /* Should not be overwritten by x-broadworks */\n expect(callerId['callerInfo'].avatarSrc).toBe(undefined);\n expect(callerId['callerInfo'].id).toBe(undefined);\n expect(callerId['callerInfo'].name).toStrictEqual('Bob Marley');\n expect(callerId['callerInfo'].num).toStrictEqual('5888');\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_testUtil","require","_","_Logger","_interopRequireDefault","waitForMsecs","msec","_promise","default","resolve","setTimeout","webex","getTestUtilsWebex","describe","dummyAvatar","dummyScimResponse","totalResults","itemsPerPage","startIndex","schemas","Resources","userName","emails","primary","type","value","name","givenName","familyName","phoneNumbers","entitlements","cisSyncSource","photos","id","meta","created","lastModified","lastLoginTime","version","location","organizationID","creator","modifier","displayName","active","licenseID","userSettings","sipAddresses","isTeamsOnJabberEnabled","isUCCallOnJabberEnabled","userType","mfaEnabled","teamsClusterId","request","mockResolvedValue","statusCode","body","callerId","it","createCallerId","log","expect","toBeTruthy","_asyncToGenerator2","_regenerator","mark","_callee","dummyCallerId","output","wrap","_callee$","_context","prev","next","from","fetchCallerDetails","toStrictEqual","num","avatarSrc","stop","_callee2","_callee2$","_context2","_callee3","_callee3$","_context3","_callee4","_callee4$","_context4","_callee5","_callee5$","_context5","toBeFalsy","_callee6","warnSpy","_callee6$","_context6","mockRejectedValue","jest","spyOn","toHaveBeenCalledWith","file","method","toBe","undefined"],"sources":["index.test.ts"],"sourcesContent":["/* eslint-disable dot-notation */\nimport {DisplayInformation} from '../../../common/types';\nimport {getTestUtilsWebex} from '../../../common/testUtil';\nimport {createCallerId} from '.';\nimport log from '../../../Logger';\nimport {ICallerId} from './types';\n\nconst waitForMsecs = (msec: number) =>\n new Promise((resolve) => {\n setTimeout(resolve, msec);\n });\n\nconst webex = getTestUtilsWebex();\n\ndescribe('CallerId tests', () => {\n const dummyAvatar =\n 'https://avatar-int-us-east-1.webexcontent.com/Avtr~V1~1704d30d-a131-4bc7-9449-948487643793/V1~bf911e86a1561896d7d0053b46a8d0c9ed82a7bc434a1f84621c2c45cc825f37~3720694b1e4340818a3d12d70eb2b6e1~80';\n\n const dummyScimResponse = {\n totalResults: '1',\n itemsPerPage: '1',\n startIndex: '1',\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\n Resources: [\n {\n userName: 'atlas.test.wxcwebrtc+user8@gmail.com',\n emails: [\n {\n primary: true,\n type: 'work',\n value: 'atlas.test.wxcwebrtc+user8@gmail.com',\n },\n ],\n name: {\n givenName: 'Cathy',\n familyName: 'James',\n },\n phoneNumbers: [\n {\n primary: true,\n type: 'work',\n value: '5008',\n },\n ],\n entitlements: [\n 'basic-meeting',\n 'basic-message',\n 'bc-sp-standard',\n 'screen-share',\n 'spark',\n 'spark-test-account',\n 'squared-call-initiation',\n 'webex-squared',\n ],\n cisSyncSource: 'SCIM',\n photos: [\n {\n type: 'photo',\n value: dummyAvatar,\n },\n {\n type: 'thumbnail',\n value: dummyAvatar,\n },\n ],\n id: '652fe0c7-05ce-4acd-8bda-9a080830187f',\n meta: {\n created: '2022-03-16T16:13:53.847Z',\n lastModified: '2022-05-31T14:39:12.782Z',\n lastLoginTime: '2022-05-31T14:39:12.780Z',\n version: 'W/\"66025591113\"',\n location:\n 'https://identitybts.webex.com/identity/scim/1704d30d-a131-4bc7-9449-948487643793/v1/Users/652fe0c7-05ce-4acd-8bda-9a080830187f',\n organizationID: '1704d30d-a131-4bc7-9449-948487643793',\n creator: '97fe25e3-d3e8-400e-856b-5b0cd5b0c790',\n modifier: '8c7abf2f-0c8e-49cf-b8e4-693d4ec7daee',\n },\n displayName: 'Cathy',\n active: true,\n licenseID: ['BCSTD_8c81f40c-e848-484e-8ca8-0fb6dabc75a5'],\n userSettings: ['{\"spark.signUpDate\":\"1648547902173\"}', '{\"user-origin\":\"admin-invited\"}'],\n sipAddresses: [\n {\n type: 'cloud-calling',\n value: 'atlas.test.wxcwebrtc+user8@webrtcmobius.call.wbx2.com',\n primary: true,\n },\n ],\n isTeamsOnJabberEnabled: false,\n isUCCallOnJabberEnabled: false,\n userType: 'user',\n mfaEnabled: false,\n teamsClusterId: 'urn:TEAM:us-east-1_int13',\n },\n ],\n };\n\n webex.request.mockResolvedValue({\n statusCode: 200,\n body: dummyScimResponse,\n });\n\n let callerId: ICallerId;\n\n it('create callerId Object', () => {\n callerId = createCallerId(webex, () => log.log('dummy print', {}));\n expect(callerId).toBeTruthy();\n });\n\n /* Follow tests will follow different combinations of the headers.\n * We will check whether the priority order is followed or not.\n */\n it(' When PA-ID, From header is present along with x-broad-works, ', async () => {\n const dummyCallerId = {\n 'x-broadworks-remote-party-info':\n 'userId=\"nkjwuovmbo@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865888;ext=5888;country-code=1\";externalId=69fde5ad-fb8b-4a1b-9998-b0999e95719b',\n 'p-asserted-identity': '\"Bob Marley\" <sip:5888@10.155.4.7;user=phone>',\n from: '\"Alice\" <sip:5889@64941297.int10.bcld.webex.com>;tag=1932136170-1654008881246',\n };\n\n const output = callerId.fetchCallerDetails(dummyCallerId);\n\n /* PAI should be preferred */\n expect(output.name).toStrictEqual('Bob Marley');\n expect(output.num).toStrictEqual('5888');\n await waitForMsecs(50);\n\n /* Should be overwritten by x-broadworks */\n expect(callerId['callerInfo'].avatarSrc).toStrictEqual(dummyAvatar);\n expect(callerId['callerInfo'].id).toStrictEqual(dummyScimResponse.Resources[0].id);\n expect(callerId['callerInfo'].name).toStrictEqual('Cathy');\n expect(callerId['callerInfo'].num).toStrictEqual('5008');\n });\n\n it(' When PA-ID ,From header is present along with x-broad-works , but name in PAI is of wrong format', async () => {\n const dummyCallerId = {\n 'x-broadworks-remote-party-info':\n 'userId=\"nkjwuovmbo@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865888;ext=5888;country-code=1\";externalId=69fde5ad-fb8b-4a1b-9998-b0999e95719b',\n 'p-asserted-identity':\n '\"69fde5ad-fb8b-4a1b-9998-b0999e95719b\" <sip:5888@10.155.4.7;user=phone>',\n from: '\"Alice\" <sip:5889@64941297.int10.bcld.webex.com>;tag=1932136170-1654008881246',\n };\n\n callerId['callerInfo'] = {} as DisplayInformation;\n const output = callerId.fetchCallerDetails(dummyCallerId);\n\n /* PAI name is ignored and From's name should be taken, but number is taken from PAI */\n expect(output.name).toStrictEqual('Alice');\n expect(output.num).toStrictEqual('5888');\n await waitForMsecs(50);\n\n /* Should be overwritten by x-broadworks */\n expect(callerId['callerInfo'].avatarSrc).toStrictEqual(dummyAvatar);\n expect(callerId['callerInfo'].id).toStrictEqual(dummyScimResponse.Resources[0].id);\n expect(callerId['callerInfo'].name).toStrictEqual('Cathy');\n expect(callerId['callerInfo'].num).toStrictEqual('5008');\n });\n\n it(' When PA-ID ,From header is present along with x-broad-works , but name in PAI is of wrong format', async () => {\n const dummyCallerId = {\n 'x-broadworks-remote-party-info':\n 'userId=\"nkjwuovmbo@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865888;ext=5888;country-code=1\";externalId=69fde5ad-fb8b-4a1b-9998-b0999e95719b',\n 'p-asserted-identity':\n '\"69fde5ad-fb8b-4a1b-9998-b0999e95719b\" <sip:69fde5ad-fb8b-4a1b-9998-b0999e95719b@10.155.4.7;user=phone>',\n from: '\"Alice\" <sip:5889@64941297.int10.bcld.webex.com>;tag=1932136170-1654008881246',\n };\n\n callerId['callerInfo'] = {} as DisplayInformation;\n const output = callerId.fetchCallerDetails(dummyCallerId);\n\n /* PAI name and number is ignored and From's name, number should be taken */\n expect(output.name).toStrictEqual('Alice');\n expect(output.num).toStrictEqual('5889');\n await waitForMsecs(50);\n\n /* Should be overwritten by x-broadworks */\n expect(callerId['callerInfo'].avatarSrc).toStrictEqual(dummyAvatar);\n expect(callerId['callerInfo'].id).toStrictEqual(dummyScimResponse.Resources[0].id);\n expect(callerId['callerInfo'].name).toStrictEqual('Cathy');\n expect(callerId['callerInfo'].num).toStrictEqual('5008');\n });\n\n it(' When PA-ID is present but From header is absent', async () => {\n const dummyCallerId = {\n 'x-broadworks-remote-party-info':\n 'userId=\"nkjwuovmbo@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865888;ext=5888;country-code=1\";externalId=69fde5ad-fb8b-4a1b-9998-b0999e95719b',\n 'p-asserted-identity': '\"Bob Marley\" <sip:5888@10.155.4.7;user=phone>',\n };\n\n callerId['callerInfo'] = {} as DisplayInformation;\n const output = callerId.fetchCallerDetails(dummyCallerId);\n\n /* PAI name and number is taken */\n expect(output.name).toStrictEqual('Bob Marley');\n expect(output.num).toStrictEqual('5888');\n await waitForMsecs(50);\n\n /* Should be overwritten by x-broadworks */\n expect(callerId['callerInfo'].avatarSrc).toStrictEqual(dummyAvatar);\n expect(callerId['callerInfo'].id).toStrictEqual(dummyScimResponse.Resources[0].id);\n expect(callerId['callerInfo'].name).toStrictEqual('Cathy');\n expect(callerId['callerInfo'].num).toStrictEqual('5008');\n });\n\n it(' When PA-ID, From header is present but x-broad-works does not have externalId, ', async () => {\n const dummyCallerId = {\n 'x-broadworks-remote-party-info':\n 'userId=\"nkjwuovmbo@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865888;ext=5888;country-code=1\";',\n 'p-asserted-identity': '\"Bob Marley\" <sip:5888@10.155.4.7;user=phone>',\n from: '\"Alice\" <sip:5889@64941297.int10.bcld.webex.com>;tag=1932136170-1654008881246',\n };\n\n callerId['callerInfo'] = {} as DisplayInformation;\n const output = callerId.fetchCallerDetails(dummyCallerId);\n\n /* PAI should be preferred */\n expect(output.name).toStrictEqual('Bob Marley');\n expect(output.num).toStrictEqual('5888');\n await waitForMsecs(50);\n\n /* Since x-broadworks is not present , intermediary details should be retained */\n expect(callerId['callerInfo'].avatarSrc).toBeFalsy();\n expect(callerId['callerInfo'].id).toBeFalsy();\n expect(callerId['callerInfo'].name).toStrictEqual('Bob Marley');\n expect(callerId['callerInfo'].num).toStrictEqual('5888');\n });\n\n it(' When PA-ID, From header is present along with x-broad-works but SCIM query fails, ', async () => {\n const dummyCallerId = {\n 'x-broadworks-remote-party-info':\n 'userId=\"nkjwuovmbo@64941297.int10.bcld.webex.com\";userDn=\"tel:+12142865888;ext=5888;country-code=1\";externalId=69fde5ad-fb8b-4a1b-9998-b0999e95719b',\n 'p-asserted-identity': '\"Bob Marley\" <sip:5888@10.155.4.7;user=phone>',\n from: '\"Alice\" <sip:5889@64941297.int10.bcld.webex.com>;tag=1932136170-1654008881246',\n };\n\n webex.request.mockRejectedValue({\n statusCode: 404,\n body: dummyScimResponse,\n });\n\n const warnSpy = jest.spyOn(log, 'warn');\n const output = callerId.fetchCallerDetails(dummyCallerId);\n\n /* PAI should be preferred */\n expect(output.name).toStrictEqual('Bob Marley');\n expect(output.num).toStrictEqual('5888');\n await waitForMsecs(50);\n\n expect(warnSpy).toHaveBeenCalledWith('Error response: - 404', {\n file: 'utils',\n method: 'resolveCallerIdDisplay',\n });\n\n /* Should not be overwritten by x-broadworks */\n expect(callerId['callerInfo'].avatarSrc).toBe(undefined);\n expect(callerId['callerInfo'].id).toBe(undefined);\n expect(callerId['callerInfo'].name).toStrictEqual('Bob Marley');\n expect(callerId['callerInfo'].num).toStrictEqual('5888');\n });\n});\n"],"mappings":"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"}