@webex/calling 3.3.1-next.2 → 3.3.1-next.21

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 (43) hide show
  1. package/dist/CallingClient/calling/call.js +40 -14
  2. package/dist/CallingClient/calling/call.js.map +1 -1
  3. package/dist/CallingClient/calling/call.test.js +19 -0
  4. package/dist/CallingClient/calling/call.test.js.map +1 -1
  5. package/dist/CallingClient/constants.js +6 -4
  6. package/dist/CallingClient/constants.js.map +1 -1
  7. package/dist/Contacts/ContactsClient.js +234 -253
  8. package/dist/Contacts/ContactsClient.js.map +1 -1
  9. package/dist/Contacts/ContactsClient.test.js +1 -1
  10. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  11. package/dist/Contacts/contactFixtures.js +2 -2
  12. package/dist/Contacts/contactFixtures.js.map +1 -1
  13. package/dist/Contacts/types.js.map +1 -1
  14. package/dist/Metrics/index.js +9 -9
  15. package/dist/Metrics/index.js.map +1 -1
  16. package/dist/Metrics/index.test.js +37 -10
  17. package/dist/Metrics/index.test.js.map +1 -1
  18. package/dist/SDKConnector/types.js.map +1 -1
  19. package/dist/common/testUtil.js +2 -1
  20. package/dist/common/testUtil.js.map +1 -1
  21. package/dist/common/types.js.map +1 -1
  22. package/dist/module/CallingClient/calling/call.js +15 -1
  23. package/dist/module/CallingClient/constants.js +4 -2
  24. package/dist/module/Contacts/ContactsClient.js +20 -15
  25. package/dist/module/Contacts/contactFixtures.js +32 -34
  26. package/dist/module/Metrics/index.js +9 -9
  27. package/dist/module/common/testUtil.js +1 -0
  28. package/dist/types/CallingClient/calling/call.d.ts +1 -0
  29. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  30. package/dist/types/CallingClient/constants.d.ts +3 -1
  31. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  32. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  33. package/dist/types/Contacts/contactFixtures.d.ts +1 -1
  34. package/dist/types/Contacts/contactFixtures.d.ts.map +1 -1
  35. package/dist/types/Contacts/types.d.ts +1 -1
  36. package/dist/types/Contacts/types.d.ts.map +1 -1
  37. package/dist/types/SDKConnector/types.d.ts +2 -1
  38. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  39. package/dist/types/common/testUtil.d.ts +1 -0
  40. package/dist/types/common/testUtil.d.ts.map +1 -1
  41. package/dist/types/common/types.d.ts +2 -1
  42. package/dist/types/common/types.d.ts.map +1 -1
  43. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"names":["_testUtil","require","_index","_types","_constants","_CallingDeviceError","_types2","_types3","_Logger","_interopRequireDefault","_CallError","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","webex","getTestUtilsWebex","describe","metricManager","getMetricManager","ServiceIndicator","CALLING","mockDeviceInfo","getMockDeviceInfo","mockSubmitClientMetric","jest","fn","internal","metrics","submitClientMetrics","mockCallId","mockCorrelationId","mockCallAction","mockMediaAction","beforeEach","mockClear","it","expect","not","toBeNull","toBeUndefined","setDeviceInfo","toEqual","expectedData","tags","action","REG_ACTION","REGISTER","device_id","device","deviceId","service_indicator","fields","device_url","clientDeviceUri","mobius_url","uri","calling_sdk_version","VERSION","type","METRIC_TYPE","BEHAVIORAL","submitRegistrationMetric","METRIC_EVENT","REGISTRATION","undefined","toBeCalledOnceWith","clientError","createClientError","ERROR_TYPE","DEFAULT","RegistrationStatus","INACTIVE","err","context","message","SERVICE_UNAVAILABLE","setError","error","getError","error_type","REGISTRATION_ERROR","logSpy","spyOn","log","OPERATIONAL","toBeCalled","file","method","beforeAll","call_id","correlation_id","submitCallMetric","CALL","callError","createCallError","ERROR_LAYER","CALL_CONTROL","FORBIDDEN_ERROR","setCallError","getCallError","CALL_ERROR","mockSdp","local_media_details","remote_media_details","submitMediaMetric","MEDIA","MEDIA_ERROR","submitBNRMetric","BNR_ENABLED","BNR_DISABLED","expectedData1","VOICEMAIL_ACTION","GET_VOICEMAILS","submitVoicemailMetric","VOICEMAIL","expectedData2","message_id","DELETE","errorMessage","status_code","VOICEMAIL_ERROR"],"sources":["index.test.ts"],"sourcesContent":["/* eslint-disable dot-notation */\nimport {getMockDeviceInfo, getTestUtilsWebex} from '../common/testUtil';\nimport {getMetricManager} from './index';\nimport {METRIC_TYPE, METRIC_EVENT, REG_ACTION, VOICEMAIL_ACTION} from './types';\nimport {VERSION} from '../CallingClient/constants';\nimport {createClientError} from '../Errors/catalog/CallingDeviceError';\nimport {CallErrorObject, ErrorObject, ERROR_LAYER, ERROR_TYPE} from '../Errors/types';\nimport {RegistrationStatus, ServiceIndicator} from '../common/types';\nimport log from '../Logger';\nimport {createCallError} from '../Errors/catalog/CallError';\n\nconst webex = getTestUtilsWebex();\n\ndescribe('CALLING: Metric tests', () => {\n const metricManager = getMetricManager(webex, ServiceIndicator.CALLING);\n const mockDeviceInfo = getMockDeviceInfo();\n const mockSubmitClientMetric = jest.fn();\n\n webex.internal.metrics.submitClientMetrics = mockSubmitClientMetric;\n\n const mockCallId = '123456';\n const mockCorrelationId = '0931237';\n const mockCallAction = 'S_SEND_CALL_SETUP';\n const mockMediaAction = 'S_SEND_ROAP_OFFER';\n\n beforeEach(() => {\n mockSubmitClientMetric.mockClear();\n });\n\n it('initialize metric manager', () => {\n expect(metricManager).not.toBeNull();\n expect(metricManager['deviceInfo']).toBeUndefined();\n });\n\n it('update deviceInfo in metric manager', () => {\n expect(metricManager['deviceInfo']).toBeUndefined();\n metricManager.setDeviceInfo(mockDeviceInfo);\n expect(metricManager['deviceInfo']).toEqual(mockDeviceInfo);\n });\n\n describe('CallingClient metric tests', () => {\n it('submit registration success metric', () => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n\n const expectedData = {\n tags: {\n action: REG_ACTION.REGISTER,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: VERSION,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n undefined\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.REGISTRATION, expectedData);\n });\n\n it('submit registration failure metric', () => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n\n const clientError = createClientError(\n '',\n {},\n ERROR_TYPE.DEFAULT,\n RegistrationStatus.INACTIVE\n );\n const err = <ErrorObject>{};\n\n err.context = {};\n err.message = 'Unknown Error';\n err.type = ERROR_TYPE.SERVICE_UNAVAILABLE;\n\n clientError.setError(err);\n\n const expectedData = {\n tags: {\n action: REG_ACTION.REGISTER,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: VERSION,\n error: clientError.getError().message,\n error_type: clientError.getError().type,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(\n METRIC_EVENT.REGISTRATION_ERROR,\n expectedData\n );\n });\n\n it('submit unknown registration metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitRegistrationMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n REG_ACTION.REGISTER,\n METRIC_TYPE.OPERATIONAL,\n undefined\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitRegistrationMetric',\n }\n );\n });\n });\n\n describe('Call Metric tests', () => {\n beforeAll(() => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n });\n\n it('submit call success metric', () => {\n const expectedData = {\n tags: {\n action: mockCallAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: VERSION,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n mockCallAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.CALL, expectedData);\n });\n\n it('submit call failure metric', () => {\n const callError = createCallError(\n '',\n {},\n ERROR_TYPE.DEFAULT,\n mockCorrelationId,\n ERROR_LAYER.CALL_CONTROL\n );\n\n const err = <CallErrorObject>{};\n\n err.context = {};\n err.message =\n 'An invalid status update has been received for the call. Wait a moment and try again.';\n err.type = ERROR_TYPE.FORBIDDEN_ERROR;\n\n callError.setCallError(err);\n\n const expectedData = {\n tags: {\n action: mockCallAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: VERSION,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n error: callError.getCallError().message,\n error_type: callError.getCallError().type,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitCallMetric(\n METRIC_EVENT.CALL_ERROR,\n mockCallAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId,\n callError\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.CALL_ERROR, expectedData);\n });\n\n it('submit unknown call metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitCallMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n mockCallAction,\n METRIC_TYPE.OPERATIONAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitCallMetric',\n }\n );\n });\n });\n\n describe('Media Metric tests', () => {\n const mockSdp = 'sdpInformation';\n\n beforeAll(() => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n });\n\n it('submit media success metric', () => {\n const expectedData = {\n tags: {\n action: mockMediaAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: VERSION,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n local_media_details: mockSdp,\n remote_media_details: mockSdp,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA,\n mockMediaAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId,\n mockSdp,\n mockSdp\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.MEDIA, expectedData);\n });\n\n it('submit media failure metric', () => {\n const callError = createCallError(\n '',\n {},\n ERROR_TYPE.DEFAULT,\n mockCorrelationId,\n ERROR_LAYER.MEDIA\n );\n\n const err = <CallErrorObject>{};\n\n err.context = {};\n err.message =\n 'An error occurred while parsing the provided information. Wait a moment and try again.';\n err.type = ERROR_TYPE.SERVICE_UNAVAILABLE;\n\n callError.setCallError(err);\n\n const expectedData = {\n tags: {\n action: mockMediaAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: VERSION,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n local_media_details: mockSdp,\n remote_media_details: mockSdp,\n error: callError.getCallError().message,\n error_type: callError.getCallError().type,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA_ERROR,\n mockMediaAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId,\n mockSdp,\n mockSdp,\n callError\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.MEDIA_ERROR, expectedData);\n });\n\n it('submit unknown media metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitMediaMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n mockMediaAction,\n METRIC_TYPE.OPERATIONAL,\n mockCallId,\n mockCorrelationId,\n mockSdp,\n mockSdp\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitMediaMetric',\n }\n );\n });\n });\n\n describe('BNR metric tests', () => {\n beforeAll(() => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n });\n\n it('submit bnr enabled metric', () => {\n const expectedData = {\n tags: {\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: VERSION,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_ENABLED,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.BNR_ENABLED, expectedData);\n });\n\n it('submit bnr disabled metric', () => {\n const expectedData = {\n tags: {\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: VERSION,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_DISABLED,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.BNR_DISABLED, expectedData);\n });\n\n it('submit unknown bnr metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitBNRMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitBNRMetric',\n }\n );\n });\n });\n\n describe('Voicemail metric tests', () => {\n beforeAll(() => metricManager.setDeviceInfo(mockDeviceInfo));\n\n it('submit voicemail success metric', () => {\n const expectedData1 = {\n tags: {\n action: VOICEMAIL_ACTION.GET_VOICEMAILS,\n device_id: mockDeviceInfo.device.deviceId,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n calling_sdk_version: VERSION,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL,\n VOICEMAIL_ACTION.GET_VOICEMAILS,\n METRIC_TYPE.BEHAVIORAL\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.VOICEMAIL, expectedData1);\n\n mockSubmitClientMetric.mockClear();\n\n const expectedData2 = {\n ...expectedData1,\n tags: {...expectedData1.tags, message_id: 'messageId', action: VOICEMAIL_ACTION.DELETE},\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL,\n VOICEMAIL_ACTION.DELETE,\n METRIC_TYPE.BEHAVIORAL,\n 'messageId'\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.VOICEMAIL, expectedData2);\n });\n\n it('submit voicemail failure metric', () => {\n const errorMessage = 'User is not authenticated';\n const expectedData1 = {\n tags: {\n action: VOICEMAIL_ACTION.GET_VOICEMAILS,\n device_id: mockDeviceInfo.device.deviceId,\n message_id: undefined,\n error: errorMessage,\n status_code: 401,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n calling_sdk_version: VERSION,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL_ERROR,\n VOICEMAIL_ACTION.GET_VOICEMAILS,\n METRIC_TYPE.BEHAVIORAL,\n undefined,\n errorMessage,\n 401\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(\n METRIC_EVENT.VOICEMAIL_ERROR,\n expectedData1\n );\n\n mockSubmitClientMetric.mockClear();\n\n const expectedData2 = {\n ...expectedData1,\n tags: {...expectedData1.tags, message_id: 'messageId', action: VOICEMAIL_ACTION.DELETE},\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL_ERROR,\n VOICEMAIL_ACTION.DELETE,\n METRIC_TYPE.BEHAVIORAL,\n 'messageId',\n errorMessage,\n 401\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(\n METRIC_EVENT.VOICEMAIL_ERROR,\n expectedData2\n );\n });\n\n it('submit unknown voicemail metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitVoicemailMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n VOICEMAIL_ACTION.GET_VOICEMAILS,\n METRIC_TYPE.BEHAVIORAL\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitVoicemailMetric',\n }\n );\n });\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_testUtil","require","_index","_types","_constants","_CallingDeviceError","_types2","_types3","_Logger","_interopRequireDefault","_CallError","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","webex","getTestUtilsWebex","describe","metricManager","getMetricManager","ServiceIndicator","CALLING","mockDeviceInfo","getMockDeviceInfo","mockSubmitClientMetric","jest","fn","MOCK_VERSION_NUMBER","originalEnv","process","env","internal","metrics","submitClientMetrics","mockCallId","mockCorrelationId","mockCallAction","mockMediaAction","beforeEach","mockClear","CALLING_SDK_VERSION","it","expect","not","toBeNull","toBeUndefined","setDeviceInfo","toEqual","expectedData","tags","action","REG_ACTION","REGISTER","device_id","device","deviceId","service_indicator","fields","device_url","clientDeviceUri","mobius_url","uri","calling_sdk_version","type","METRIC_TYPE","BEHAVIORAL","submitRegistrationMetric","METRIC_EVENT","REGISTRATION","undefined","toBeCalledOnceWith","clientError","createClientError","ERROR_TYPE","DEFAULT","RegistrationStatus","INACTIVE","err","context","message","SERVICE_UNAVAILABLE","setError","error","getError","error_type","REGISTRATION_ERROR","logSpy","spyOn","log","OPERATIONAL","toBeCalled","file","method","beforeAll","call_id","correlation_id","submitCallMetric","CALL","callError","createCallError","ERROR_LAYER","CALL_CONTROL","FORBIDDEN_ERROR","setCallError","getCallError","CALL_ERROR","mockSdp","local_media_details","remote_media_details","submitMediaMetric","MEDIA","MEDIA_ERROR","submitBNRMetric","BNR_ENABLED","BNR_DISABLED","expectedData1","VOICEMAIL_ACTION","GET_VOICEMAILS","submitVoicemailMetric","VOICEMAIL","expectedData2","message_id","DELETE","errorMessage","status_code","VOICEMAIL_ERROR","VERSION"],"sources":["index.test.ts"],"sourcesContent":["/* eslint-disable dot-notation */\nimport {getMockDeviceInfo, getTestUtilsWebex} from '../common/testUtil';\nimport {getMetricManager} from './index';\nimport {METRIC_TYPE, METRIC_EVENT, REG_ACTION, VOICEMAIL_ACTION} from './types';\nimport {VERSION} from '../CallingClient/constants';\nimport {createClientError} from '../Errors/catalog/CallingDeviceError';\nimport {CallErrorObject, ErrorObject, ERROR_LAYER, ERROR_TYPE} from '../Errors/types';\nimport {RegistrationStatus, ServiceIndicator} from '../common/types';\nimport log from '../Logger';\nimport {createCallError} from '../Errors/catalog/CallError';\n\nconst webex = getTestUtilsWebex();\n\ndescribe('CALLING: Metric tests', () => {\n const metricManager = getMetricManager(webex, ServiceIndicator.CALLING);\n const mockDeviceInfo = getMockDeviceInfo();\n const mockSubmitClientMetric = jest.fn();\n const MOCK_VERSION_NUMBER = '1.0.0';\n const originalEnv = process.env;\n\n webex.internal.metrics.submitClientMetrics = mockSubmitClientMetric;\n\n const mockCallId = '123456';\n const mockCorrelationId = '0931237';\n const mockCallAction = 'S_SEND_CALL_SETUP';\n const mockMediaAction = 'S_SEND_ROAP_OFFER';\n\n beforeEach(() => {\n mockSubmitClientMetric.mockClear();\n process.env = {\n ...originalEnv,\n CALLING_SDK_VERSION: MOCK_VERSION_NUMBER,\n };\n });\n\n it('initialize metric manager', () => {\n expect(metricManager).not.toBeNull();\n expect(metricManager['deviceInfo']).toBeUndefined();\n });\n\n it('update deviceInfo in metric manager', () => {\n expect(metricManager['deviceInfo']).toBeUndefined();\n metricManager.setDeviceInfo(mockDeviceInfo);\n expect(metricManager['deviceInfo']).toEqual(mockDeviceInfo);\n });\n\n describe('CallingClient metric tests', () => {\n it('submit registration success metric', () => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n\n const expectedData = {\n tags: {\n action: REG_ACTION.REGISTER,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n undefined\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.REGISTRATION, expectedData);\n });\n\n it('submit registration failure metric', () => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n\n const clientError = createClientError(\n '',\n {},\n ERROR_TYPE.DEFAULT,\n RegistrationStatus.INACTIVE\n );\n const err = <ErrorObject>{};\n\n err.context = {};\n err.message = 'Unknown Error';\n err.type = ERROR_TYPE.SERVICE_UNAVAILABLE;\n\n clientError.setError(err);\n\n const expectedData = {\n tags: {\n action: REG_ACTION.REGISTER,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n error: clientError.getError().message,\n error_type: clientError.getError().type,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(\n METRIC_EVENT.REGISTRATION_ERROR,\n expectedData\n );\n });\n\n it('submit unknown registration metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitRegistrationMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n REG_ACTION.REGISTER,\n METRIC_TYPE.OPERATIONAL,\n undefined\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitRegistrationMetric',\n }\n );\n });\n });\n\n describe('Call Metric tests', () => {\n beforeAll(() => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n });\n\n it('submit call success metric', () => {\n const expectedData = {\n tags: {\n action: mockCallAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n mockCallAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.CALL, expectedData);\n });\n\n it('submit call failure metric', () => {\n const callError = createCallError(\n '',\n {},\n ERROR_TYPE.DEFAULT,\n mockCorrelationId,\n ERROR_LAYER.CALL_CONTROL\n );\n\n const err = <CallErrorObject>{};\n\n err.context = {};\n err.message =\n 'An invalid status update has been received for the call. Wait a moment and try again.';\n err.type = ERROR_TYPE.FORBIDDEN_ERROR;\n\n callError.setCallError(err);\n\n const expectedData = {\n tags: {\n action: mockCallAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n error: callError.getCallError().message,\n error_type: callError.getCallError().type,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitCallMetric(\n METRIC_EVENT.CALL_ERROR,\n mockCallAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId,\n callError\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.CALL_ERROR, expectedData);\n });\n\n it('submit unknown call metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitCallMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n mockCallAction,\n METRIC_TYPE.OPERATIONAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitCallMetric',\n }\n );\n });\n });\n\n describe('Media Metric tests', () => {\n const mockSdp = 'sdpInformation';\n\n beforeAll(() => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n });\n\n it('submit media success metric', () => {\n const expectedData = {\n tags: {\n action: mockMediaAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n local_media_details: mockSdp,\n remote_media_details: mockSdp,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA,\n mockMediaAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId,\n mockSdp,\n mockSdp\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.MEDIA, expectedData);\n });\n\n it('submit media failure metric', () => {\n const callError = createCallError(\n '',\n {},\n ERROR_TYPE.DEFAULT,\n mockCorrelationId,\n ERROR_LAYER.MEDIA\n );\n\n const err = <CallErrorObject>{};\n\n err.context = {};\n err.message =\n 'An error occurred while parsing the provided information. Wait a moment and try again.';\n err.type = ERROR_TYPE.SERVICE_UNAVAILABLE;\n\n callError.setCallError(err);\n\n const expectedData = {\n tags: {\n action: mockMediaAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n local_media_details: mockSdp,\n remote_media_details: mockSdp,\n error: callError.getCallError().message,\n error_type: callError.getCallError().type,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA_ERROR,\n mockMediaAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId,\n mockSdp,\n mockSdp,\n callError\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.MEDIA_ERROR, expectedData);\n });\n\n it('submit unknown media metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitMediaMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n mockMediaAction,\n METRIC_TYPE.OPERATIONAL,\n mockCallId,\n mockCorrelationId,\n mockSdp,\n mockSdp\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitMediaMetric',\n }\n );\n });\n });\n\n describe('BNR metric tests', () => {\n beforeAll(() => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n });\n\n it('submit bnr enabled metric', () => {\n const expectedData = {\n tags: {\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_ENABLED,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.BNR_ENABLED, expectedData);\n });\n\n it('submit bnr disabled metric', () => {\n const expectedData = {\n tags: {\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_DISABLED,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.BNR_DISABLED, expectedData);\n });\n\n it('submit unknown bnr metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitBNRMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitBNRMetric',\n }\n );\n });\n });\n\n describe('Voicemail metric tests', () => {\n beforeAll(() => metricManager.setDeviceInfo(mockDeviceInfo));\n\n it('submit voicemail success metric', () => {\n const expectedData1 = {\n tags: {\n action: VOICEMAIL_ACTION.GET_VOICEMAILS,\n device_id: mockDeviceInfo.device.deviceId,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL,\n VOICEMAIL_ACTION.GET_VOICEMAILS,\n METRIC_TYPE.BEHAVIORAL\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.VOICEMAIL, expectedData1);\n\n mockSubmitClientMetric.mockClear();\n\n const expectedData2 = {\n ...expectedData1,\n tags: {...expectedData1.tags, message_id: 'messageId', action: VOICEMAIL_ACTION.DELETE},\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL,\n VOICEMAIL_ACTION.DELETE,\n METRIC_TYPE.BEHAVIORAL,\n 'messageId'\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.VOICEMAIL, expectedData2);\n });\n\n it('submit voicemail failure metric', () => {\n const errorMessage = 'User is not authenticated';\n const expectedData1 = {\n tags: {\n action: VOICEMAIL_ACTION.GET_VOICEMAILS,\n device_id: mockDeviceInfo.device.deviceId,\n message_id: undefined,\n error: errorMessage,\n status_code: 401,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL_ERROR,\n VOICEMAIL_ACTION.GET_VOICEMAILS,\n METRIC_TYPE.BEHAVIORAL,\n undefined,\n errorMessage,\n 401\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(\n METRIC_EVENT.VOICEMAIL_ERROR,\n expectedData1\n );\n\n mockSubmitClientMetric.mockClear();\n\n const expectedData2 = {\n ...expectedData1,\n tags: {...expectedData1.tags, message_id: 'messageId', action: VOICEMAIL_ACTION.DELETE},\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL_ERROR,\n VOICEMAIL_ACTION.DELETE,\n METRIC_TYPE.BEHAVIORAL,\n 'messageId',\n errorMessage,\n 401\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(\n METRIC_EVENT.VOICEMAIL_ERROR,\n expectedData2\n );\n });\n\n it('submit unknown voicemail metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitVoicemailMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n VOICEMAIL_ACTION.GET_VOICEMAILS,\n METRIC_TYPE.BEHAVIORAL\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitVoicemailMetric',\n }\n );\n });\n });\n\n describe('Calling_Sdk_Version fallback test', () => {\n it('submit metric with fallback version', () => {\n process.env = {};\n metricManager.setDeviceInfo(mockDeviceInfo);\n const expectedData = {\n tags: {\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: VERSION,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_ENABLED,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.BNR_ENABLED, expectedData);\n });\n });\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {\n DSSLookupResponse,\n KmsKey,\n KmsResourceObject,\n LookupOptions,\n PeopleListResponse,\n WebexRequestPayload,\n} from '../common/types';\n/* eslint-disable no-shadow */\n\ntype Listener = (e: string, data?: unknown) => void;\ntype ListenerOff = (e: string) => void;\n\nexport type ServiceHost = {\n host: string;\n ttl: number;\n priority: number;\n id: string;\n homeCluster?: boolean;\n};\n\nexport type Model = {\n _values: {\n key: string;\n };\n};\n\nexport type ServiceCatalog = {\n serviceGroups: {\n // cSpell:disable\n postauth: [\n {\n _values: {\n name: string;\n hosts: ServiceHost[];\n };\n }\n ];\n /* cSpell:enable */\n };\n};\n\nexport type ClientRegionInfo = {\n attribution: string;\n clientAddress: string;\n clientRegion: string;\n countryCode: string;\n disclaimer: string;\n regionCode: string;\n timezone: string;\n};\n\n// TODO: is there a way to import bindings from the Webex JS SDK without having to redefine expected methods and structure?\n// This defines the shape for the webex SDK, if a typing doesn't exist, it should be added here\nexport interface WebexSDK {\n // top level primitives/funcs\n version: string;\n canAuthorize: boolean;\n credentials: {\n getUserToken: () => Promise<string>;\n };\n ready: boolean;\n request: <T>(payload: WebexRequestPayload) => Promise<T>;\n // internal plugins\n internal: {\n mercury: {\n on: Listener;\n off: ListenerOff;\n connected: boolean;\n connecting: boolean;\n };\n calendar: unknown;\n device: {\n url: string;\n userId: string;\n orgId: string;\n version: string;\n callingBehavior: string;\n features: {\n entitlement: {\n models: Model[];\n };\n };\n };\n dss: {\n lookup: (options: LookupOptions) => Promise<DSSLookupResponse[]>;\n };\n encryption: {\n decryptText: (encryptionKeyUrl: string, encryptedData?: string) => Promise<string>;\n encryptText: (encryptionKeyUrl: string, text?: string) => Promise<string>;\n kms: {\n createUnboundKeys: (arg0: {count?: number}) => Promise<KmsKey[]>;\n createResource: (arg0: {keyUris: string[]}) => Promise<KmsResourceObject>;\n bindKey: (arg0: {kroUri: string; keyUri: string}) => Promise<KmsKey>;\n };\n };\n presence: unknown;\n support: unknown;\n services: {\n _hostCatalog: Record<string, ServiceHost[]>;\n _serviceUrls: {\n mobius: string;\n identity: string;\n janus: string;\n wdm: string;\n broadworksIdpProxy: string;\n hydra: string;\n mercuryApi: string;\n 'ucmgmt-gateway': string;\n contactsService: string;\n directorySearch: string;\n };\n fetchClientRegionInfo: () => Promise<ClientRegionInfo>;\n };\n metrics: {\n submitClientMetrics: (name: string, data: unknown) => void;\n };\n };\n // public plugins\n logger: {\n log: (payload: string) => void;\n error: (payload: string) => void;\n warn: (payload: string) => void;\n info: (payload: string) => void;\n trace: (payload: string) => void;\n debug: (payload: string) => void;\n };\n messages: unknown;\n memberships: unknown;\n people: {\n list: (arg: object) => Promise<PeopleListResponse>;\n };\n rooms: unknown;\n teams: unknown;\n}\n\nexport interface ISDKConnector {\n setWebex: (webexInstance: WebexSDK) => void;\n getWebex: () => WebexSDK;\n get: () => ISDKConnector;\n registerListener: <T>(event: string, cb: (data?: T) => unknown) => void;\n unregisterListener: (event: string) => void;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {\n DSSLookupResponse,\n KmsKey,\n KmsResourceObject,\n LookupOptions,\n PeopleListResponse,\n WebexRequestPayload,\n} from '../common/types';\n/* eslint-disable no-shadow */\n\ntype Listener = (e: string, data?: unknown) => void;\ntype ListenerOff = (e: string) => void;\n\nexport type ServiceHost = {\n host: string;\n ttl: number;\n priority: number;\n id: string;\n homeCluster?: boolean;\n};\n\nexport type Model = {\n _values: {\n key: string;\n };\n};\n\nexport type ServiceCatalog = {\n serviceGroups: {\n // cSpell:disable\n postauth: [\n {\n _values: {\n name: string;\n hosts: ServiceHost[];\n };\n }\n ];\n /* cSpell:enable */\n };\n};\n\nexport type ClientRegionInfo = {\n attribution: string;\n clientAddress: string;\n clientRegion: string;\n countryCode: string;\n disclaimer: string;\n regionCode: string;\n timezone: string;\n};\n\n// TODO: is there a way to import bindings from the Webex JS SDK without having to redefine expected methods and structure?\n// This defines the shape for the webex SDK, if a typing doesn't exist, it should be added here\nexport interface WebexSDK {\n // top level primitives/funcs\n version: string;\n canAuthorize: boolean;\n credentials: {\n getUserToken: () => Promise<string>;\n };\n ready: boolean;\n request: <T>(payload: WebexRequestPayload) => Promise<T>;\n // internal plugins\n internal: {\n mercury: {\n on: Listener;\n off: ListenerOff;\n connected: boolean;\n connecting: boolean;\n };\n calendar: unknown;\n device: {\n url: string;\n userId: string;\n orgId: string;\n version: string;\n callingBehavior: string;\n features: {\n entitlement: {\n models: Model[];\n };\n };\n };\n dss: {\n lookup: (options: LookupOptions) => Promise<DSSLookupResponse>;\n register: () => Promise<void>;\n };\n encryption: {\n decryptText: (encryptionKeyUrl: string, encryptedData?: string) => Promise<string>;\n encryptText: (encryptionKeyUrl: string, text?: string) => Promise<string>;\n kms: {\n createUnboundKeys: (arg0: {count?: number}) => Promise<KmsKey[]>;\n createResource: (arg0: {keyUris: string[]}) => Promise<KmsResourceObject>;\n bindKey: (arg0: {kroUri: string; keyUri: string}) => Promise<KmsKey>;\n };\n };\n presence: unknown;\n support: unknown;\n services: {\n _hostCatalog: Record<string, ServiceHost[]>;\n _serviceUrls: {\n mobius: string;\n identity: string;\n janus: string;\n wdm: string;\n broadworksIdpProxy: string;\n hydra: string;\n mercuryApi: string;\n 'ucmgmt-gateway': string;\n contactsService: string;\n directorySearch: string;\n };\n fetchClientRegionInfo: () => Promise<ClientRegionInfo>;\n };\n metrics: {\n submitClientMetrics: (name: string, data: unknown) => void;\n };\n };\n // public plugins\n logger: {\n log: (payload: string) => void;\n error: (payload: string) => void;\n warn: (payload: string) => void;\n info: (payload: string) => void;\n trace: (payload: string) => void;\n debug: (payload: string) => void;\n };\n messages: unknown;\n memberships: unknown;\n people: {\n list: (arg: object) => Promise<PeopleListResponse>;\n };\n rooms: unknown;\n teams: unknown;\n}\n\nexport interface ISDKConnector {\n setWebex: (webexInstance: WebexSDK) => void;\n getWebex: () => WebexSDK;\n get: () => ISDKConnector;\n registerListener: <T>(event: string, cb: (data?: T) => unknown) => void;\n unregisterListener: (event: string) => void;\n}\n"],"mappings":""}
@@ -66,7 +66,8 @@ function getTestUtilsWebex() {
66
66
  }
67
67
  },
68
68
  dss: {
69
- lookup: jest.fn()
69
+ lookup: jest.fn(),
70
+ register: jest.fn()
70
71
  },
71
72
  encryption: {
72
73
  decryptText: jest.fn(),
@@ -1 +1 @@
1
- {"version":3,"names":["_platform","_interopRequireDefault","require","MediaSDKMock","jest","createMockFromModule","getTestUtilsWebex","version","canAuthorize","credentials","getUserToken","fn","ready","request","internal","metrics","submitClientMetrics","mercury","on","off","connected","connecting","calendar","device","url","deviceId","userId","orgId","callingBehavior","features","entitlement","models","_values","key","dss","lookup","encryption","decryptText","encryptText","kms","createUnboundKeys","createResource","bindKey","presence","support","services","_hostCatalog","_serviceUrls","mobius","identity","janus","wdm","broadworksIdpProxy","hydra","mercuryApi","contactsService","directorySearch","fetchClientRegionInfo","logger","log","error","warn","trace","info","debug","messages","memberships","people","list","rooms","teams","registration","exports","triggerRegistration","mediaConnection","RoapMediaConnection","localTracks","direction","audio","video","screenShareVideo","flushPromises","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","count","wrap","_callee$","_context","prev","next","_promise","all","_toConsumableArray2","Array","map","resolve","stop","_x","apply","arguments","mockCallingClient","emit","register","getMockRequestTemplate","headers","service","getMobiusDiscoveryResponse","primary","region","uris","backup","getMockDeviceInfo","uri","status","lastSeen","addresses","clientDeviceUri","getSampleScimResponse","sampleAvatar","totalResults","itemsPerPage","startIndex","schemas","Resources","userName","emails","type","value","name","givenName","familyName","phoneNumbers","entitlements","cisSyncSource","photos","id","meta","created","lastModified","lastLoginTime","location","organizationID","creator","modifier","displayName","active","licenseID","userSettings","sipAddresses","isTeamsOnJabberEnabled","isUCCallOnJabberEnabled","userType","mfaEnabled","teamsClusterId","getSamplePeopleListResponse","notFoundIds","items","nickName","firstName","lastName","avatar","lastActivity","getSampleRawAndParsedMediaStats","statsWithVoOneWayDelayAndNw","raw","timestamp","fingerprint","fingerprintAlgorithm","base64Certificate","transportId","payloadType","mimeType","clockRate","channels","sdpFmtpLine","localCandidateId","remoteCandidateId","state","priority","nominated","writable","packetsSent","packetsReceived","bytesSent","bytesReceived","totalRoundTripTime","currentRoundTripTime","availableOutgoingBitrate","requestsReceived","requestsSent","responsesReceived","responsesSent","consentRequestsSent","packetsDiscardedOnSend","bytesDiscardedOnSend","streamIdentifier","trackIds","trackIdentifier","remoteSource","ended","detached","kind","jitterBufferDelay","jitterBufferEmittedCount","audioLevel","totalAudioEnergy","totalSamplesReceived","totalSamplesDuration","concealedSamples","silentConcealedSamples","concealmentEvents","insertedSamplesForDeceleration","removedSamplesForAcceleration","mediaSourceId","echoReturnLoss","echoReturnLossEnhancement","isRemote","networkType","ip","address","port","protocol","candidateType","foundation","usernameFragment","tcpType","ssrc","trackId","codecId","mediaType","jitter","packetsLost","mid","remoteId","packetsDiscarded","fecPacketsReceived","fecPacketsDiscarded","headerBytesReceived","lastPacketReceivedTimestamp","jitterBufferTargetDelay","jitterBufferMinimumDelay","retransmittedPacketsSent","headerBytesSent","retransmittedBytesSent","targetBitrate","nackCount","dataChannelsOpened","dataChannelsClosed","localId","roundTripTime","fractionLost","roundTripTimeMeasurements","remoteTimestamp","reportsSent","dtlsState","selectedCandidatePairId","localCertificateId","remoteCertificateId","tlsVersion","dtlsCipher","dtlsRole","srtpCipher","selectedCandidatePairChanges","iceRole","iceLocalUsernameFragment","iceState","parsed","LostPkt","Pkt","LatePkt","Oct","Dur","AvgJit","VQMetrics","maxJitter","VoPktSizeMs","VoOneWayDelayMs","hwType","concat","platform","os","VoRxCodec","VoTxCodec","rtpBitRate","statsWithoutVoOneWayDelayAndNw","undefined"],"sources":["testUtil.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\n/*\n This file acts as a utility to create a mock Webex object that can be imported\n into UT. As we can see, the methods have been replaced with mock jest.fn().\n In our respective UTs, we can specify the return values of these functions\n using webex.request.mockReturnValue() or webex.request.mockReturnValueOnce().\n*/\nimport {MediaConnectionConfig} from '@webex/internal-media-core';\nimport platform from 'platform';\nimport {MobiusServers} from './types';\n\nconst MediaSDKMock = jest.createMockFromModule<typeof import('@webex/internal-media-core')>(\n '@webex/internal-media-core'\n);\n\n/**\n * Returns a fresh copy of the webex object per call.\n */\nexport function getTestUtilsWebex() {\n return {\n // top level primitives/funcs\n version: '1.1.1',\n canAuthorize: true,\n credentials: {\n getUserToken: jest.fn(),\n },\n ready: true,\n request: jest.fn(),\n // internal plugins\n internal: {\n metrics: {\n submitClientMetrics: jest.fn(),\n },\n mercury: {\n on: jest.fn(),\n off: jest.fn(),\n connected: true,\n connecting: false,\n },\n calendar: null,\n device: {\n url: 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n deviceId: 'c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n userId: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',\n orgId: '1704d30d-a131-4bc7-9449-948487643793',\n version: '1',\n callingBehavior: 'NATIVE_WEBEX_TEAMS_CALLING',\n features: {\n entitlement: {\n models: [{_values: {key: 'bc-sp-standard'}}],\n },\n },\n },\n dss: {\n lookup: jest.fn(),\n },\n encryption: {\n decryptText: jest.fn(),\n encryptText: jest.fn(),\n kms: {\n createUnboundKeys: jest.fn(),\n createResource: jest.fn(),\n bindKey: jest.fn(),\n },\n },\n presence: jest.fn(),\n support: jest.fn(),\n services: {\n _hostCatalog: {},\n _serviceUrls: {\n mobius: 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1',\n identity: 'https://identity-b-us.webex.com',\n janus: 'https://janus-intb.ciscospark.com/janus/api/v1',\n wdm: 'https://wdm-a.wbx2.com/wdm/api/v1',\n broadworksIdpProxy: 'https://broadworks-idp-proxy-a.wbx2.com/broadworks-idp-proxy/api/v1',\n hydra: 'https://hydra-a.wbx2.com/v1/',\n mercuryApi: 'https://mercury-api-intb.ciscospark.com/v1',\n 'ucmgmt-gateway': 'https://gw.telemetry.int-ucmgmt.cisco.com',\n contactsService: 'https://contacts-service-a.wbx2.com/contact/api/v1',\n directorySearch: 'https://directory-search-a.wbx2.com/direcory-search/api/v1/',\n },\n fetchClientRegionInfo: jest.fn(),\n },\n },\n // public plugins\n logger: {\n log: jest.fn(),\n error: jest.fn(),\n warn: jest.fn(),\n trace: jest.fn(),\n info: jest.fn(),\n debug: jest.fn(),\n },\n messages: null,\n memberships: null,\n people: {\n list: jest.fn(),\n },\n rooms: null,\n teams: null,\n };\n}\n\nexport const registration = {\n triggerRegistration: () => jest.fn(),\n};\n\nexport const mediaConnection = new MediaSDKMock.RoapMediaConnection(\n {} as MediaConnectionConfig,\n {\n localTracks: {},\n direction: {\n audio: 'sendrecv',\n video: 'sendrecv',\n screenShareVideo: 'sendrecv',\n },\n },\n ''\n);\n\n/**\n * @param count - Number of Promises to flush.\n */\nexport const flushPromises = async (count: number): Promise<void> => {\n await Promise.all([...Array(count)].map(() => Promise.resolve()));\n};\n\nexport const mockCallingClient = {\n emit: jest.fn(),\n register: jest.fn(),\n on: jest.fn(),\n off: jest.fn(),\n};\n\nexport const getMockRequestTemplate = () => {\n return {\n headers: {\n 'cisco-device-url':\n 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n 'spark-user-agent': 'webex-calling/beta',\n },\n service: 'mobius',\n };\n};\n\nexport const getMobiusDiscoveryResponse = () => {\n return {\n primary: {\n region: 'US-EAST',\n uris: ['https://mobius-dfw.webex.com/api/v1'],\n },\n backup: {\n region: 'US-WEST',\n uris: ['https://mobius-sjc.webex.com/api/v1'],\n },\n } as MobiusServers;\n};\n\n/**\n * Returns a mocked deviceInfo object.\n */\nexport const getMockDeviceInfo = () => {\n return {\n device: {\n deviceId: 'beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',\n uri: 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1/calling/web/devices/beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',\n status: 'active',\n lastSeen: '2022-04-05T05:08:46Z',\n addresses: ['sip:pbs9p4cbr9_G6JJNI5DD5NP@64941297.int10.bcld.webex.com'],\n clientDeviceUri: 'https://clientDeviceUrl',\n },\n };\n};\n\n/**\n * Returns a sample SCIM response object.\n */\nexport const getSampleScimResponse = () => {\n const sampleAvatar =\n 'https://avatar-int-us-east-1.webexcontent.com/Avtr~V1~1704d30d-a131-4bc7-9449-948487643793/V1~bf911e86a1561896d7d0053b46a8d0c9ed82a7bc434a1f84621c2c45cc825f37~3720694b1e4340818a3d12d70eb2b6e1~80';\n\n return {\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: false,\n type: 'personal',\n value: '5009',\n },\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: sampleAvatar,\n },\n {\n type: 'thumbnail',\n value: sampleAvatar,\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\n/**\n * Returns a sample people list response object.\n */\nexport const getSamplePeopleListResponse = () => {\n // cSpell:disable\n return {\n notFoundIds: null,\n items: [\n {\n id: 'Y2lzY29zcGFyazovL3VzL1BFT1BMRS9iODUzYmJkMS0xMTM2LTRkMjUtOTM4ZC0wYzM3NTMxYjEyMzM',\n emails: ['atlas.test.wxcwebrtc+user2@gmail.com'],\n phoneNumbers: [\n {type: 'work', value: '+12142865899'},\n {type: 'work', value: '+12142865890'},\n ],\n displayName: 'Krishna Kumar Rai',\n nickName: 'Krishna Kumar',\n firstName: 'Krishna Kumar',\n lastName: 'Rai',\n avatar:\n 'https://avatar-int-us-east-1.webexcontent.com/Avtr~V1~1704d30d-a131-4bc7-9449-948487643793/V1~63bb91536457f9b7d88739ae7cf78515800e468e0a4b59491b9c85b174c26eec~f10e91b5c0c0465ca8098f075ddec0b8~1600',\n orgId:\n 'Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi8xNzA0ZDMwZC1hMTMxLTRiYzctOTQ0OS05NDg0ODc2NDM3OTM',\n created: '2022-03-16T14:07:21.266Z',\n lastModified: '2023-01-16T11:10:40.693Z',\n lastActivity: '2023-01-27T08:21:06.988Z',\n status: 'inactive',\n type: 'person',\n },\n ],\n };\n // cSpell:enable\n};\n\n/**\n * Returns webrtc stats in raw and parsed format\n * statsWithVoOneWayDelayAndNw: raw & parsed,\n * statsWithoutVoOneWayDelayAndNw: raw & parsed.\n */\nexport const getSampleRawAndParsedMediaStats = () => {\n return {\n statsWithVoOneWayDelayAndNw: {\n raw: [\n {\n id: 'CF83:C5:E4:93:FE:3B:4A:A4:34:F3:E7:84:80:2A:A6:1F:BF:CA:AE:48:98:5F:9E:14:32:8E:EC:7E:FA:EB:71:D9',\n timestamp: 1680187470045.045,\n type: 'certificate',\n fingerprint:\n '83:C5:E4:93:FE:3B:4A:A4:34:F3:E7:84:80:2A:A6:1F:BF:CA:AE:48:98:5F:9E:14:32:8E:EC:7E:FA:EB:71:D9',\n fingerprintAlgorithm: 'sha-256',\n base64Certificate:\n 'MIIBFTCBvKADAgECAgg7QZ5hqSYvvjAKBggqhkjOPQQDAjARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMjMwMzI5MTQ0NDAzWhcNMjMwNDI5MTQ0NDAzWjARMQ8wDQYDVQQDDAZXZWJSVEMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmOwLsh05ty2dg9Z4lMP0eGKOEXiYK0aD7R6t9ZhmQGsnXOoJo6uI9PPep6KtwXu8gmsNgpWCFXchYqCXUc9XLMAoGCCqGSM49BAMCA0gAMEUCIAzhwwwBNgeoGDdmuP+E6bxa+jPCpUNxAojCvva483GQAiEAm1sV7ObKt0SWAxzYk4hBw3anywSTUb/mRmrqpctykPU=',\n },\n {\n id: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',\n timestamp: 1680187470045.045,\n type: 'certificate',\n fingerprint: 'E6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',\n fingerprintAlgorithm: 'sha-1',\n base64Certificate:\n 'MIIBrTCCAVMCAQEwCQYHKoZIzj0EATBjMQswCQYDVQQGEwJYWDEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDE2MDQGA1UEAwwtbWVkaWEtcG9vbDAud2Rmd3d4Yy1pbnQtMi5pbnQuaW5mcmEud2ViZXguY29tMB4XDTIzMDMzMDEyMDg1M1oXDTMzMDMyNzEyMDg1M1owYzELMAkGA1UEBhMCWFgxHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxNjA0BgNVBAMMLW1lZGlhLXBvb2wwLndkZnd3eGMtaW50LTIuaW50LmluZnJhLndlYmV4LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLxQbeY82wxCshXKWPfwPAD3aDF2oA5yvHnXAWBGHSO+yIqyEb5gOpoTgDNNrWerEQmjZQ0FeFAWv062KTS9FOIwCQYHKoZIzj0EAQNJADBGAiEA23zp5TJYq5OXFfOEc3ds0LHDyt7KQCLTItBJgXKik9oCIQCCA0qyNKx1v+AOtnkgDbBFjVArLF/5Sd3TIXMgc4VsnA==',\n },\n {\n id: 'CIT01_111_minPtime=10;useInbandFec=1',\n timestamp: 1680187470045.045,\n type: 'codec',\n transportId: 'T01',\n payloadType: 111,\n mimeType: 'audio/opus',\n clockRate: 48000,\n channels: 2,\n sdpFmtpLine: 'minPtime=10;useInbandFec=1',\n },\n {\n id: 'COT01_111_minPtime=10;useInbandFec=1',\n timestamp: 1680187470045.045,\n type: 'codec',\n transportId: 'T01',\n payloadType: 111,\n mimeType: 'audio/opus',\n clockRate: 48000,\n channels: 2,\n sdpFmtpLine: 'minPtime=10;useInbandFec=1',\n },\n {\n id: 'RTCIceCandidatePair_CPg7Va+n9f_xvQ5iqnX',\n timestamp: 1680187470045.045,\n type: 'candidate-pair',\n transportId: 'T01',\n localCandidateId: 'RTCIceCandidate_Ig7Va+n9f',\n remoteCandidateId: 'IxvQ5iqnX',\n state: 'succeeded',\n priority: 9114756780671369000,\n nominated: true,\n writable: true,\n packetsSent: 1036,\n packetsReceived: 1015,\n bytesSent: 103064,\n bytesReceived: 100460,\n totalRoundTripTime: 3.611,\n currentRoundTripTime: 0.303,\n availableOutgoingBitrate: 300000,\n requestsReceived: 0,\n requestsSent: 12,\n responsesReceived: 12,\n responsesSent: 0,\n consentRequestsSent: 9,\n packetsDiscardedOnSend: 0,\n bytesDiscardedOnSend: 0,\n },\n {\n id: 'DEPRECATED_S_default',\n timestamp: 1680187470045.045,\n type: 'stream',\n streamIdentifier: 'default',\n trackIds: ['DEPRECATED_TI2'],\n },\n {\n id: 'DEPRECATED_TI2',\n timestamp: 1680187470045.045,\n type: 'track',\n trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',\n remoteSource: true,\n ended: false,\n detached: false,\n kind: 'audio',\n jitterBufferDelay: 84508.8,\n jitterBufferEmittedCount: 958080,\n audioLevel: 0.004272591326639607,\n totalAudioEnergy: 0.6976435552354842,\n totalSamplesReceived: 987200,\n totalSamplesDuration: 21.480000000000558,\n concealedSamples: 27623,\n silentConcealedSamples: 21400,\n concealmentEvents: 8,\n insertedSamplesForDeceleration: 3844,\n removedSamplesForAcceleration: 2129,\n },\n {\n id: 'DEPRECATED_TO1',\n timestamp: 1680187470045.045,\n type: 'track',\n trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',\n mediaSourceId: 'SA1',\n remoteSource: false,\n ended: false,\n detached: false,\n kind: 'audio',\n echoReturnLoss: 13.656129837036133,\n echoReturnLossEnhancement: 7.137247085571289,\n },\n {\n id: 'DEPRECATED_VO1',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'vpn',\n ip: '10.227.211.139',\n address: '10.227.211.139',\n port: 9,\n protocol: 'tcp',\n candidateType: 'host',\n priority: 1518214911,\n foundation: '2654339674',\n usernameFragment: 'V+QJ',\n tcpType: 'active',\n },\n {\n id: 'IKm2fnMou',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'wifi',\n ip: '192.168.1.65',\n address: '192.168.1.65',\n port: 9,\n protocol: 'tcp',\n candidateType: 'host',\n priority: 1518280447,\n foundation: '1437462698',\n usernameFragment: 'V+QJ',\n tcpType: 'active',\n },\n {\n id: 'IT01A1746541880',\n timestamp: 1680187470045.045,\n type: 'inbound-rtp',\n ssrc: 1746541880,\n kind: 'audio',\n trackId: 'DEPRECATED_TI2',\n transportId: 'T01',\n codecId: 'CIT01_111_minPtime=10;useInbandFec=1',\n mediaType: 'audio',\n jitter: 0.008,\n packetsLost: 3,\n trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',\n mid: '0',\n remoteId: 'ROA1746541880',\n packetsReceived: 1003,\n packetsDiscarded: 0,\n fecPacketsReceived: 0,\n fecPacketsDiscarded: 0,\n bytesReceived: 76880,\n headerBytesReceived: 12036,\n lastPacketReceivedTimestamp: 1680187470035,\n jitterBufferDelay: 84508.8,\n jitterBufferTargetDelay: 92793.6,\n jitterBufferMinimumDelay: 92640,\n jitterBufferEmittedCount: 958080,\n totalSamplesReceived: 987200,\n concealedSamples: 27623,\n silentConcealedSamples: 21400,\n concealmentEvents: 8,\n insertedSamplesForDeceleration: 3844,\n removedSamplesForAcceleration: 2129,\n audioLevel: 0.004272591326639607,\n totalAudioEnergy: 0.6976435552354842,\n totalSamplesDuration: 21.480000000000558,\n },\n {\n id: 'IUzJLjNLE',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'wifi',\n ip: '192.168.1.65',\n address: '192.168.1.65',\n port: 58574,\n protocol: 'udp',\n candidateType: 'host',\n priority: 2122260223,\n foundation: '727847474',\n usernameFragment: 'V+QJ',\n },\n {\n id: 'RTCIceCandidate_Ig7Va+n9f',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'vpn',\n ip: '10.227.211.139',\n address: '10.227.211.139',\n port: 64898,\n protocol: 'udp',\n candidateType: 'host',\n priority: 2122194687,\n foundation: '3774472386',\n usernameFragment: 'V+QJ',\n },\n {\n id: 'IxvQ5iqnX',\n timestamp: 1680187470045.045,\n type: 'remote-candidate',\n transportId: 'T01',\n isRemote: true,\n ip: '207.182.171.180',\n address: '207.182.171.180',\n port: 19608,\n protocol: 'udp',\n candidateType: 'host',\n priority: 2130706431,\n foundation: 'mse',\n usernameFragment: 'S3cv',\n },\n {\n id: 'OT01A2728789632',\n timestamp: 1680187470045.045,\n type: 'outbound-rtp',\n ssrc: 2728789632,\n kind: 'audio',\n trackId: 'DEPRECATED_TO1',\n transportId: 'T01',\n codecId: 'COT01_111_minPtime=10;useInbandFec=1',\n mediaType: 'audio',\n mediaSourceId: 'SA1',\n remoteId: 'RIA2728789632',\n mid: '0',\n packetsSent: 1026,\n retransmittedPacketsSent: 0,\n bytesSent: 79294,\n headerBytesSent: 12312,\n retransmittedBytesSent: 0,\n targetBitrate: 32000,\n nackCount: 0,\n active: true,\n },\n {\n id: 'P',\n timestamp: 1680187470045.045,\n type: 'peer-connection',\n dataChannelsOpened: 0,\n dataChannelsClosed: 0,\n },\n {\n id: 'RIA2728789632',\n timestamp: 1680187469719,\n type: 'remote-inbound-rtp',\n ssrc: 2728789632,\n kind: 'audio',\n transportId: 'T01',\n codecId: 'COT01_111_minPtime=10;useInbandFec=1',\n jitter: 0.0055625,\n packetsLost: 0,\n localId: 'OT01A2728789632',\n roundTripTime: 0.665,\n fractionLost: 0,\n totalRoundTripTime: 2.509,\n roundTripTimeMeasurements: 4,\n },\n {\n id: 'ROA1746541880',\n timestamp: 1680187467829,\n type: 'remote-outbound-rtp',\n ssrc: 1746541880,\n kind: 'audio',\n transportId: 'T01',\n codecId: 'CIT01_111_minPtime=10;useInbandFec=1',\n packetsSent: 895,\n bytesSent: 68669,\n localId: 'IT01A1746541880',\n remoteTimestamp: 1680187467378,\n reportsSent: 5,\n roundTripTimeMeasurements: 0,\n totalRoundTripTime: 0,\n },\n {\n id: 'SA1',\n timestamp: 1680187470045.045,\n type: 'media-source',\n trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',\n kind: 'audio',\n audioLevel: 0.006469924008911405,\n totalAudioEnergy: 0.7681144799128602,\n totalSamplesDuration: 26.650000000001366,\n echoReturnLoss: 13.656129837036133,\n echoReturnLossEnhancement: 7.137247085571289,\n },\n {\n id: 'T01',\n timestamp: 1680187470045.045,\n type: 'transport',\n bytesSent: 103064,\n packetsSent: 1036,\n bytesReceived: 100460,\n packetsReceived: 1015,\n dtlsState: 'connected',\n selectedCandidatePairId: 'RTCIceCandidatePair_CPg7Va+n9f_xvQ5iqnX',\n localCertificateId:\n 'CF83:C5:E4:93:FE:3B:4A:A4:34:F3:E7:84:80:2A:A6:1F:BF:CA:AE:48:98:5F:9E:14:32:8E:EC:7E:FA:EB:71:D9',\n remoteCertificateId: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',\n tlsVersion: 'tls1.2',\n dtlsCipher: 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',\n dtlsRole: 'client',\n srtpCipher: 'AES_CM_128_HMAC_SHA1_80',\n selectedCandidatePairChanges: 1,\n iceRole: 'controlling',\n iceLocalUsernameFragment: 'V+QJ',\n iceState: 'connected',\n },\n ],\n parsed: {\n 'rtp-rxstat': {\n LostPkt: 3,\n Pkt: 1003,\n LatePkt: 0,\n Oct: 76880,\n Dur: 26.650000000001366,\n AvgJit: 0.08820641282565131,\n VQMetrics: {\n maxJitter: 0,\n VoPktSizeMs: 20,\n VoOneWayDelayMs: 0.313625,\n hwType: `${platform.os}/${platform.name}-${platform.version}`,\n networkType: 'vpn',\n VoRxCodec: 'opus',\n },\n },\n 'rtp-txstat': {\n Pkt: 1026,\n Oct: 79294,\n Dur: 26.650000000001366,\n VQMetrics: {VoTxCodec: 'opus', rtpBitRate: 32000},\n },\n },\n },\n statsWithoutVoOneWayDelayAndNw: {\n raw: [\n {\n id: 'CF83:C5:E4:93:FE:3B:4A:A4:34:F3:E7:84:80:2A:A6:1F:BF:CA:AE:48:98:5F:9E:14:32:8E:EC:7E:FA:EB:71:D9',\n timestamp: 1680187470045.045,\n type: 'certificate',\n fingerprint:\n '83:C5:E4:93:FE:3B:4A:A4:34:F3:E7:84:80:2A:A6:1F:BF:CA:AE:48:98:5F:9E:14:32:8E:EC:7E:FA:EB:71:D9',\n fingerprintAlgorithm: 'sha-256',\n base64Certificate:\n 'MIIBFTCBvKADAgECAgg7QZ5hqSYvvjAKBggqhkjOPQQDAjARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMjMwMzI5MTQ0NDAzWhcNMjMwNDI5MTQ0NDAzWjARMQ8wDQYDVQQDDAZXZWJSVEMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmOwLsh05ty2dg9Z4lMP0eGKOEXiYK0aD7R6t9ZhmQGsnXOoJo6uI9PPep6KtwXu8gmsNgpWCFXchYqCXUc9XLMAoGCCqGSM49BAMCA0gAMEUCIAzhwwwBNgeoGDdmuP+E6bxa+jPCpUNxAojCvva483GQAiEAm1sV7ObKt0SWAxzYk4hBw3anywSTUb/mRmrqpctykPU=',\n },\n {\n id: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',\n timestamp: 1680187470045.045,\n type: 'certificate',\n fingerprint: 'E6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',\n fingerprintAlgorithm: 'sha-1',\n base64Certificate:\n 'MIIBrTCCAVMCAQEwCQYHKoZIzj0EATBjMQswCQYDVQQGEwJYWDEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDE2MDQGA1UEAwwtbWVkaWEtcG9vbDAud2Rmd3d4Yy1pbnQtMi5pbnQuaW5mcmEud2ViZXguY29tMB4XDTIzMDMzMDEyMDg1M1oXDTMzMDMyNzEyMDg1M1owYzELMAkGA1UEBhMCWFgxHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxNjA0BgNVBAMMLW1lZGlhLXBvb2wwLndkZnd3eGMtaW50LTIuaW50LmluZnJhLndlYmV4LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLxQbeY82wxCshXKWPfwPAD3aDF2oA5yvHnXAWBGHSO+yIqyEb5gOpoTgDNNrWerEQmjZQ0FeFAWv062KTS9FOIwCQYHKoZIzj0EAQNJADBGAiEA23zp5TJYq5OXFfOEc3ds0LHDyt7KQCLTItBJgXKik9oCIQCCA0qyNKx1v+AOtnkgDbBFjVArLF/5Sd3TIXMgc4VsnA==',\n },\n {\n id: 'CIT01_111_minPtime=10;useInbandFec=1',\n timestamp: 1680187470045.045,\n type: 'codec',\n transportId: 'T01',\n payloadType: 111,\n mimeType: 'audio/opus',\n clockRate: 48000,\n channels: 2,\n sdpFmtpLine: 'minPtime=10;useInbandFec=1',\n },\n {\n id: 'COT01_111_minPtime=10;useInbandFec=1',\n timestamp: 1680187470045.045,\n type: 'codec',\n transportId: 'T01',\n payloadType: 111,\n mimeType: 'audio/opus',\n clockRate: 48000,\n channels: 2,\n sdpFmtpLine: 'minPtime=10;useInbandFec=1',\n },\n {\n id: 'CPg7Va+n9f_xvQ5iqnX',\n timestamp: 1680187470045.045,\n type: 'candidate-pair',\n transportId: 'T01',\n localCandidateId: 'Ig7Va+n9f',\n remoteCandidateId: 'IxvQ5iqnX',\n state: 'succeeded',\n priority: 9114756780671369000,\n nominated: true,\n writable: true,\n packetsSent: 1036,\n packetsReceived: 1015,\n bytesSent: 103064,\n bytesReceived: 100460,\n totalRoundTripTime: 3.611,\n currentRoundTripTime: 0.303,\n availableOutgoingBitrate: 300000,\n requestsReceived: 0,\n requestsSent: 12,\n responsesReceived: 12,\n responsesSent: 0,\n consentRequestsSent: 9,\n packetsDiscardedOnSend: 0,\n bytesDiscardedOnSend: 0,\n },\n {\n id: 'DEPRECATED_S_default',\n timestamp: 1680187470045.045,\n type: 'stream',\n streamIdentifier: 'default',\n trackIds: ['DEPRECATED_TI2'],\n },\n {\n id: 'DEPRECATED_TI2',\n timestamp: 1680187470045.045,\n type: 'track',\n trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',\n remoteSource: true,\n ended: false,\n detached: false,\n kind: 'audio',\n jitterBufferDelay: 84508.8,\n jitterBufferEmittedCount: 958080,\n audioLevel: 0.004272591326639607,\n totalAudioEnergy: 0.6976435552354842,\n totalSamplesReceived: 987200,\n totalSamplesDuration: 21.480000000000558,\n concealedSamples: 27623,\n silentConcealedSamples: 21400,\n concealmentEvents: 8,\n insertedSamplesForDeceleration: 3844,\n removedSamplesForAcceleration: 2129,\n },\n {\n id: 'DEPRECATED_TO1',\n timestamp: 1680187470045.045,\n type: 'track',\n trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',\n mediaSourceId: 'SA1',\n remoteSource: false,\n ended: false,\n detached: false,\n kind: 'audio',\n echoReturnLoss: 13.656129837036133,\n echoReturnLossEnhancement: 7.137247085571289,\n },\n {\n id: 'DEPRECATED_VO1',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'vpn',\n ip: '10.227.211.139',\n address: '10.227.211.139',\n port: 9,\n protocol: 'tcp',\n candidateType: 'host',\n priority: 1518214911,\n foundation: '2654339674',\n usernameFragment: 'V+QJ',\n tcpType: 'active',\n },\n {\n id: 'IKm2fnMou',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'wifi',\n ip: '192.168.1.65',\n address: '192.168.1.65',\n port: 9,\n protocol: 'tcp',\n candidateType: 'host',\n priority: 1518280447,\n foundation: '1437462698',\n usernameFragment: 'V+QJ',\n tcpType: 'active',\n },\n {\n id: 'IT01A1746541880',\n timestamp: 1680187470045.045,\n type: 'inbound-rtp',\n ssrc: 1746541880,\n kind: 'audio',\n trackId: 'DEPRECATED_TI2',\n transportId: 'T01',\n codecId: 'CIT01_111_minPtime=10;useInbandFec=1',\n mediaType: 'audio',\n jitter: 0.008,\n packetsLost: 3,\n trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',\n mid: '0',\n remoteId: 'ROA1746541880',\n packetsReceived: 1003,\n packetsDiscarded: 0,\n fecPacketsReceived: 0,\n fecPacketsDiscarded: 0,\n bytesReceived: 76880,\n headerBytesReceived: 12036,\n lastPacketReceivedTimestamp: 1680187470035,\n jitterBufferDelay: 84508.8,\n jitterBufferTargetDelay: 92793.6,\n jitterBufferMinimumDelay: 92640,\n jitterBufferEmittedCount: 958080,\n totalSamplesReceived: 987200,\n concealedSamples: 27623,\n silentConcealedSamples: 21400,\n concealmentEvents: 8,\n insertedSamplesForDeceleration: 3844,\n removedSamplesForAcceleration: 2129,\n audioLevel: 0.004272591326639607,\n totalAudioEnergy: 0.6976435552354842,\n totalSamplesDuration: 21.480000000000558,\n },\n {\n id: 'IUzJLjNLE',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'wifi',\n ip: '192.168.1.65',\n address: '192.168.1.65',\n port: 58574,\n protocol: 'udp',\n candidateType: 'host',\n priority: 2122260223,\n foundation: '727847474',\n usernameFragment: 'V+QJ',\n },\n {\n id: 'Ig7Va+n9f',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'vpn',\n ip: '10.227.211.139',\n address: '10.227.211.139',\n port: 64898,\n protocol: 'udp',\n candidateType: 'host',\n priority: 2122194687,\n foundation: '3774472386',\n usernameFragment: 'V+QJ',\n },\n {\n id: 'IxvQ5iqnX',\n timestamp: 1680187470045.045,\n type: 'remote-candidate',\n transportId: 'T01',\n isRemote: true,\n ip: '207.182.171.180',\n address: '207.182.171.180',\n port: 19608,\n protocol: 'udp',\n candidateType: 'host',\n priority: 2130706431,\n foundation: 'mse',\n usernameFragment: 'S3cv',\n },\n {\n id: 'OT01A2728789632',\n timestamp: 1680187470045.045,\n type: 'outbound-rtp',\n ssrc: 2728789632,\n kind: 'audio',\n trackId: 'DEPRECATED_TO1',\n transportId: 'T01',\n codecId: 'COT01_111_minPtime=10;useInbandFec=1',\n mediaType: 'audio',\n mediaSourceId: 'SA1',\n remoteId: 'RIA2728789632',\n mid: '0',\n packetsSent: 1026,\n retransmittedPacketsSent: 0,\n bytesSent: 79294,\n headerBytesSent: 12312,\n retransmittedBytesSent: 0,\n targetBitrate: 32000,\n nackCount: 0,\n active: true,\n },\n {\n id: 'P',\n timestamp: 1680187470045.045,\n type: 'peer-connection',\n dataChannelsOpened: 0,\n dataChannelsClosed: 0,\n },\n {\n id: 'RIA2728789632',\n timestamp: 1680187469719,\n type: 'remote-inbound-rtp',\n ssrc: 2728789632,\n kind: 'audio',\n transportId: 'T01',\n codecId: 'COT01_111_minPtime=10;useInbandFec=1',\n jitter: 0.0055625,\n packetsLost: 0,\n localId: 'OT01A2728789632',\n roundTripTime: 0.665,\n fractionLost: 0,\n totalRoundTripTime: 2.509,\n roundTripTimeMeasurements: 0,\n },\n {\n id: 'ROA1746541880',\n timestamp: 1680187467829,\n type: 'remote-outbound-rtp',\n ssrc: 1746541880,\n kind: 'audio',\n transportId: 'T01',\n codecId: 'CIT01_111_minPtime=10;useInbandFec=1',\n packetsSent: 895,\n bytesSent: 68669,\n localId: 'IT01A1746541880',\n remoteTimestamp: 1680187467378,\n reportsSent: 5,\n roundTripTimeMeasurements: 0,\n totalRoundTripTime: 0,\n },\n {\n id: 'SA1',\n timestamp: 1680187470045.045,\n type: 'media-source',\n trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',\n kind: 'audio',\n audioLevel: 0.006469924008911405,\n totalAudioEnergy: 0.7681144799128602,\n totalSamplesDuration: 26.650000000001366,\n echoReturnLoss: 13.656129837036133,\n echoReturnLossEnhancement: 7.137247085571289,\n },\n {\n id: 'T01',\n timestamp: 1680187470045.045,\n type: 'transport',\n bytesSent: 103064,\n packetsSent: 1036,\n bytesReceived: 100460,\n packetsReceived: 1015,\n dtlsState: 'connected',\n selectedCandidatePairId: 'CPg7Va+n9f_xvQ5iqnX',\n localCertificateId:\n 'CF83:C5:E4:93:FE:3B:4A:A4:34:F3:E7:84:80:2A:A6:1F:BF:CA:AE:48:98:5F:9E:14:32:8E:EC:7E:FA:EB:71:D9',\n remoteCertificateId: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',\n tlsVersion: 'tls1.2',\n dtlsCipher: 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',\n dtlsRole: 'client',\n srtpCipher: 'AES_CM_128_HMAC_SHA1_80',\n selectedCandidatePairChanges: 1,\n iceRole: 'controlling',\n iceLocalUsernameFragment: 'V+QJ',\n iceState: 'connected',\n },\n ],\n parsed: {\n 'rtp-rxstat': {\n LostPkt: 3,\n Pkt: 1003,\n LatePkt: 0,\n Oct: 76880,\n Dur: 26.650000000001366,\n AvgJit: 0.08820641282565131,\n VQMetrics: {\n maxJitter: 0,\n VoPktSizeMs: 20,\n VoOneWayDelayMs: 0,\n hwType: `${platform.os}/${platform.name}-${platform.version}`,\n networkType: undefined,\n VoRxCodec: 'opus',\n },\n },\n 'rtp-txstat': {\n Pkt: 1026,\n Oct: 79294,\n Dur: 26.650000000001366,\n VQMetrics: {VoTxCodec: 'opus', rtpBitRate: 32000},\n },\n },\n },\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_platform","_interopRequireDefault","require","MediaSDKMock","jest","createMockFromModule","getTestUtilsWebex","version","canAuthorize","credentials","getUserToken","fn","ready","request","internal","metrics","submitClientMetrics","mercury","on","off","connected","connecting","calendar","device","url","deviceId","userId","orgId","callingBehavior","features","entitlement","models","_values","key","dss","lookup","register","encryption","decryptText","encryptText","kms","createUnboundKeys","createResource","bindKey","presence","support","services","_hostCatalog","_serviceUrls","mobius","identity","janus","wdm","broadworksIdpProxy","hydra","mercuryApi","contactsService","directorySearch","fetchClientRegionInfo","logger","log","error","warn","trace","info","debug","messages","memberships","people","list","rooms","teams","registration","exports","triggerRegistration","mediaConnection","RoapMediaConnection","localTracks","direction","audio","video","screenShareVideo","flushPromises","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","count","wrap","_callee$","_context","prev","next","_promise","all","_toConsumableArray2","Array","map","resolve","stop","_x","apply","arguments","mockCallingClient","emit","getMockRequestTemplate","headers","service","getMobiusDiscoveryResponse","primary","region","uris","backup","getMockDeviceInfo","uri","status","lastSeen","addresses","clientDeviceUri","getSampleScimResponse","sampleAvatar","totalResults","itemsPerPage","startIndex","schemas","Resources","userName","emails","type","value","name","givenName","familyName","phoneNumbers","entitlements","cisSyncSource","photos","id","meta","created","lastModified","lastLoginTime","location","organizationID","creator","modifier","displayName","active","licenseID","userSettings","sipAddresses","isTeamsOnJabberEnabled","isUCCallOnJabberEnabled","userType","mfaEnabled","teamsClusterId","getSamplePeopleListResponse","notFoundIds","items","nickName","firstName","lastName","avatar","lastActivity","getSampleRawAndParsedMediaStats","statsWithVoOneWayDelayAndNw","raw","timestamp","fingerprint","fingerprintAlgorithm","base64Certificate","transportId","payloadType","mimeType","clockRate","channels","sdpFmtpLine","localCandidateId","remoteCandidateId","state","priority","nominated","writable","packetsSent","packetsReceived","bytesSent","bytesReceived","totalRoundTripTime","currentRoundTripTime","availableOutgoingBitrate","requestsReceived","requestsSent","responsesReceived","responsesSent","consentRequestsSent","packetsDiscardedOnSend","bytesDiscardedOnSend","streamIdentifier","trackIds","trackIdentifier","remoteSource","ended","detached","kind","jitterBufferDelay","jitterBufferEmittedCount","audioLevel","totalAudioEnergy","totalSamplesReceived","totalSamplesDuration","concealedSamples","silentConcealedSamples","concealmentEvents","insertedSamplesForDeceleration","removedSamplesForAcceleration","mediaSourceId","echoReturnLoss","echoReturnLossEnhancement","isRemote","networkType","ip","address","port","protocol","candidateType","foundation","usernameFragment","tcpType","ssrc","trackId","codecId","mediaType","jitter","packetsLost","mid","remoteId","packetsDiscarded","fecPacketsReceived","fecPacketsDiscarded","headerBytesReceived","lastPacketReceivedTimestamp","jitterBufferTargetDelay","jitterBufferMinimumDelay","retransmittedPacketsSent","headerBytesSent","retransmittedBytesSent","targetBitrate","nackCount","dataChannelsOpened","dataChannelsClosed","localId","roundTripTime","fractionLost","roundTripTimeMeasurements","remoteTimestamp","reportsSent","dtlsState","selectedCandidatePairId","localCertificateId","remoteCertificateId","tlsVersion","dtlsCipher","dtlsRole","srtpCipher","selectedCandidatePairChanges","iceRole","iceLocalUsernameFragment","iceState","parsed","LostPkt","Pkt","LatePkt","Oct","Dur","AvgJit","VQMetrics","maxJitter","VoPktSizeMs","VoOneWayDelayMs","hwType","concat","platform","os","VoRxCodec","VoTxCodec","rtpBitRate","statsWithoutVoOneWayDelayAndNw","undefined"],"sources":["testUtil.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\n/*\n This file acts as a utility to create a mock Webex object that can be imported\n into UT. As we can see, the methods have been replaced with mock jest.fn().\n In our respective UTs, we can specify the return values of these functions\n using webex.request.mockReturnValue() or webex.request.mockReturnValueOnce().\n*/\nimport {MediaConnectionConfig} from '@webex/internal-media-core';\nimport platform from 'platform';\nimport {MobiusServers} from './types';\n\nconst MediaSDKMock = jest.createMockFromModule<typeof import('@webex/internal-media-core')>(\n '@webex/internal-media-core'\n);\n\n/**\n * Returns a fresh copy of the webex object per call.\n */\nexport function getTestUtilsWebex() {\n return {\n // top level primitives/funcs\n version: '1.1.1',\n canAuthorize: true,\n credentials: {\n getUserToken: jest.fn(),\n },\n ready: true,\n request: jest.fn(),\n // internal plugins\n internal: {\n metrics: {\n submitClientMetrics: jest.fn(),\n },\n mercury: {\n on: jest.fn(),\n off: jest.fn(),\n connected: true,\n connecting: false,\n },\n calendar: null,\n device: {\n url: 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n deviceId: 'c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n userId: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',\n orgId: '1704d30d-a131-4bc7-9449-948487643793',\n version: '1',\n callingBehavior: 'NATIVE_WEBEX_TEAMS_CALLING',\n features: {\n entitlement: {\n models: [{_values: {key: 'bc-sp-standard'}}],\n },\n },\n },\n dss: {\n lookup: jest.fn(),\n register: jest.fn(),\n },\n encryption: {\n decryptText: jest.fn(),\n encryptText: jest.fn(),\n kms: {\n createUnboundKeys: jest.fn(),\n createResource: jest.fn(),\n bindKey: jest.fn(),\n },\n },\n presence: jest.fn(),\n support: jest.fn(),\n services: {\n _hostCatalog: {},\n _serviceUrls: {\n mobius: 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1',\n identity: 'https://identity-b-us.webex.com',\n janus: 'https://janus-intb.ciscospark.com/janus/api/v1',\n wdm: 'https://wdm-a.wbx2.com/wdm/api/v1',\n broadworksIdpProxy: 'https://broadworks-idp-proxy-a.wbx2.com/broadworks-idp-proxy/api/v1',\n hydra: 'https://hydra-a.wbx2.com/v1/',\n mercuryApi: 'https://mercury-api-intb.ciscospark.com/v1',\n 'ucmgmt-gateway': 'https://gw.telemetry.int-ucmgmt.cisco.com',\n contactsService: 'https://contacts-service-a.wbx2.com/contact/api/v1',\n directorySearch: 'https://directory-search-a.wbx2.com/direcory-search/api/v1/',\n },\n fetchClientRegionInfo: jest.fn(),\n },\n },\n // public plugins\n logger: {\n log: jest.fn(),\n error: jest.fn(),\n warn: jest.fn(),\n trace: jest.fn(),\n info: jest.fn(),\n debug: jest.fn(),\n },\n messages: null,\n memberships: null,\n people: {\n list: jest.fn(),\n },\n rooms: null,\n teams: null,\n };\n}\n\nexport const registration = {\n triggerRegistration: () => jest.fn(),\n};\n\nexport const mediaConnection = new MediaSDKMock.RoapMediaConnection(\n {} as MediaConnectionConfig,\n {\n localTracks: {},\n direction: {\n audio: 'sendrecv',\n video: 'sendrecv',\n screenShareVideo: 'sendrecv',\n },\n },\n ''\n);\n\n/**\n * @param count - Number of Promises to flush.\n */\nexport const flushPromises = async (count: number): Promise<void> => {\n await Promise.all([...Array(count)].map(() => Promise.resolve()));\n};\n\nexport const mockCallingClient = {\n emit: jest.fn(),\n register: jest.fn(),\n on: jest.fn(),\n off: jest.fn(),\n};\n\nexport const getMockRequestTemplate = () => {\n return {\n headers: {\n 'cisco-device-url':\n 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n 'spark-user-agent': 'webex-calling/beta',\n },\n service: 'mobius',\n };\n};\n\nexport const getMobiusDiscoveryResponse = () => {\n return {\n primary: {\n region: 'US-EAST',\n uris: ['https://mobius-dfw.webex.com/api/v1'],\n },\n backup: {\n region: 'US-WEST',\n uris: ['https://mobius-sjc.webex.com/api/v1'],\n },\n } as MobiusServers;\n};\n\n/**\n * Returns a mocked deviceInfo object.\n */\nexport const getMockDeviceInfo = () => {\n return {\n device: {\n deviceId: 'beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',\n uri: 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1/calling/web/devices/beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',\n status: 'active',\n lastSeen: '2022-04-05T05:08:46Z',\n addresses: ['sip:pbs9p4cbr9_G6JJNI5DD5NP@64941297.int10.bcld.webex.com'],\n clientDeviceUri: 'https://clientDeviceUrl',\n },\n };\n};\n\n/**\n * Returns a sample SCIM response object.\n */\nexport const getSampleScimResponse = () => {\n const sampleAvatar =\n 'https://avatar-int-us-east-1.webexcontent.com/Avtr~V1~1704d30d-a131-4bc7-9449-948487643793/V1~bf911e86a1561896d7d0053b46a8d0c9ed82a7bc434a1f84621c2c45cc825f37~3720694b1e4340818a3d12d70eb2b6e1~80';\n\n return {\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: false,\n type: 'personal',\n value: '5009',\n },\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: sampleAvatar,\n },\n {\n type: 'thumbnail',\n value: sampleAvatar,\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\n/**\n * Returns a sample people list response object.\n */\nexport const getSamplePeopleListResponse = () => {\n // cSpell:disable\n return {\n notFoundIds: null,\n items: [\n {\n id: 'Y2lzY29zcGFyazovL3VzL1BFT1BMRS9iODUzYmJkMS0xMTM2LTRkMjUtOTM4ZC0wYzM3NTMxYjEyMzM',\n emails: ['atlas.test.wxcwebrtc+user2@gmail.com'],\n phoneNumbers: [\n {type: 'work', value: '+12142865899'},\n {type: 'work', value: '+12142865890'},\n ],\n displayName: 'Krishna Kumar Rai',\n nickName: 'Krishna Kumar',\n firstName: 'Krishna Kumar',\n lastName: 'Rai',\n avatar:\n 'https://avatar-int-us-east-1.webexcontent.com/Avtr~V1~1704d30d-a131-4bc7-9449-948487643793/V1~63bb91536457f9b7d88739ae7cf78515800e468e0a4b59491b9c85b174c26eec~f10e91b5c0c0465ca8098f075ddec0b8~1600',\n orgId:\n 'Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi8xNzA0ZDMwZC1hMTMxLTRiYzctOTQ0OS05NDg0ODc2NDM3OTM',\n created: '2022-03-16T14:07:21.266Z',\n lastModified: '2023-01-16T11:10:40.693Z',\n lastActivity: '2023-01-27T08:21:06.988Z',\n status: 'inactive',\n type: 'person',\n },\n ],\n };\n // cSpell:enable\n};\n\n/**\n * Returns webrtc stats in raw and parsed format\n * statsWithVoOneWayDelayAndNw: raw & parsed,\n * statsWithoutVoOneWayDelayAndNw: raw & parsed.\n */\nexport const getSampleRawAndParsedMediaStats = () => {\n return {\n statsWithVoOneWayDelayAndNw: {\n raw: [\n {\n id: 'CF83:C5:E4:93:FE:3B:4A:A4:34:F3:E7:84:80:2A:A6:1F:BF:CA:AE:48:98:5F:9E:14:32:8E:EC:7E:FA:EB:71:D9',\n timestamp: 1680187470045.045,\n type: 'certificate',\n fingerprint:\n '83:C5:E4:93:FE:3B:4A:A4:34:F3:E7:84:80:2A:A6:1F:BF:CA:AE:48:98:5F:9E:14:32:8E:EC:7E:FA:EB:71:D9',\n fingerprintAlgorithm: 'sha-256',\n base64Certificate:\n 'MIIBFTCBvKADAgECAgg7QZ5hqSYvvjAKBggqhkjOPQQDAjARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMjMwMzI5MTQ0NDAzWhcNMjMwNDI5MTQ0NDAzWjARMQ8wDQYDVQQDDAZXZWJSVEMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmOwLsh05ty2dg9Z4lMP0eGKOEXiYK0aD7R6t9ZhmQGsnXOoJo6uI9PPep6KtwXu8gmsNgpWCFXchYqCXUc9XLMAoGCCqGSM49BAMCA0gAMEUCIAzhwwwBNgeoGDdmuP+E6bxa+jPCpUNxAojCvva483GQAiEAm1sV7ObKt0SWAxzYk4hBw3anywSTUb/mRmrqpctykPU=',\n },\n {\n id: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',\n timestamp: 1680187470045.045,\n type: 'certificate',\n fingerprint: 'E6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',\n fingerprintAlgorithm: 'sha-1',\n base64Certificate:\n 'MIIBrTCCAVMCAQEwCQYHKoZIzj0EATBjMQswCQYDVQQGEwJYWDEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDE2MDQGA1UEAwwtbWVkaWEtcG9vbDAud2Rmd3d4Yy1pbnQtMi5pbnQuaW5mcmEud2ViZXguY29tMB4XDTIzMDMzMDEyMDg1M1oXDTMzMDMyNzEyMDg1M1owYzELMAkGA1UEBhMCWFgxHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxNjA0BgNVBAMMLW1lZGlhLXBvb2wwLndkZnd3eGMtaW50LTIuaW50LmluZnJhLndlYmV4LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLxQbeY82wxCshXKWPfwPAD3aDF2oA5yvHnXAWBGHSO+yIqyEb5gOpoTgDNNrWerEQmjZQ0FeFAWv062KTS9FOIwCQYHKoZIzj0EAQNJADBGAiEA23zp5TJYq5OXFfOEc3ds0LHDyt7KQCLTItBJgXKik9oCIQCCA0qyNKx1v+AOtnkgDbBFjVArLF/5Sd3TIXMgc4VsnA==',\n },\n {\n id: 'CIT01_111_minPtime=10;useInbandFec=1',\n timestamp: 1680187470045.045,\n type: 'codec',\n transportId: 'T01',\n payloadType: 111,\n mimeType: 'audio/opus',\n clockRate: 48000,\n channels: 2,\n sdpFmtpLine: 'minPtime=10;useInbandFec=1',\n },\n {\n id: 'COT01_111_minPtime=10;useInbandFec=1',\n timestamp: 1680187470045.045,\n type: 'codec',\n transportId: 'T01',\n payloadType: 111,\n mimeType: 'audio/opus',\n clockRate: 48000,\n channels: 2,\n sdpFmtpLine: 'minPtime=10;useInbandFec=1',\n },\n {\n id: 'RTCIceCandidatePair_CPg7Va+n9f_xvQ5iqnX',\n timestamp: 1680187470045.045,\n type: 'candidate-pair',\n transportId: 'T01',\n localCandidateId: 'RTCIceCandidate_Ig7Va+n9f',\n remoteCandidateId: 'IxvQ5iqnX',\n state: 'succeeded',\n priority: 9114756780671369000,\n nominated: true,\n writable: true,\n packetsSent: 1036,\n packetsReceived: 1015,\n bytesSent: 103064,\n bytesReceived: 100460,\n totalRoundTripTime: 3.611,\n currentRoundTripTime: 0.303,\n availableOutgoingBitrate: 300000,\n requestsReceived: 0,\n requestsSent: 12,\n responsesReceived: 12,\n responsesSent: 0,\n consentRequestsSent: 9,\n packetsDiscardedOnSend: 0,\n bytesDiscardedOnSend: 0,\n },\n {\n id: 'DEPRECATED_S_default',\n timestamp: 1680187470045.045,\n type: 'stream',\n streamIdentifier: 'default',\n trackIds: ['DEPRECATED_TI2'],\n },\n {\n id: 'DEPRECATED_TI2',\n timestamp: 1680187470045.045,\n type: 'track',\n trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',\n remoteSource: true,\n ended: false,\n detached: false,\n kind: 'audio',\n jitterBufferDelay: 84508.8,\n jitterBufferEmittedCount: 958080,\n audioLevel: 0.004272591326639607,\n totalAudioEnergy: 0.6976435552354842,\n totalSamplesReceived: 987200,\n totalSamplesDuration: 21.480000000000558,\n concealedSamples: 27623,\n silentConcealedSamples: 21400,\n concealmentEvents: 8,\n insertedSamplesForDeceleration: 3844,\n removedSamplesForAcceleration: 2129,\n },\n {\n id: 'DEPRECATED_TO1',\n timestamp: 1680187470045.045,\n type: 'track',\n trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',\n mediaSourceId: 'SA1',\n remoteSource: false,\n ended: false,\n detached: false,\n kind: 'audio',\n echoReturnLoss: 13.656129837036133,\n echoReturnLossEnhancement: 7.137247085571289,\n },\n {\n id: 'DEPRECATED_VO1',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'vpn',\n ip: '10.227.211.139',\n address: '10.227.211.139',\n port: 9,\n protocol: 'tcp',\n candidateType: 'host',\n priority: 1518214911,\n foundation: '2654339674',\n usernameFragment: 'V+QJ',\n tcpType: 'active',\n },\n {\n id: 'IKm2fnMou',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'wifi',\n ip: '192.168.1.65',\n address: '192.168.1.65',\n port: 9,\n protocol: 'tcp',\n candidateType: 'host',\n priority: 1518280447,\n foundation: '1437462698',\n usernameFragment: 'V+QJ',\n tcpType: 'active',\n },\n {\n id: 'IT01A1746541880',\n timestamp: 1680187470045.045,\n type: 'inbound-rtp',\n ssrc: 1746541880,\n kind: 'audio',\n trackId: 'DEPRECATED_TI2',\n transportId: 'T01',\n codecId: 'CIT01_111_minPtime=10;useInbandFec=1',\n mediaType: 'audio',\n jitter: 0.008,\n packetsLost: 3,\n trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',\n mid: '0',\n remoteId: 'ROA1746541880',\n packetsReceived: 1003,\n packetsDiscarded: 0,\n fecPacketsReceived: 0,\n fecPacketsDiscarded: 0,\n bytesReceived: 76880,\n headerBytesReceived: 12036,\n lastPacketReceivedTimestamp: 1680187470035,\n jitterBufferDelay: 84508.8,\n jitterBufferTargetDelay: 92793.6,\n jitterBufferMinimumDelay: 92640,\n jitterBufferEmittedCount: 958080,\n totalSamplesReceived: 987200,\n concealedSamples: 27623,\n silentConcealedSamples: 21400,\n concealmentEvents: 8,\n insertedSamplesForDeceleration: 3844,\n removedSamplesForAcceleration: 2129,\n audioLevel: 0.004272591326639607,\n totalAudioEnergy: 0.6976435552354842,\n totalSamplesDuration: 21.480000000000558,\n },\n {\n id: 'IUzJLjNLE',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'wifi',\n ip: '192.168.1.65',\n address: '192.168.1.65',\n port: 58574,\n protocol: 'udp',\n candidateType: 'host',\n priority: 2122260223,\n foundation: '727847474',\n usernameFragment: 'V+QJ',\n },\n {\n id: 'RTCIceCandidate_Ig7Va+n9f',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'vpn',\n ip: '10.227.211.139',\n address: '10.227.211.139',\n port: 64898,\n protocol: 'udp',\n candidateType: 'host',\n priority: 2122194687,\n foundation: '3774472386',\n usernameFragment: 'V+QJ',\n },\n {\n id: 'IxvQ5iqnX',\n timestamp: 1680187470045.045,\n type: 'remote-candidate',\n transportId: 'T01',\n isRemote: true,\n ip: '207.182.171.180',\n address: '207.182.171.180',\n port: 19608,\n protocol: 'udp',\n candidateType: 'host',\n priority: 2130706431,\n foundation: 'mse',\n usernameFragment: 'S3cv',\n },\n {\n id: 'OT01A2728789632',\n timestamp: 1680187470045.045,\n type: 'outbound-rtp',\n ssrc: 2728789632,\n kind: 'audio',\n trackId: 'DEPRECATED_TO1',\n transportId: 'T01',\n codecId: 'COT01_111_minPtime=10;useInbandFec=1',\n mediaType: 'audio',\n mediaSourceId: 'SA1',\n remoteId: 'RIA2728789632',\n mid: '0',\n packetsSent: 1026,\n retransmittedPacketsSent: 0,\n bytesSent: 79294,\n headerBytesSent: 12312,\n retransmittedBytesSent: 0,\n targetBitrate: 32000,\n nackCount: 0,\n active: true,\n },\n {\n id: 'P',\n timestamp: 1680187470045.045,\n type: 'peer-connection',\n dataChannelsOpened: 0,\n dataChannelsClosed: 0,\n },\n {\n id: 'RIA2728789632',\n timestamp: 1680187469719,\n type: 'remote-inbound-rtp',\n ssrc: 2728789632,\n kind: 'audio',\n transportId: 'T01',\n codecId: 'COT01_111_minPtime=10;useInbandFec=1',\n jitter: 0.0055625,\n packetsLost: 0,\n localId: 'OT01A2728789632',\n roundTripTime: 0.665,\n fractionLost: 0,\n totalRoundTripTime: 2.509,\n roundTripTimeMeasurements: 4,\n },\n {\n id: 'ROA1746541880',\n timestamp: 1680187467829,\n type: 'remote-outbound-rtp',\n ssrc: 1746541880,\n kind: 'audio',\n transportId: 'T01',\n codecId: 'CIT01_111_minPtime=10;useInbandFec=1',\n packetsSent: 895,\n bytesSent: 68669,\n localId: 'IT01A1746541880',\n remoteTimestamp: 1680187467378,\n reportsSent: 5,\n roundTripTimeMeasurements: 0,\n totalRoundTripTime: 0,\n },\n {\n id: 'SA1',\n timestamp: 1680187470045.045,\n type: 'media-source',\n trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',\n kind: 'audio',\n audioLevel: 0.006469924008911405,\n totalAudioEnergy: 0.7681144799128602,\n totalSamplesDuration: 26.650000000001366,\n echoReturnLoss: 13.656129837036133,\n echoReturnLossEnhancement: 7.137247085571289,\n },\n {\n id: 'T01',\n timestamp: 1680187470045.045,\n type: 'transport',\n bytesSent: 103064,\n packetsSent: 1036,\n bytesReceived: 100460,\n packetsReceived: 1015,\n dtlsState: 'connected',\n selectedCandidatePairId: 'RTCIceCandidatePair_CPg7Va+n9f_xvQ5iqnX',\n localCertificateId:\n 'CF83:C5:E4:93:FE:3B:4A:A4:34:F3:E7:84:80:2A:A6:1F:BF:CA:AE:48:98:5F:9E:14:32:8E:EC:7E:FA:EB:71:D9',\n remoteCertificateId: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',\n tlsVersion: 'tls1.2',\n dtlsCipher: 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',\n dtlsRole: 'client',\n srtpCipher: 'AES_CM_128_HMAC_SHA1_80',\n selectedCandidatePairChanges: 1,\n iceRole: 'controlling',\n iceLocalUsernameFragment: 'V+QJ',\n iceState: 'connected',\n },\n ],\n parsed: {\n 'rtp-rxstat': {\n LostPkt: 3,\n Pkt: 1003,\n LatePkt: 0,\n Oct: 76880,\n Dur: 26.650000000001366,\n AvgJit: 0.08820641282565131,\n VQMetrics: {\n maxJitter: 0,\n VoPktSizeMs: 20,\n VoOneWayDelayMs: 0.313625,\n hwType: `${platform.os}/${platform.name}-${platform.version}`,\n networkType: 'vpn',\n VoRxCodec: 'opus',\n },\n },\n 'rtp-txstat': {\n Pkt: 1026,\n Oct: 79294,\n Dur: 26.650000000001366,\n VQMetrics: {VoTxCodec: 'opus', rtpBitRate: 32000},\n },\n },\n },\n statsWithoutVoOneWayDelayAndNw: {\n raw: [\n {\n id: 'CF83:C5:E4:93:FE:3B:4A:A4:34:F3:E7:84:80:2A:A6:1F:BF:CA:AE:48:98:5F:9E:14:32:8E:EC:7E:FA:EB:71:D9',\n timestamp: 1680187470045.045,\n type: 'certificate',\n fingerprint:\n '83:C5:E4:93:FE:3B:4A:A4:34:F3:E7:84:80:2A:A6:1F:BF:CA:AE:48:98:5F:9E:14:32:8E:EC:7E:FA:EB:71:D9',\n fingerprintAlgorithm: 'sha-256',\n base64Certificate:\n 'MIIBFTCBvKADAgECAgg7QZ5hqSYvvjAKBggqhkjOPQQDAjARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMjMwMzI5MTQ0NDAzWhcNMjMwNDI5MTQ0NDAzWjARMQ8wDQYDVQQDDAZXZWJSVEMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmOwLsh05ty2dg9Z4lMP0eGKOEXiYK0aD7R6t9ZhmQGsnXOoJo6uI9PPep6KtwXu8gmsNgpWCFXchYqCXUc9XLMAoGCCqGSM49BAMCA0gAMEUCIAzhwwwBNgeoGDdmuP+E6bxa+jPCpUNxAojCvva483GQAiEAm1sV7ObKt0SWAxzYk4hBw3anywSTUb/mRmrqpctykPU=',\n },\n {\n id: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',\n timestamp: 1680187470045.045,\n type: 'certificate',\n fingerprint: 'E6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',\n fingerprintAlgorithm: 'sha-1',\n base64Certificate:\n 'MIIBrTCCAVMCAQEwCQYHKoZIzj0EATBjMQswCQYDVQQGEwJYWDEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDE2MDQGA1UEAwwtbWVkaWEtcG9vbDAud2Rmd3d4Yy1pbnQtMi5pbnQuaW5mcmEud2ViZXguY29tMB4XDTIzMDMzMDEyMDg1M1oXDTMzMDMyNzEyMDg1M1owYzELMAkGA1UEBhMCWFgxHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxNjA0BgNVBAMMLW1lZGlhLXBvb2wwLndkZnd3eGMtaW50LTIuaW50LmluZnJhLndlYmV4LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLxQbeY82wxCshXKWPfwPAD3aDF2oA5yvHnXAWBGHSO+yIqyEb5gOpoTgDNNrWerEQmjZQ0FeFAWv062KTS9FOIwCQYHKoZIzj0EAQNJADBGAiEA23zp5TJYq5OXFfOEc3ds0LHDyt7KQCLTItBJgXKik9oCIQCCA0qyNKx1v+AOtnkgDbBFjVArLF/5Sd3TIXMgc4VsnA==',\n },\n {\n id: 'CIT01_111_minPtime=10;useInbandFec=1',\n timestamp: 1680187470045.045,\n type: 'codec',\n transportId: 'T01',\n payloadType: 111,\n mimeType: 'audio/opus',\n clockRate: 48000,\n channels: 2,\n sdpFmtpLine: 'minPtime=10;useInbandFec=1',\n },\n {\n id: 'COT01_111_minPtime=10;useInbandFec=1',\n timestamp: 1680187470045.045,\n type: 'codec',\n transportId: 'T01',\n payloadType: 111,\n mimeType: 'audio/opus',\n clockRate: 48000,\n channels: 2,\n sdpFmtpLine: 'minPtime=10;useInbandFec=1',\n },\n {\n id: 'CPg7Va+n9f_xvQ5iqnX',\n timestamp: 1680187470045.045,\n type: 'candidate-pair',\n transportId: 'T01',\n localCandidateId: 'Ig7Va+n9f',\n remoteCandidateId: 'IxvQ5iqnX',\n state: 'succeeded',\n priority: 9114756780671369000,\n nominated: true,\n writable: true,\n packetsSent: 1036,\n packetsReceived: 1015,\n bytesSent: 103064,\n bytesReceived: 100460,\n totalRoundTripTime: 3.611,\n currentRoundTripTime: 0.303,\n availableOutgoingBitrate: 300000,\n requestsReceived: 0,\n requestsSent: 12,\n responsesReceived: 12,\n responsesSent: 0,\n consentRequestsSent: 9,\n packetsDiscardedOnSend: 0,\n bytesDiscardedOnSend: 0,\n },\n {\n id: 'DEPRECATED_S_default',\n timestamp: 1680187470045.045,\n type: 'stream',\n streamIdentifier: 'default',\n trackIds: ['DEPRECATED_TI2'],\n },\n {\n id: 'DEPRECATED_TI2',\n timestamp: 1680187470045.045,\n type: 'track',\n trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',\n remoteSource: true,\n ended: false,\n detached: false,\n kind: 'audio',\n jitterBufferDelay: 84508.8,\n jitterBufferEmittedCount: 958080,\n audioLevel: 0.004272591326639607,\n totalAudioEnergy: 0.6976435552354842,\n totalSamplesReceived: 987200,\n totalSamplesDuration: 21.480000000000558,\n concealedSamples: 27623,\n silentConcealedSamples: 21400,\n concealmentEvents: 8,\n insertedSamplesForDeceleration: 3844,\n removedSamplesForAcceleration: 2129,\n },\n {\n id: 'DEPRECATED_TO1',\n timestamp: 1680187470045.045,\n type: 'track',\n trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',\n mediaSourceId: 'SA1',\n remoteSource: false,\n ended: false,\n detached: false,\n kind: 'audio',\n echoReturnLoss: 13.656129837036133,\n echoReturnLossEnhancement: 7.137247085571289,\n },\n {\n id: 'DEPRECATED_VO1',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'vpn',\n ip: '10.227.211.139',\n address: '10.227.211.139',\n port: 9,\n protocol: 'tcp',\n candidateType: 'host',\n priority: 1518214911,\n foundation: '2654339674',\n usernameFragment: 'V+QJ',\n tcpType: 'active',\n },\n {\n id: 'IKm2fnMou',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'wifi',\n ip: '192.168.1.65',\n address: '192.168.1.65',\n port: 9,\n protocol: 'tcp',\n candidateType: 'host',\n priority: 1518280447,\n foundation: '1437462698',\n usernameFragment: 'V+QJ',\n tcpType: 'active',\n },\n {\n id: 'IT01A1746541880',\n timestamp: 1680187470045.045,\n type: 'inbound-rtp',\n ssrc: 1746541880,\n kind: 'audio',\n trackId: 'DEPRECATED_TI2',\n transportId: 'T01',\n codecId: 'CIT01_111_minPtime=10;useInbandFec=1',\n mediaType: 'audio',\n jitter: 0.008,\n packetsLost: 3,\n trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',\n mid: '0',\n remoteId: 'ROA1746541880',\n packetsReceived: 1003,\n packetsDiscarded: 0,\n fecPacketsReceived: 0,\n fecPacketsDiscarded: 0,\n bytesReceived: 76880,\n headerBytesReceived: 12036,\n lastPacketReceivedTimestamp: 1680187470035,\n jitterBufferDelay: 84508.8,\n jitterBufferTargetDelay: 92793.6,\n jitterBufferMinimumDelay: 92640,\n jitterBufferEmittedCount: 958080,\n totalSamplesReceived: 987200,\n concealedSamples: 27623,\n silentConcealedSamples: 21400,\n concealmentEvents: 8,\n insertedSamplesForDeceleration: 3844,\n removedSamplesForAcceleration: 2129,\n audioLevel: 0.004272591326639607,\n totalAudioEnergy: 0.6976435552354842,\n totalSamplesDuration: 21.480000000000558,\n },\n {\n id: 'IUzJLjNLE',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'wifi',\n ip: '192.168.1.65',\n address: '192.168.1.65',\n port: 58574,\n protocol: 'udp',\n candidateType: 'host',\n priority: 2122260223,\n foundation: '727847474',\n usernameFragment: 'V+QJ',\n },\n {\n id: 'Ig7Va+n9f',\n timestamp: 1680187470045.045,\n type: 'local-candidate',\n transportId: 'T01',\n isRemote: false,\n networkType: 'vpn',\n ip: '10.227.211.139',\n address: '10.227.211.139',\n port: 64898,\n protocol: 'udp',\n candidateType: 'host',\n priority: 2122194687,\n foundation: '3774472386',\n usernameFragment: 'V+QJ',\n },\n {\n id: 'IxvQ5iqnX',\n timestamp: 1680187470045.045,\n type: 'remote-candidate',\n transportId: 'T01',\n isRemote: true,\n ip: '207.182.171.180',\n address: '207.182.171.180',\n port: 19608,\n protocol: 'udp',\n candidateType: 'host',\n priority: 2130706431,\n foundation: 'mse',\n usernameFragment: 'S3cv',\n },\n {\n id: 'OT01A2728789632',\n timestamp: 1680187470045.045,\n type: 'outbound-rtp',\n ssrc: 2728789632,\n kind: 'audio',\n trackId: 'DEPRECATED_TO1',\n transportId: 'T01',\n codecId: 'COT01_111_minPtime=10;useInbandFec=1',\n mediaType: 'audio',\n mediaSourceId: 'SA1',\n remoteId: 'RIA2728789632',\n mid: '0',\n packetsSent: 1026,\n retransmittedPacketsSent: 0,\n bytesSent: 79294,\n headerBytesSent: 12312,\n retransmittedBytesSent: 0,\n targetBitrate: 32000,\n nackCount: 0,\n active: true,\n },\n {\n id: 'P',\n timestamp: 1680187470045.045,\n type: 'peer-connection',\n dataChannelsOpened: 0,\n dataChannelsClosed: 0,\n },\n {\n id: 'RIA2728789632',\n timestamp: 1680187469719,\n type: 'remote-inbound-rtp',\n ssrc: 2728789632,\n kind: 'audio',\n transportId: 'T01',\n codecId: 'COT01_111_minPtime=10;useInbandFec=1',\n jitter: 0.0055625,\n packetsLost: 0,\n localId: 'OT01A2728789632',\n roundTripTime: 0.665,\n fractionLost: 0,\n totalRoundTripTime: 2.509,\n roundTripTimeMeasurements: 0,\n },\n {\n id: 'ROA1746541880',\n timestamp: 1680187467829,\n type: 'remote-outbound-rtp',\n ssrc: 1746541880,\n kind: 'audio',\n transportId: 'T01',\n codecId: 'CIT01_111_minPtime=10;useInbandFec=1',\n packetsSent: 895,\n bytesSent: 68669,\n localId: 'IT01A1746541880',\n remoteTimestamp: 1680187467378,\n reportsSent: 5,\n roundTripTimeMeasurements: 0,\n totalRoundTripTime: 0,\n },\n {\n id: 'SA1',\n timestamp: 1680187470045.045,\n type: 'media-source',\n trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',\n kind: 'audio',\n audioLevel: 0.006469924008911405,\n totalAudioEnergy: 0.7681144799128602,\n totalSamplesDuration: 26.650000000001366,\n echoReturnLoss: 13.656129837036133,\n echoReturnLossEnhancement: 7.137247085571289,\n },\n {\n id: 'T01',\n timestamp: 1680187470045.045,\n type: 'transport',\n bytesSent: 103064,\n packetsSent: 1036,\n bytesReceived: 100460,\n packetsReceived: 1015,\n dtlsState: 'connected',\n selectedCandidatePairId: 'CPg7Va+n9f_xvQ5iqnX',\n localCertificateId:\n 'CF83:C5:E4:93:FE:3B:4A:A4:34:F3:E7:84:80:2A:A6:1F:BF:CA:AE:48:98:5F:9E:14:32:8E:EC:7E:FA:EB:71:D9',\n remoteCertificateId: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',\n tlsVersion: 'tls1.2',\n dtlsCipher: 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',\n dtlsRole: 'client',\n srtpCipher: 'AES_CM_128_HMAC_SHA1_80',\n selectedCandidatePairChanges: 1,\n iceRole: 'controlling',\n iceLocalUsernameFragment: 'V+QJ',\n iceState: 'connected',\n },\n ],\n parsed: {\n 'rtp-rxstat': {\n LostPkt: 3,\n Pkt: 1003,\n LatePkt: 0,\n Oct: 76880,\n Dur: 26.650000000001366,\n AvgJit: 0.08820641282565131,\n VQMetrics: {\n maxJitter: 0,\n VoPktSizeMs: 20,\n VoOneWayDelayMs: 0,\n hwType: `${platform.os}/${platform.name}-${platform.version}`,\n networkType: undefined,\n VoRxCodec: 'opus',\n },\n },\n 'rtp-txstat': {\n Pkt: 1026,\n Oct: 79294,\n Dur: 26.650000000001366,\n VQMetrics: {VoTxCodec: 'opus', rtpBitRate: 32000},\n },\n },\n },\n };\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["ALLOWED_SERVICES","exports","HTTP_METHODS","RegistrationStatus","CALLING_BACKEND","CallType","CallDirection","SORT","SORT_BY","ServiceIndicator","DecodeType"],"sources":["types.ts"],"sourcesContent":["export type MobiusDeviceId = string;\nexport type MobiusDeviceUri = string;\nexport type SettingEnabled = boolean;\n\nexport enum ALLOWED_SERVICES {\n MOBIUS = 'mobius',\n JANUS = 'janus',\n}\nexport enum HTTP_METHODS {\n GET = 'GET',\n POST = 'POST',\n PATCH = 'PATCH',\n PUT = 'PUT',\n DELETE = 'DELETE',\n}\n\nexport enum RegistrationStatus {\n IDLE = 'IDLE',\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n}\n\nexport enum CALLING_BACKEND {\n WXC = 'WEBEX_CALLING',\n BWRKS = 'BROADWORKS_CALLING',\n UCM = 'UCM_CALLING',\n INVALID = 'Calling backend is currently not supported',\n}\n\nexport type DeviceList = unknown;\nexport type CallId = string; // guid;\nexport type CorrelationId = string;\nexport type SipAddress = string;\nexport enum CallType {\n URI = 'uri',\n TEL = 'tel',\n}\nexport type CallDetails = {\n type: CallType;\n address: SipAddress; // sip address\n};\n\nexport type CallDestination = CallDetails;\nexport enum CallDirection {\n INBOUND = 'inbound',\n OUTBOUND = 'outbound',\n}\nexport type AvatarId = string;\nexport type DisplayName = string;\nexport type DisplayInformation = {\n avatarSrc: AvatarId | undefined;\n name: DisplayName | undefined;\n num: string | undefined;\n id: string | undefined;\n};\n\nexport type WebexRequestPayload = {\n method?: HTTP_METHODS;\n uri?: string;\n addAuthHeader?: boolean;\n headers?: {\n [key: string]: string | null;\n };\n body?: object;\n statusCode?: number;\n json?: boolean;\n service?: ALLOWED_SERVICES;\n};\n\nexport type ErrorCode = string;\n\nexport type Digit = string | number;\n\nexport type ServerInfo = {\n region: string;\n uris: string[];\n};\n\nexport type MobiusServers = {\n primary: ServerInfo;\n backup: ServerInfo;\n};\n\nexport type IpInfo = {\n ipv4: string;\n ipv6: string;\n};\n\nexport type DeviceType = {\n deviceId: string;\n uri: string;\n status: string;\n lastSeen: string;\n addresses: string[];\n clientDeviceUri: string;\n};\n\nexport type RegionInfo = {\n countryCode: string;\n clientRegion: string;\n};\n\nexport interface IDeviceInfo {\n userId?: string;\n errorCode?: number;\n\n device?: DeviceType;\n devices?: DeviceType[];\n keepaliveInterval?: number;\n callKeepaliveInterval?: number;\n voicePortalNumber?: number;\n voicePortalExtension?: number;\n // cSpell:disable\n rehomingIntervalMin?: number;\n rehomingIntervalMax?: number;\n /* cSpell:enable */\n}\n\nexport interface IMetaContext {\n file?: string;\n method?: string;\n}\n\nexport enum SORT {\n ASC = 'ASC',\n DESC = 'DESC',\n DEFAULT = 'DESC',\n}\n\nexport enum SORT_BY {\n END_TIME = 'endTime',\n DEFAULT = 'endTime',\n START_TIME = 'startTime',\n}\n\nexport enum ServiceIndicator {\n CALLING = 'calling',\n CONTACT_CENTER = 'contactcenter',\n}\n\nexport type ServiceData = {\n indicator: ServiceIndicator;\n domain?: string;\n};\n\nexport type PhoneNumber = {\n type: string;\n value: string;\n primary?: boolean;\n};\n\nexport type PersonInfo = {\n id: string;\n emails: string[];\n phoneNumbers: PhoneNumber[];\n displayName: string;\n nickName: string;\n firstName: string;\n lastName: string;\n avatar: string;\n orgId: string;\n created: string;\n lastModified: string;\n lastActivity: string;\n status: string;\n type: string;\n};\n\nexport type PeopleListResponse = {\n items: PersonInfo[];\n notFoundIds: string[];\n};\n\nexport enum DecodeType {\n PEOPLE = 'PEOPLE',\n ORGANIZATION = 'ORGANIZATION',\n}\n\nexport type ContactDetail = {\n type?: string;\n value: string;\n};\n\nexport interface LookupOptions {\n ids: string[];\n}\n\nexport type DSSLookupResponse = {\n additionalInfo: {\n department: string;\n firstName: string;\n identityManager: {\n managerId: string;\n displayName: string;\n };\n jobTitle: string;\n lastName: string;\n };\n displayName: string;\n emails: ContactDetail[];\n entityProviderType: string;\n identity: string;\n orgId: string;\n phoneNumbers: ContactDetail[];\n photos: ContactDetail[];\n sipAddresses: ContactDetail[];\n type: string;\n};\n\nexport type KmsKey = {\n uri: string;\n userId: string;\n createDate: string;\n expirationDate: string;\n bindDate?: string;\n resourceUri?: string;\n};\n\nexport type KmsResourceObject = {\n uri: string;\n keyUris: string[];\n authorizationUris: string[];\n};\n"],"mappings":";;;;;;;IAIYA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAAA,IAIhBE,YAAY,GAAAD,OAAA,CAAAC,YAAA,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAAA,IAQZC,kBAAkB,GAAAF,OAAA,CAAAE,kBAAA,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AAAA,IAMlBC,eAAe,GAAAH,OAAA,CAAAG,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA,OAQE;AAAA,IAGjBC,QAAQ,GAAAJ,OAAA,CAAAI,QAAA,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AAAA,IAURC,aAAa,GAAAL,OAAA,CAAAK,aAAA,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAAA,IAgFbC,IAAI,GAAAN,OAAA,CAAAM,IAAA,0BAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;AAAA,IAMJC,OAAO,GAAAP,OAAA,CAAAO,OAAA,0BAAPA,OAAO;EAAPA,OAAO;EAAPA,OAAO;EAAPA,OAAO;EAAA,OAAPA,OAAO;AAAA;AAAA,IAMPC,gBAAgB,GAAAR,OAAA,CAAAQ,gBAAA,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAAA,IAsChBC,UAAU,GAAAT,OAAA,CAAAS,UAAA,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA"}
1
+ {"version":3,"names":["ALLOWED_SERVICES","exports","HTTP_METHODS","RegistrationStatus","CALLING_BACKEND","CallType","CallDirection","SORT","SORT_BY","ServiceIndicator","DecodeType"],"sources":["types.ts"],"sourcesContent":["export type MobiusDeviceId = string;\nexport type MobiusDeviceUri = string;\nexport type SettingEnabled = boolean;\n\nexport enum ALLOWED_SERVICES {\n MOBIUS = 'mobius',\n JANUS = 'janus',\n}\nexport enum HTTP_METHODS {\n GET = 'GET',\n POST = 'POST',\n PATCH = 'PATCH',\n PUT = 'PUT',\n DELETE = 'DELETE',\n}\n\nexport enum RegistrationStatus {\n IDLE = 'IDLE',\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n}\n\nexport enum CALLING_BACKEND {\n WXC = 'WEBEX_CALLING',\n BWRKS = 'BROADWORKS_CALLING',\n UCM = 'UCM_CALLING',\n INVALID = 'Calling backend is currently not supported',\n}\n\nexport type DeviceList = unknown;\nexport type CallId = string; // guid;\nexport type CorrelationId = string;\nexport type SipAddress = string;\nexport enum CallType {\n URI = 'uri',\n TEL = 'tel',\n}\nexport type CallDetails = {\n type: CallType;\n address: SipAddress; // sip address\n};\n\nexport type CallDestination = CallDetails;\nexport enum CallDirection {\n INBOUND = 'inbound',\n OUTBOUND = 'outbound',\n}\nexport type AvatarId = string;\nexport type DisplayName = string;\nexport type DisplayInformation = {\n avatarSrc: AvatarId | undefined;\n name: DisplayName | undefined;\n num: string | undefined;\n id: string | undefined;\n};\n\nexport type WebexRequestPayload = {\n method?: HTTP_METHODS;\n uri?: string;\n addAuthHeader?: boolean;\n headers?: {\n [key: string]: string | null;\n };\n body?: object;\n statusCode?: number;\n json?: boolean;\n service?: ALLOWED_SERVICES;\n};\n\nexport type ErrorCode = string;\n\nexport type Digit = string | number;\n\nexport type ServerInfo = {\n region: string;\n uris: string[];\n};\n\nexport type MobiusServers = {\n primary: ServerInfo;\n backup: ServerInfo;\n};\n\nexport type IpInfo = {\n ipv4: string;\n ipv6: string;\n};\n\nexport type DeviceType = {\n deviceId: string;\n uri: string;\n status: string;\n lastSeen: string;\n addresses: string[];\n clientDeviceUri: string;\n};\n\nexport type RegionInfo = {\n countryCode: string;\n clientRegion: string;\n};\n\nexport interface IDeviceInfo {\n userId?: string;\n errorCode?: number;\n\n device?: DeviceType;\n devices?: DeviceType[];\n keepaliveInterval?: number;\n callKeepaliveInterval?: number;\n voicePortalNumber?: number;\n voicePortalExtension?: number;\n // cSpell:disable\n rehomingIntervalMin?: number;\n rehomingIntervalMax?: number;\n /* cSpell:enable */\n}\n\nexport interface IMetaContext {\n file?: string;\n method?: string;\n}\n\nexport enum SORT {\n ASC = 'ASC',\n DESC = 'DESC',\n DEFAULT = 'DESC',\n}\n\nexport enum SORT_BY {\n END_TIME = 'endTime',\n DEFAULT = 'endTime',\n START_TIME = 'startTime',\n}\n\nexport enum ServiceIndicator {\n CALLING = 'calling',\n CONTACT_CENTER = 'contactcenter',\n}\n\nexport type ServiceData = {\n indicator: ServiceIndicator;\n domain?: string;\n};\n\nexport type PhoneNumber = {\n type: string;\n value: string;\n primary?: boolean;\n};\n\nexport type PersonInfo = {\n id: string;\n emails: string[];\n phoneNumbers: PhoneNumber[];\n displayName: string;\n nickName: string;\n firstName: string;\n lastName: string;\n avatar: string;\n orgId: string;\n created: string;\n lastModified: string;\n lastActivity: string;\n status: string;\n type: string;\n};\n\nexport type PeopleListResponse = {\n items: PersonInfo[];\n notFoundIds: string[];\n};\n\nexport enum DecodeType {\n PEOPLE = 'PEOPLE',\n ORGANIZATION = 'ORGANIZATION',\n}\n\nexport type ContactDetail = {\n type?: string;\n value: string;\n};\n\nexport interface LookupOptions {\n id: string;\n shouldBatch: boolean;\n}\n\nexport type DSSLookupResponse = {\n additionalInfo: {\n department: string;\n firstName: string;\n identityManager: {\n managerId: string;\n displayName: string;\n };\n jobTitle: string;\n lastName: string;\n };\n displayName: string;\n emails: ContactDetail[];\n entityProviderType: string;\n identity: string;\n orgId: string;\n phoneNumbers: ContactDetail[];\n photos: ContactDetail[];\n sipAddresses: ContactDetail[];\n type: string;\n};\n\nexport type KmsKey = {\n uri: string;\n userId: string;\n createDate: string;\n expirationDate: string;\n bindDate?: string;\n resourceUri?: string;\n};\n\nexport type KmsResourceObject = {\n uri: string;\n keyUris: string[];\n authorizationUris: string[];\n};\n"],"mappings":";;;;;;;IAIYA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAAA,IAIhBE,YAAY,GAAAD,OAAA,CAAAC,YAAA,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAAA,IAQZC,kBAAkB,GAAAF,OAAA,CAAAE,kBAAA,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AAAA,IAMlBC,eAAe,GAAAH,OAAA,CAAAG,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA,OAQE;AAAA,IAGjBC,QAAQ,GAAAJ,OAAA,CAAAI,QAAA,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AAAA,IAURC,aAAa,GAAAL,OAAA,CAAAK,aAAA,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAAA,IAgFbC,IAAI,GAAAN,OAAA,CAAAM,IAAA,0BAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;AAAA,IAMJC,OAAO,GAAAP,OAAA,CAAAO,OAAA,0BAAPA,OAAO;EAAPA,OAAO;EAAPA,OAAO;EAAPA,OAAO;EAAA,OAAPA,OAAO;AAAA;AAAA,IAMPC,gBAAgB,GAAAR,OAAA,CAAAQ,gBAAA,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAAA,IAsChBC,UAAU,GAAAT,OAAA,CAAAS,UAAA,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA"}
@@ -6,7 +6,7 @@ import { ERROR_LAYER, ERROR_TYPE } from '../../Errors/types';
6
6
  import { handleCallErrors, parseMediaQualityStatistics } from '../../common/Utils';
7
7
  import { ALLOWED_SERVICES, CallDirection, HTTP_METHODS, } from '../../common/types';
8
8
  import { createCallError } from '../../Errors/catalog/CallError';
9
- import { CALL_ENDPOINT_RESOURCE, CALL_FILE, CALL_HOLD_SERVICE, CALL_STATUS_RESOURCE, CALL_TRANSFER_SERVICE, CALLING_USER_AGENT, CALLS_ENDPOINT_RESOURCE, CISCO_DEVICE_URL, DEFAULT_LOCAL_CALL_ID, DEFAULT_SESSION_TIMER, DEVICES_ENDPOINT_RESOURCE, HOLD_ENDPOINT, INITIAL_SEQ_NUMBER, MEDIA_ENDPOINT_RESOURCE, NOISE_REDUCTION_EFFECT, RESUME_ENDPOINT, SPARK_USER_AGENT, SUPPLEMENTARY_SERVICES_TIMEOUT, TRANSFER_ENDPOINT, } from '../constants';
9
+ import { CALL_ENDPOINT_RESOURCE, CALL_FILE, CALL_HOLD_SERVICE, CALL_STATUS_RESOURCE, CALL_TRANSFER_SERVICE, CALLING_USER_AGENT, CALLS_ENDPOINT_RESOURCE, CISCO_DEVICE_URL, DEFAULT_LOCAL_CALL_ID, DEFAULT_SESSION_TIMER, DEVICES_ENDPOINT_RESOURCE, HOLD_ENDPOINT, ICE_CANDIDATES_TIMEOUT, INITIAL_SEQ_NUMBER, MEDIA_ENDPOINT_RESOURCE, NOISE_REDUCTION_EFFECT, RESUME_ENDPOINT, SPARK_USER_AGENT, SUPPLEMENTARY_SERVICES_TIMEOUT, TRANSFER_ENDPOINT, } from '../constants';
10
10
  import SDKConnector from '../../SDKConnector';
11
11
  import { Eventing } from '../../Events/impl';
12
12
  import { CALL_EVENT_KEYS, MEDIA_CONNECTION_EVENT_KEYS, MOBIUS_MIDCALL_STATE, SUPPLEMENTARY_SERVICES, } from '../../Events/types';
@@ -1186,6 +1186,7 @@ export class Call extends Eventing {
1186
1186
  const mediaConnection = new RoapMediaConnection({
1187
1187
  skipInactiveTransceivers: true,
1188
1188
  iceServers: [],
1189
+ iceCandidatesTimeout: ICE_CANDIDATES_TIMEOUT,
1189
1190
  sdpMunging: {
1190
1191
  convertPort9to0: true,
1191
1192
  addContentSlides: false,
@@ -1497,6 +1498,16 @@ export class Call extends Eventing {
1497
1498
  },
1498
1499
  });
1499
1500
  }
1501
+ addSessionConnection(sdp) {
1502
+ const lines = sdp.split(/\r\n|\r|\n/);
1503
+ const mIndex = lines.findIndex((line) => line.startsWith('m='));
1504
+ const tIndex = lines.findIndex((line) => line.startsWith('t='));
1505
+ if (mIndex !== -1 && mIndex < lines.length - 1 && lines[mIndex + 1].startsWith('c=')) {
1506
+ const cLine = lines[mIndex + 1];
1507
+ lines.splice(tIndex, 0, cLine);
1508
+ }
1509
+ return lines.join('\r\n');
1510
+ }
1500
1511
  mediaRoapEventsListener() {
1501
1512
  this.mediaConnection.on(Event.ROAP_MESSAGE_TO_SEND, async (event) => {
1502
1513
  log.info(`ROAP message to send (rcv from MEDIA-SDK) :
@@ -1505,6 +1516,9 @@ export class Call extends Eventing {
1505
1516
  file: CALL_FILE,
1506
1517
  method: this.mediaRoapEventsListener.name,
1507
1518
  });
1519
+ if (event.roapMessage?.sdp) {
1520
+ event.roapMessage.sdp = this.addSessionConnection(event.roapMessage.sdp);
1521
+ }
1508
1522
  switch (event.roapMessage.messageType) {
1509
1523
  case RoapScenario.OK: {
1510
1524
  const mediaOk = {