@webex/calling 3.0.0-next.2 → 3.0.0-next.4

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 (283) hide show
  1. package/CHANGELOG.md +1403 -0
  2. package/README.md +74 -74
  3. package/dist/module/CallHistory/CallHistory.js +81 -81
  4. package/dist/module/CallHistory/callHistoryFixtures.js +307 -307
  5. package/dist/module/CallHistory/constants.js +9 -9
  6. package/dist/module/CallHistory/types.js +1 -1
  7. package/dist/module/CallSettings/CallSettings.js +65 -65
  8. package/dist/module/CallSettings/UcmBackendConnector.js +100 -100
  9. package/dist/module/CallSettings/WxCallBackendConnector.js +287 -287
  10. package/dist/module/CallSettings/constants.js +11 -11
  11. package/dist/module/CallSettings/testFixtures.js +62 -62
  12. package/dist/module/CallSettings/types.js +1 -1
  13. package/dist/module/CallingClient/CallingClient.js +248 -248
  14. package/dist/module/CallingClient/callRecordFixtures.js +93 -93
  15. package/dist/module/CallingClient/calling/CallerId/index.js +169 -169
  16. package/dist/module/CallingClient/calling/CallerId/types.js +1 -1
  17. package/dist/module/CallingClient/calling/call.js +1658 -1658
  18. package/dist/module/CallingClient/calling/callManager.js +284 -284
  19. package/dist/module/CallingClient/calling/index.js +2 -2
  20. package/dist/module/CallingClient/calling/types.js +53 -53
  21. package/dist/module/CallingClient/callingClientFixtures.js +38 -38
  22. package/dist/module/CallingClient/constants.js +122 -122
  23. package/dist/module/CallingClient/line/index.js +158 -158
  24. package/dist/module/CallingClient/line/types.js +15 -15
  25. package/dist/module/CallingClient/registration/index.js +1 -1
  26. package/dist/module/CallingClient/registration/register.js +507 -507
  27. package/dist/module/CallingClient/registration/registerFixtures.js +28 -28
  28. package/dist/module/CallingClient/registration/types.js +1 -1
  29. package/dist/module/CallingClient/types.js +1 -1
  30. package/dist/module/Contacts/ContactsClient.js +484 -484
  31. package/dist/module/Contacts/constants.js +20 -20
  32. package/dist/module/Contacts/contactFixtures.js +284 -284
  33. package/dist/module/Contacts/types.js +10 -10
  34. package/dist/module/Errors/catalog/CallError.js +26 -26
  35. package/dist/module/Errors/catalog/CallingDeviceError.js +18 -18
  36. package/dist/module/Errors/catalog/ExtendedError.js +10 -10
  37. package/dist/module/Errors/catalog/LineError.js +24 -24
  38. package/dist/module/Errors/index.js +2 -2
  39. package/dist/module/Errors/types.js +48 -48
  40. package/dist/module/Events/impl/index.js +19 -19
  41. package/dist/module/Events/types.js +83 -83
  42. package/dist/module/Logger/index.js +114 -114
  43. package/dist/module/Logger/types.js +25 -25
  44. package/dist/module/Metrics/index.js +232 -232
  45. package/dist/module/Metrics/types.js +37 -37
  46. package/dist/module/SDKConnector/index.js +39 -39
  47. package/dist/module/SDKConnector/types.js +1 -1
  48. package/dist/module/SDKConnector/utils.js +12 -12
  49. package/dist/module/Voicemail/BroadworksBackendConnector.js +291 -291
  50. package/dist/module/Voicemail/UcmBackendConnector.js +279 -279
  51. package/dist/module/Voicemail/Voicemail.js +110 -110
  52. package/dist/module/Voicemail/WxCallBackendConnector.js +279 -279
  53. package/dist/module/Voicemail/constants.js +29 -29
  54. package/dist/module/Voicemail/types.js +1 -1
  55. package/dist/module/Voicemail/voicemailFixture.js +510 -510
  56. package/dist/module/api.js +6 -6
  57. package/dist/module/common/Utils.js +802 -802
  58. package/dist/module/common/constants.js +41 -41
  59. package/dist/module/common/index.js +1 -1
  60. package/dist/module/common/testUtil.js +938 -938
  61. package/dist/module/common/types.js +57 -57
  62. package/dist/module/index.js +8 -8
  63. package/dist/types/CallHistory/CallHistory.d.ts +17 -17
  64. package/dist/types/CallHistory/callHistoryFixtures.d.ts +94 -94
  65. package/dist/types/CallHistory/constants.d.ts +9 -9
  66. package/dist/types/CallHistory/types.d.ts +18 -18
  67. package/dist/types/CallSettings/CallSettings.d.ts +19 -19
  68. package/dist/types/CallSettings/UcmBackendConnector.d.ts +19 -19
  69. package/dist/types/CallSettings/WxCallBackendConnector.d.ts +21 -21
  70. package/dist/types/CallSettings/constants.d.ts +11 -11
  71. package/dist/types/CallSettings/testFixtures.d.ts +15 -15
  72. package/dist/types/CallSettings/types.d.ts +107 -107
  73. package/dist/types/CallingClient/CallingClient.d.ts +35 -35
  74. package/dist/types/CallingClient/callRecordFixtures.d.ts +3 -3
  75. package/dist/types/CallingClient/calling/CallerId/index.d.ts +17 -17
  76. package/dist/types/CallingClient/calling/CallerId/types.d.ts +41 -41
  77. package/dist/types/CallingClient/calling/call.d.ts +96 -96
  78. package/dist/types/CallingClient/calling/callManager.d.ts +25 -25
  79. package/dist/types/CallingClient/calling/index.d.ts +2 -2
  80. package/dist/types/CallingClient/calling/types.d.ts +206 -206
  81. package/dist/types/CallingClient/callingClientFixtures.d.ts +18 -18
  82. package/dist/types/CallingClient/constants.d.ts +122 -122
  83. package/dist/types/CallingClient/line/index.d.ts +43 -43
  84. package/dist/types/CallingClient/line/types.d.ts +55 -55
  85. package/dist/types/CallingClient/registration/index.d.ts +1 -1
  86. package/dist/types/CallingClient/registration/register.d.ts +64 -64
  87. package/dist/types/CallingClient/registration/registerFixtures.d.ts +28 -28
  88. package/dist/types/CallingClient/registration/types.d.ts +20 -20
  89. package/dist/types/CallingClient/types.d.ts +29 -29
  90. package/dist/types/Contacts/ContactsClient.d.ts +26 -26
  91. package/dist/types/Contacts/constants.d.ts +19 -19
  92. package/dist/types/Contacts/contactFixtures.d.ts +280 -280
  93. package/dist/types/Contacts/types.d.ts +72 -72
  94. package/dist/types/Errors/catalog/CallError.d.ts +11 -11
  95. package/dist/types/Errors/catalog/CallingDeviceError.d.ts +10 -10
  96. package/dist/types/Errors/catalog/ExtendedError.d.ts +6 -6
  97. package/dist/types/Errors/catalog/LineError.d.ts +10 -10
  98. package/dist/types/Errors/index.d.ts +2 -2
  99. package/dist/types/Errors/types.d.ts +60 -60
  100. package/dist/types/Events/impl/index.d.ts +8 -8
  101. package/dist/types/Events/types.d.ts +288 -288
  102. package/dist/types/Logger/index.d.ts +12 -12
  103. package/dist/types/Logger/types.d.ts +25 -25
  104. package/dist/types/Metrics/index.d.ts +5 -5
  105. package/dist/types/Metrics/types.d.ts +42 -42
  106. package/dist/types/SDKConnector/index.d.ts +12 -12
  107. package/dist/types/SDKConnector/types.d.ts +128 -128
  108. package/dist/types/SDKConnector/utils.d.ts +5 -5
  109. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts +27 -27
  110. package/dist/types/Voicemail/UcmBackendConnector.d.ts +34 -34
  111. package/dist/types/Voicemail/Voicemail.d.ts +27 -27
  112. package/dist/types/Voicemail/WxCallBackendConnector.d.ts +23 -23
  113. package/dist/types/Voicemail/constants.d.ts +29 -29
  114. package/dist/types/Voicemail/types.d.ts +133 -133
  115. package/dist/types/Voicemail/voicemailFixture.d.ts +417 -417
  116. package/dist/types/api.d.ts +16 -16
  117. package/dist/types/common/Utils.d.ts +34 -34
  118. package/dist/types/common/constants.d.ts +41 -41
  119. package/dist/types/common/index.d.ts +1 -1
  120. package/dist/types/common/testUtil.d.ts +3611 -3611
  121. package/dist/types/common/types.d.ts +191 -191
  122. package/dist/types/index.d.ts +8 -8
  123. package/package.json +4 -4
  124. package/dist/CallHistory/CallHistory.js +0 -203
  125. package/dist/CallHistory/CallHistory.js.map +0 -1
  126. package/dist/CallHistory/CallHistory.test.js +0 -133
  127. package/dist/CallHistory/CallHistory.test.js.map +0 -1
  128. package/dist/CallHistory/callHistoryFixtures.js +0 -310
  129. package/dist/CallHistory/callHistoryFixtures.js.map +0 -1
  130. package/dist/CallHistory/constants.js +0 -26
  131. package/dist/CallHistory/constants.js.map +0 -1
  132. package/dist/CallHistory/types.js +0 -7
  133. package/dist/CallHistory/types.js.map +0 -1
  134. package/dist/CallSettings/CallSettings.js +0 -276
  135. package/dist/CallSettings/CallSettings.js.map +0 -1
  136. package/dist/CallSettings/CallSettings.test.js +0 -122
  137. package/dist/CallSettings/CallSettings.test.js.map +0 -1
  138. package/dist/CallSettings/UcmBackendConnector.js +0 -217
  139. package/dist/CallSettings/UcmBackendConnector.js.map +0 -1
  140. package/dist/CallSettings/UcmBackendConnector.test.js +0 -227
  141. package/dist/CallSettings/UcmBackendConnector.test.js.map +0 -1
  142. package/dist/CallSettings/WxCallBackendConnector.js +0 -541
  143. package/dist/CallSettings/WxCallBackendConnector.js.map +0 -1
  144. package/dist/CallSettings/WxCallBackendConnector.test.js +0 -802
  145. package/dist/CallSettings/WxCallBackendConnector.test.js.map +0 -1
  146. package/dist/CallSettings/constants.js +0 -30
  147. package/dist/CallSettings/constants.js.map +0 -1
  148. package/dist/CallSettings/testFixtures.js +0 -72
  149. package/dist/CallSettings/testFixtures.js.map +0 -1
  150. package/dist/CallSettings/types.js +0 -7
  151. package/dist/CallSettings/types.js.map +0 -1
  152. package/dist/CallingClient/CallingClient.js +0 -572
  153. package/dist/CallingClient/CallingClient.js.map +0 -1
  154. package/dist/CallingClient/CallingClient.test.js +0 -931
  155. package/dist/CallingClient/CallingClient.test.js.map +0 -1
  156. package/dist/CallingClient/callRecordFixtures.js +0 -103
  157. package/dist/CallingClient/callRecordFixtures.js.map +0 -1
  158. package/dist/CallingClient/calling/CallerId/index.js +0 -287
  159. package/dist/CallingClient/calling/CallerId/index.js.map +0 -1
  160. package/dist/CallingClient/calling/CallerId/index.test.js +0 -274
  161. package/dist/CallingClient/calling/CallerId/index.test.js.map +0 -1
  162. package/dist/CallingClient/calling/CallerId/types.js +0 -7
  163. package/dist/CallingClient/calling/CallerId/types.js.map +0 -1
  164. package/dist/CallingClient/calling/call.js +0 -2995
  165. package/dist/CallingClient/calling/call.js.map +0 -1
  166. package/dist/CallingClient/calling/call.test.js +0 -2614
  167. package/dist/CallingClient/calling/call.test.js.map +0 -1
  168. package/dist/CallingClient/calling/callManager.js +0 -443
  169. package/dist/CallingClient/calling/callManager.js.map +0 -1
  170. package/dist/CallingClient/calling/callManager.test.js +0 -683
  171. package/dist/CallingClient/calling/callManager.test.js.map +0 -1
  172. package/dist/CallingClient/calling/index.js +0 -30
  173. package/dist/CallingClient/calling/index.js.map +0 -1
  174. package/dist/CallingClient/calling/types.js +0 -71
  175. package/dist/CallingClient/calling/types.js.map +0 -1
  176. package/dist/CallingClient/callingClientFixtures.js +0 -53
  177. package/dist/CallingClient/callingClientFixtures.js.map +0 -1
  178. package/dist/CallingClient/constants.js +0 -226
  179. package/dist/CallingClient/constants.js.map +0 -1
  180. package/dist/CallingClient/line/index.js +0 -312
  181. package/dist/CallingClient/line/index.js.map +0 -1
  182. package/dist/CallingClient/line/line.test.js +0 -270
  183. package/dist/CallingClient/line/line.test.js.map +0 -1
  184. package/dist/CallingClient/line/types.js +0 -25
  185. package/dist/CallingClient/line/types.js.map +0 -1
  186. package/dist/CallingClient/registration/index.js +0 -19
  187. package/dist/CallingClient/registration/index.js.map +0 -1
  188. package/dist/CallingClient/registration/register.js +0 -1295
  189. package/dist/CallingClient/registration/register.js.map +0 -1
  190. package/dist/CallingClient/registration/register.test.js +0 -838
  191. package/dist/CallingClient/registration/register.test.js.map +0 -1
  192. package/dist/CallingClient/registration/registerFixtures.js +0 -41
  193. package/dist/CallingClient/registration/registerFixtures.js.map +0 -1
  194. package/dist/CallingClient/registration/types.js +0 -7
  195. package/dist/CallingClient/registration/types.js.map +0 -1
  196. package/dist/CallingClient/types.js +0 -7
  197. package/dist/CallingClient/types.js.map +0 -1
  198. package/dist/Contacts/ContactsClient.js +0 -1139
  199. package/dist/Contacts/ContactsClient.js.map +0 -1
  200. package/dist/Contacts/ContactsClient.test.js +0 -725
  201. package/dist/Contacts/ContactsClient.test.js.map +0 -1
  202. package/dist/Contacts/constants.js +0 -36
  203. package/dist/Contacts/constants.js.map +0 -1
  204. package/dist/Contacts/contactFixtures.js +0 -340
  205. package/dist/Contacts/contactFixtures.js.map +0 -1
  206. package/dist/Contacts/types.js +0 -20
  207. package/dist/Contacts/types.js.map +0 -1
  208. package/dist/Errors/catalog/CallError.js +0 -94
  209. package/dist/Errors/catalog/CallError.js.map +0 -1
  210. package/dist/Errors/catalog/CallingDeviceError.js +0 -88
  211. package/dist/Errors/catalog/CallingDeviceError.js.map +0 -1
  212. package/dist/Errors/catalog/ExtendedError.js +0 -45
  213. package/dist/Errors/catalog/ExtendedError.js.map +0 -1
  214. package/dist/Errors/catalog/LineError.js +0 -90
  215. package/dist/Errors/catalog/LineError.js.map +0 -1
  216. package/dist/Errors/index.js +0 -21
  217. package/dist/Errors/index.js.map +0 -1
  218. package/dist/Errors/types.js +0 -62
  219. package/dist/Errors/types.js.map +0 -1
  220. package/dist/Events/impl/index.js +0 -82
  221. package/dist/Events/impl/index.js.map +0 -1
  222. package/dist/Events/types.js +0 -111
  223. package/dist/Events/types.js.map +0 -1
  224. package/dist/Logger/index.js +0 -221
  225. package/dist/Logger/index.js.map +0 -1
  226. package/dist/Logger/index.test.js +0 -62
  227. package/dist/Logger/index.test.js.map +0 -1
  228. package/dist/Logger/types.js +0 -37
  229. package/dist/Logger/types.js.map +0 -1
  230. package/dist/Metrics/index.js +0 -329
  231. package/dist/Metrics/index.js.map +0 -1
  232. package/dist/Metrics/index.test.js +0 -291
  233. package/dist/Metrics/index.test.js.map +0 -1
  234. package/dist/Metrics/types.js +0 -50
  235. package/dist/Metrics/types.js.map +0 -1
  236. package/dist/SDKConnector/index.js +0 -105
  237. package/dist/SDKConnector/index.js.map +0 -1
  238. package/dist/SDKConnector/index.test.js +0 -9
  239. package/dist/SDKConnector/index.test.js.map +0 -1
  240. package/dist/SDKConnector/types.js +0 -7
  241. package/dist/SDKConnector/types.js.map +0 -1
  242. package/dist/SDKConnector/utils.js +0 -40
  243. package/dist/SDKConnector/utils.js.map +0 -1
  244. package/dist/SDKConnector/utils.test.js +0 -9
  245. package/dist/SDKConnector/utils.test.js.map +0 -1
  246. package/dist/Voicemail/BroadworksBackendConnector.js +0 -632
  247. package/dist/Voicemail/BroadworksBackendConnector.js.map +0 -1
  248. package/dist/Voicemail/BroadworksBackendConnector.test.js +0 -733
  249. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +0 -1
  250. package/dist/Voicemail/UcmBackendConnector.js +0 -566
  251. package/dist/Voicemail/UcmBackendConnector.js.map +0 -1
  252. package/dist/Voicemail/UcmBackendConnector.test.js +0 -628
  253. package/dist/Voicemail/UcmBackendConnector.test.js.map +0 -1
  254. package/dist/Voicemail/Voicemail.js +0 -378
  255. package/dist/Voicemail/Voicemail.js.map +0 -1
  256. package/dist/Voicemail/Voicemail.test.js +0 -226
  257. package/dist/Voicemail/Voicemail.test.js.map +0 -1
  258. package/dist/Voicemail/WxCallBackendConnector.js +0 -540
  259. package/dist/Voicemail/WxCallBackendConnector.js.map +0 -1
  260. package/dist/Voicemail/WxCallBackendConnector.test.js +0 -942
  261. package/dist/Voicemail/WxCallBackendConnector.test.js.map +0 -1
  262. package/dist/Voicemail/constants.js +0 -66
  263. package/dist/Voicemail/constants.js.map +0 -1
  264. package/dist/Voicemail/types.js +0 -7
  265. package/dist/Voicemail/types.js.map +0 -1
  266. package/dist/Voicemail/voicemailFixture.js +0 -559
  267. package/dist/Voicemail/voicemailFixture.js.map +0 -1
  268. package/dist/api.js +0 -134
  269. package/dist/api.js.map +0 -1
  270. package/dist/common/Utils.js +0 -1264
  271. package/dist/common/Utils.js.map +0 -1
  272. package/dist/common/Utils.test.js +0 -1227
  273. package/dist/common/Utils.test.js.map +0 -1
  274. package/dist/common/constants.js +0 -90
  275. package/dist/common/constants.js.map +0 -1
  276. package/dist/common/index.js +0 -19
  277. package/dist/common/index.js.map +0 -1
  278. package/dist/common/testUtil.js +0 -968
  279. package/dist/common/testUtil.js.map +0 -1
  280. package/dist/common/types.js +0 -75
  281. package/dist/common/types.js.map +0 -1
  282. package/dist/index.js +0 -63
  283. package/dist/index.js.map +0 -1
@@ -1,938 +1,938 @@
1
- import platform from 'platform';
2
- const MediaSDKMock = jest.createMockFromModule('@webex/internal-media-core');
3
- export function getTestUtilsWebex() {
4
- return {
5
- version: '1.1.1',
6
- canAuthorize: true,
7
- credentials: {
8
- getUserToken: jest.fn(),
9
- },
10
- ready: true,
11
- request: jest.fn(),
12
- internal: {
13
- metrics: {
14
- submitClientMetrics: jest.fn(),
15
- },
16
- mercury: {
17
- on: jest.fn(),
18
- off: jest.fn(),
19
- connected: true,
20
- connecting: false,
21
- },
22
- calendar: null,
23
- device: {
24
- url: 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',
25
- deviceId: 'c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',
26
- userId: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',
27
- orgId: '1704d30d-a131-4bc7-9449-948487643793',
28
- version: '1',
29
- callingBehavior: 'NATIVE_WEBEX_TEAMS_CALLING',
30
- features: {
31
- entitlement: {
32
- models: [{ _values: { key: 'bc-sp-standard' } }],
33
- },
34
- },
35
- },
36
- dss: {
37
- lookup: jest.fn(),
38
- },
39
- encryption: {
40
- decryptText: jest.fn(),
41
- encryptText: jest.fn(),
42
- kms: {
43
- createUnboundKeys: jest.fn(),
44
- createResource: jest.fn(),
45
- bindKey: jest.fn(),
46
- },
47
- },
48
- presence: jest.fn(),
49
- support: jest.fn(),
50
- services: {
51
- _serviceUrls: {
52
- mobius: 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1',
53
- identity: 'https://identity-b-us.webex.com',
54
- janus: 'https://janus-intb.ciscospark.com/janus/api/v1',
55
- wdm: 'https://wdm-a.wbx2.com/wdm/api/v1',
56
- broadworksIdpProxy: 'https://broadworks-idp-proxy-a.wbx2.com/broadworks-idp-proxy/api/v1',
57
- hydra: 'https://hydra-a.wbx2.com/v1/',
58
- mercuryApi: 'https://mercury-api-intb.ciscospark.com/v1',
59
- 'ucmgmt-gateway': 'https://gw.telemetry.int-ucmgmt.cisco.com',
60
- contactsService: 'https://contacts-service-a.wbx2.com/contact/api/v1',
61
- directorySearch: 'https://directory-search-a.wbx2.com/direcory-search/api/v1/',
62
- },
63
- fetchClientRegionInfo: jest.fn(),
64
- },
65
- },
66
- logger: {
67
- log: jest.fn(),
68
- error: jest.fn(),
69
- warn: jest.fn(),
70
- trace: jest.fn(),
71
- info: jest.fn(),
72
- debug: jest.fn(),
73
- },
74
- messages: null,
75
- memberships: null,
76
- people: {
77
- list: jest.fn(),
78
- },
79
- rooms: null,
80
- teams: null,
81
- };
82
- }
83
- export const registration = {
84
- triggerRegistration: () => jest.fn(),
85
- };
86
- export const mediaConnection = new MediaSDKMock.RoapMediaConnection({}, {
87
- localTracks: {},
88
- direction: {
89
- audio: 'sendrecv',
90
- video: 'sendrecv',
91
- screenShareVideo: 'sendrecv',
92
- },
93
- }, '');
94
- export const flushPromises = async (count) => {
95
- await Promise.all([...Array(count)].map(() => Promise.resolve()));
96
- };
97
- export const mockCallingClient = {
98
- emit: jest.fn(),
99
- register: jest.fn(),
100
- on: jest.fn(),
101
- off: jest.fn(),
102
- };
103
- export const getMockRequestTemplate = () => {
104
- return {
105
- headers: {
106
- 'cisco-device-url': 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',
107
- 'spark-user-agent': 'web-calling-sdk/1.71.1 (web-calling)',
108
- },
109
- service: 'mobius',
110
- };
111
- };
112
- export const getMobiusDiscoveryResponse = () => {
113
- return {
114
- primary: {
115
- region: 'US-EAST',
116
- uris: ['https://mobius-dfw.webex.com/api/v1'],
117
- },
118
- backup: {
119
- region: 'US-WEST',
120
- uris: ['https://mobius-sjc.webex.com/api/v1'],
121
- },
122
- };
123
- };
124
- export const getMockDeviceInfo = () => {
125
- return {
126
- device: {
127
- deviceId: 'beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',
128
- uri: 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1/calling/web/devices/beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',
129
- status: 'active',
130
- lastSeen: '2022-04-05T05:08:46Z',
131
- addresses: ['sip:pbs9p4cbr9_G6JJNI5DD5NP@64941297.int10.bcld.webex.com'],
132
- clientDeviceUri: 'https://clientDeviceUrl',
133
- },
134
- };
135
- };
136
- export const getSampleScimResponse = () => {
137
- const sampleAvatar = 'https://avatar-int-us-east-1.webexcontent.com/Avtr~V1~1704d30d-a131-4bc7-9449-948487643793/V1~bf911e86a1561896d7d0053b46a8d0c9ed82a7bc434a1f84621c2c45cc825f37~3720694b1e4340818a3d12d70eb2b6e1~80';
138
- return {
139
- totalResults: '1',
140
- itemsPerPage: '1',
141
- startIndex: '1',
142
- schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],
143
- Resources: [
144
- {
145
- userName: 'atlas.test.wxcwebrtc+user8@gmail.com',
146
- emails: [
147
- {
148
- primary: true,
149
- type: 'work',
150
- value: 'atlas.test.wxcwebrtc+user8@gmail.com',
151
- },
152
- ],
153
- name: {
154
- givenName: 'Cathy',
155
- familyName: 'James',
156
- },
157
- phoneNumbers: [
158
- {
159
- primary: false,
160
- type: 'personal',
161
- value: '5009',
162
- },
163
- {
164
- primary: true,
165
- type: 'work',
166
- value: '5008',
167
- },
168
- ],
169
- entitlements: [
170
- 'basic-meeting',
171
- 'basic-message',
172
- 'bc-sp-standard',
173
- 'screen-share',
174
- 'spark',
175
- 'spark-test-account',
176
- 'squared-call-initiation',
177
- 'webex-squared',
178
- ],
179
- cisSyncSource: 'SCIM',
180
- photos: [
181
- {
182
- type: 'photo',
183
- value: sampleAvatar,
184
- },
185
- {
186
- type: 'thumbnail',
187
- value: sampleAvatar,
188
- },
189
- ],
190
- id: '652fe0c7-05ce-4acd-8bda-9a080830187f',
191
- meta: {
192
- created: '2022-03-16T16:13:53.847Z',
193
- lastModified: '2022-05-31T14:39:12.782Z',
194
- lastLoginTime: '2022-05-31T14:39:12.780Z',
195
- version: 'W/"66025591113"',
196
- location: 'https://identitybts.webex.com/identity/scim/1704d30d-a131-4bc7-9449-948487643793/v1/Users/652fe0c7-05ce-4acd-8bda-9a080830187f',
197
- organizationID: '1704d30d-a131-4bc7-9449-948487643793',
198
- creator: '97fe25e3-d3e8-400e-856b-5b0cd5b0c790',
199
- modifier: '8c7abf2f-0c8e-49cf-b8e4-693d4ec7daee',
200
- },
201
- displayName: 'Cathy',
202
- active: true,
203
- licenseID: ['BCSTD_8c81f40c-e848-484e-8ca8-0fb6dabc75a5'],
204
- userSettings: ['{"spark.signUpDate":"1648547902173"}', '{"user-origin":"admin-invited"}'],
205
- sipAddresses: [
206
- {
207
- type: 'cloud-calling',
208
- value: 'atlas.test.wxcwebrtc+user8@webrtcmobius.call.wbx2.com',
209
- primary: true,
210
- },
211
- ],
212
- isTeamsOnJabberEnabled: false,
213
- isUCCallOnJabberEnabled: false,
214
- userType: 'user',
215
- mfaEnabled: false,
216
- teamsClusterId: 'urn:TEAM:us-east-1_int13',
217
- },
218
- ],
219
- };
220
- };
221
- export const getSamplePeopleListResponse = () => {
222
- return {
223
- notFoundIds: null,
224
- items: [
225
- {
226
- id: 'Y2lzY29zcGFyazovL3VzL1BFT1BMRS9iODUzYmJkMS0xMTM2LTRkMjUtOTM4ZC0wYzM3NTMxYjEyMzM',
227
- emails: ['atlas.test.wxcwebrtc+user2@gmail.com'],
228
- phoneNumbers: [
229
- { type: 'work', value: '+12142865899' },
230
- { type: 'work', value: '+12142865890' },
231
- ],
232
- displayName: 'Krishna Kumar Rai',
233
- nickName: 'Krishna Kumar',
234
- firstName: 'Krishna Kumar',
235
- lastName: 'Rai',
236
- avatar: 'https://avatar-int-us-east-1.webexcontent.com/Avtr~V1~1704d30d-a131-4bc7-9449-948487643793/V1~63bb91536457f9b7d88739ae7cf78515800e468e0a4b59491b9c85b174c26eec~f10e91b5c0c0465ca8098f075ddec0b8~1600',
237
- orgId: 'Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi8xNzA0ZDMwZC1hMTMxLTRiYzctOTQ0OS05NDg0ODc2NDM3OTM',
238
- created: '2022-03-16T14:07:21.266Z',
239
- lastModified: '2023-01-16T11:10:40.693Z',
240
- lastActivity: '2023-01-27T08:21:06.988Z',
241
- status: 'inactive',
242
- type: 'person',
243
- },
244
- ],
245
- };
246
- };
247
- export const getSampleRawAndParsedMediaStats = () => {
248
- return {
249
- statsWithVoOneWayDelayAndNw: {
250
- raw: [
251
- {
252
- 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',
253
- timestamp: 1680187470045.045,
254
- type: 'certificate',
255
- fingerprint: '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',
256
- fingerprintAlgorithm: 'sha-256',
257
- base64Certificate: 'MIIBFTCBvKADAgECAgg7QZ5hqSYvvjAKBggqhkjOPQQDAjARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMjMwMzI5MTQ0NDAzWhcNMjMwNDI5MTQ0NDAzWjARMQ8wDQYDVQQDDAZXZWJSVEMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmOwLsh05ty2dg9Z4lMP0eGKOEXiYK0aD7R6t9ZhmQGsnXOoJo6uI9PPep6KtwXu8gmsNgpWCFXchYqCXUc9XLMAoGCCqGSM49BAMCA0gAMEUCIAzhwwwBNgeoGDdmuP+E6bxa+jPCpUNxAojCvva483GQAiEAm1sV7ObKt0SWAxzYk4hBw3anywSTUb/mRmrqpctykPU=',
258
- },
259
- {
260
- id: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',
261
- timestamp: 1680187470045.045,
262
- type: 'certificate',
263
- fingerprint: 'E6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',
264
- fingerprintAlgorithm: 'sha-1',
265
- base64Certificate: 'MIIBrTCCAVMCAQEwCQYHKoZIzj0EATBjMQswCQYDVQQGEwJYWDEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDE2MDQGA1UEAwwtbWVkaWEtcG9vbDAud2Rmd3d4Yy1pbnQtMi5pbnQuaW5mcmEud2ViZXguY29tMB4XDTIzMDMzMDEyMDg1M1oXDTMzMDMyNzEyMDg1M1owYzELMAkGA1UEBhMCWFgxHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxNjA0BgNVBAMMLW1lZGlhLXBvb2wwLndkZnd3eGMtaW50LTIuaW50LmluZnJhLndlYmV4LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLxQbeY82wxCshXKWPfwPAD3aDF2oA5yvHnXAWBGHSO+yIqyEb5gOpoTgDNNrWerEQmjZQ0FeFAWv062KTS9FOIwCQYHKoZIzj0EAQNJADBGAiEA23zp5TJYq5OXFfOEc3ds0LHDyt7KQCLTItBJgXKik9oCIQCCA0qyNKx1v+AOtnkgDbBFjVArLF/5Sd3TIXMgc4VsnA==',
266
- },
267
- {
268
- id: 'CIT01_111_minPtime=10;useInbandFec=1',
269
- timestamp: 1680187470045.045,
270
- type: 'codec',
271
- transportId: 'T01',
272
- payloadType: 111,
273
- mimeType: 'audio/opus',
274
- clockRate: 48000,
275
- channels: 2,
276
- sdpFmtpLine: 'minPtime=10;useInbandFec=1',
277
- },
278
- {
279
- id: 'COT01_111_minPtime=10;useInbandFec=1',
280
- timestamp: 1680187470045.045,
281
- type: 'codec',
282
- transportId: 'T01',
283
- payloadType: 111,
284
- mimeType: 'audio/opus',
285
- clockRate: 48000,
286
- channels: 2,
287
- sdpFmtpLine: 'minPtime=10;useInbandFec=1',
288
- },
289
- {
290
- id: 'RTCIceCandidatePair_CPg7Va+n9f_xvQ5iqnX',
291
- timestamp: 1680187470045.045,
292
- type: 'candidate-pair',
293
- transportId: 'T01',
294
- localCandidateId: 'RTCIceCandidate_Ig7Va+n9f',
295
- remoteCandidateId: 'IxvQ5iqnX',
296
- state: 'succeeded',
297
- priority: 9114756780671369000,
298
- nominated: true,
299
- writable: true,
300
- packetsSent: 1036,
301
- packetsReceived: 1015,
302
- bytesSent: 103064,
303
- bytesReceived: 100460,
304
- totalRoundTripTime: 3.611,
305
- currentRoundTripTime: 0.303,
306
- availableOutgoingBitrate: 300000,
307
- requestsReceived: 0,
308
- requestsSent: 12,
309
- responsesReceived: 12,
310
- responsesSent: 0,
311
- consentRequestsSent: 9,
312
- packetsDiscardedOnSend: 0,
313
- bytesDiscardedOnSend: 0,
314
- },
315
- {
316
- id: 'DEPRECATED_S_default',
317
- timestamp: 1680187470045.045,
318
- type: 'stream',
319
- streamIdentifier: 'default',
320
- trackIds: ['DEPRECATED_TI2'],
321
- },
322
- {
323
- id: 'DEPRECATED_TI2',
324
- timestamp: 1680187470045.045,
325
- type: 'track',
326
- trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',
327
- remoteSource: true,
328
- ended: false,
329
- detached: false,
330
- kind: 'audio',
331
- jitterBufferDelay: 84508.8,
332
- jitterBufferEmittedCount: 958080,
333
- audioLevel: 0.004272591326639607,
334
- totalAudioEnergy: 0.6976435552354842,
335
- totalSamplesReceived: 987200,
336
- totalSamplesDuration: 21.480000000000558,
337
- concealedSamples: 27623,
338
- silentConcealedSamples: 21400,
339
- concealmentEvents: 8,
340
- insertedSamplesForDeceleration: 3844,
341
- removedSamplesForAcceleration: 2129,
342
- },
343
- {
344
- id: 'DEPRECATED_TO1',
345
- timestamp: 1680187470045.045,
346
- type: 'track',
347
- trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',
348
- mediaSourceId: 'SA1',
349
- remoteSource: false,
350
- ended: false,
351
- detached: false,
352
- kind: 'audio',
353
- echoReturnLoss: 13.656129837036133,
354
- echoReturnLossEnhancement: 7.137247085571289,
355
- },
356
- {
357
- id: 'DEPRECATED_VO1',
358
- timestamp: 1680187470045.045,
359
- type: 'local-candidate',
360
- transportId: 'T01',
361
- isRemote: false,
362
- networkType: 'vpn',
363
- ip: '10.227.211.139',
364
- address: '10.227.211.139',
365
- port: 9,
366
- protocol: 'tcp',
367
- candidateType: 'host',
368
- priority: 1518214911,
369
- foundation: '2654339674',
370
- usernameFragment: 'V+QJ',
371
- tcpType: 'active',
372
- },
373
- {
374
- id: 'IKm2fnMou',
375
- timestamp: 1680187470045.045,
376
- type: 'local-candidate',
377
- transportId: 'T01',
378
- isRemote: false,
379
- networkType: 'wifi',
380
- ip: '192.168.1.65',
381
- address: '192.168.1.65',
382
- port: 9,
383
- protocol: 'tcp',
384
- candidateType: 'host',
385
- priority: 1518280447,
386
- foundation: '1437462698',
387
- usernameFragment: 'V+QJ',
388
- tcpType: 'active',
389
- },
390
- {
391
- id: 'IT01A1746541880',
392
- timestamp: 1680187470045.045,
393
- type: 'inbound-rtp',
394
- ssrc: 1746541880,
395
- kind: 'audio',
396
- trackId: 'DEPRECATED_TI2',
397
- transportId: 'T01',
398
- codecId: 'CIT01_111_minPtime=10;useInbandFec=1',
399
- mediaType: 'audio',
400
- jitter: 0.008,
401
- packetsLost: 3,
402
- trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',
403
- mid: '0',
404
- remoteId: 'ROA1746541880',
405
- packetsReceived: 1003,
406
- packetsDiscarded: 0,
407
- fecPacketsReceived: 0,
408
- fecPacketsDiscarded: 0,
409
- bytesReceived: 76880,
410
- headerBytesReceived: 12036,
411
- lastPacketReceivedTimestamp: 1680187470035,
412
- jitterBufferDelay: 84508.8,
413
- jitterBufferTargetDelay: 92793.6,
414
- jitterBufferMinimumDelay: 92640,
415
- jitterBufferEmittedCount: 958080,
416
- totalSamplesReceived: 987200,
417
- concealedSamples: 27623,
418
- silentConcealedSamples: 21400,
419
- concealmentEvents: 8,
420
- insertedSamplesForDeceleration: 3844,
421
- removedSamplesForAcceleration: 2129,
422
- audioLevel: 0.004272591326639607,
423
- totalAudioEnergy: 0.6976435552354842,
424
- totalSamplesDuration: 21.480000000000558,
425
- },
426
- {
427
- id: 'IUzJLjNLE',
428
- timestamp: 1680187470045.045,
429
- type: 'local-candidate',
430
- transportId: 'T01',
431
- isRemote: false,
432
- networkType: 'wifi',
433
- ip: '192.168.1.65',
434
- address: '192.168.1.65',
435
- port: 58574,
436
- protocol: 'udp',
437
- candidateType: 'host',
438
- priority: 2122260223,
439
- foundation: '727847474',
440
- usernameFragment: 'V+QJ',
441
- },
442
- {
443
- id: 'RTCIceCandidate_Ig7Va+n9f',
444
- timestamp: 1680187470045.045,
445
- type: 'local-candidate',
446
- transportId: 'T01',
447
- isRemote: false,
448
- networkType: 'vpn',
449
- ip: '10.227.211.139',
450
- address: '10.227.211.139',
451
- port: 64898,
452
- protocol: 'udp',
453
- candidateType: 'host',
454
- priority: 2122194687,
455
- foundation: '3774472386',
456
- usernameFragment: 'V+QJ',
457
- },
458
- {
459
- id: 'IxvQ5iqnX',
460
- timestamp: 1680187470045.045,
461
- type: 'remote-candidate',
462
- transportId: 'T01',
463
- isRemote: true,
464
- ip: '207.182.171.180',
465
- address: '207.182.171.180',
466
- port: 19608,
467
- protocol: 'udp',
468
- candidateType: 'host',
469
- priority: 2130706431,
470
- foundation: 'mse',
471
- usernameFragment: 'S3cv',
472
- },
473
- {
474
- id: 'OT01A2728789632',
475
- timestamp: 1680187470045.045,
476
- type: 'outbound-rtp',
477
- ssrc: 2728789632,
478
- kind: 'audio',
479
- trackId: 'DEPRECATED_TO1',
480
- transportId: 'T01',
481
- codecId: 'COT01_111_minPtime=10;useInbandFec=1',
482
- mediaType: 'audio',
483
- mediaSourceId: 'SA1',
484
- remoteId: 'RIA2728789632',
485
- mid: '0',
486
- packetsSent: 1026,
487
- retransmittedPacketsSent: 0,
488
- bytesSent: 79294,
489
- headerBytesSent: 12312,
490
- retransmittedBytesSent: 0,
491
- targetBitrate: 32000,
492
- nackCount: 0,
493
- active: true,
494
- },
495
- {
496
- id: 'P',
497
- timestamp: 1680187470045.045,
498
- type: 'peer-connection',
499
- dataChannelsOpened: 0,
500
- dataChannelsClosed: 0,
501
- },
502
- {
503
- id: 'RIA2728789632',
504
- timestamp: 1680187469719,
505
- type: 'remote-inbound-rtp',
506
- ssrc: 2728789632,
507
- kind: 'audio',
508
- transportId: 'T01',
509
- codecId: 'COT01_111_minPtime=10;useInbandFec=1',
510
- jitter: 0.0055625,
511
- packetsLost: 0,
512
- localId: 'OT01A2728789632',
513
- roundTripTime: 0.665,
514
- fractionLost: 0,
515
- totalRoundTripTime: 2.509,
516
- roundTripTimeMeasurements: 4,
517
- },
518
- {
519
- id: 'ROA1746541880',
520
- timestamp: 1680187467829,
521
- type: 'remote-outbound-rtp',
522
- ssrc: 1746541880,
523
- kind: 'audio',
524
- transportId: 'T01',
525
- codecId: 'CIT01_111_minPtime=10;useInbandFec=1',
526
- packetsSent: 895,
527
- bytesSent: 68669,
528
- localId: 'IT01A1746541880',
529
- remoteTimestamp: 1680187467378,
530
- reportsSent: 5,
531
- roundTripTimeMeasurements: 0,
532
- totalRoundTripTime: 0,
533
- },
534
- {
535
- id: 'SA1',
536
- timestamp: 1680187470045.045,
537
- type: 'media-source',
538
- trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',
539
- kind: 'audio',
540
- audioLevel: 0.006469924008911405,
541
- totalAudioEnergy: 0.7681144799128602,
542
- totalSamplesDuration: 26.650000000001366,
543
- echoReturnLoss: 13.656129837036133,
544
- echoReturnLossEnhancement: 7.137247085571289,
545
- },
546
- {
547
- id: 'T01',
548
- timestamp: 1680187470045.045,
549
- type: 'transport',
550
- bytesSent: 103064,
551
- packetsSent: 1036,
552
- bytesReceived: 100460,
553
- packetsReceived: 1015,
554
- dtlsState: 'connected',
555
- selectedCandidatePairId: 'RTCIceCandidatePair_CPg7Va+n9f_xvQ5iqnX',
556
- localCertificateId: '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',
557
- remoteCertificateId: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',
558
- tlsVersion: 'tls1.2',
559
- dtlsCipher: 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',
560
- dtlsRole: 'client',
561
- srtpCipher: 'AES_CM_128_HMAC_SHA1_80',
562
- selectedCandidatePairChanges: 1,
563
- iceRole: 'controlling',
564
- iceLocalUsernameFragment: 'V+QJ',
565
- iceState: 'connected',
566
- },
567
- ],
568
- parsed: {
569
- 'rtp-rxstat': {
570
- LostPkt: 3,
571
- Pkt: 1003,
572
- LatePkt: 0,
573
- Oct: 76880,
574
- Dur: 26.650000000001366,
575
- AvgJit: 0.08820641282565131,
576
- VQMetrics: {
577
- maxJitter: 0,
578
- VoPktSizeMs: 20,
579
- VoOneWayDelayMs: 0.313625,
580
- hwType: `${platform.os}/${platform.name}-${platform.version}`,
581
- networkType: 'vpn',
582
- VoRxCodec: 'opus',
583
- },
584
- },
585
- 'rtp-txstat': {
586
- Pkt: 1026,
587
- Oct: 79294,
588
- Dur: 26.650000000001366,
589
- VQMetrics: { VoTxCodec: 'opus', rtpBitRate: 32000 },
590
- },
591
- },
592
- },
593
- statsWithoutVoOneWayDelayAndNw: {
594
- raw: [
595
- {
596
- 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',
597
- timestamp: 1680187470045.045,
598
- type: 'certificate',
599
- fingerprint: '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',
600
- fingerprintAlgorithm: 'sha-256',
601
- base64Certificate: 'MIIBFTCBvKADAgECAgg7QZ5hqSYvvjAKBggqhkjOPQQDAjARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMjMwMzI5MTQ0NDAzWhcNMjMwNDI5MTQ0NDAzWjARMQ8wDQYDVQQDDAZXZWJSVEMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmOwLsh05ty2dg9Z4lMP0eGKOEXiYK0aD7R6t9ZhmQGsnXOoJo6uI9PPep6KtwXu8gmsNgpWCFXchYqCXUc9XLMAoGCCqGSM49BAMCA0gAMEUCIAzhwwwBNgeoGDdmuP+E6bxa+jPCpUNxAojCvva483GQAiEAm1sV7ObKt0SWAxzYk4hBw3anywSTUb/mRmrqpctykPU=',
602
- },
603
- {
604
- id: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',
605
- timestamp: 1680187470045.045,
606
- type: 'certificate',
607
- fingerprint: 'E6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',
608
- fingerprintAlgorithm: 'sha-1',
609
- base64Certificate: 'MIIBrTCCAVMCAQEwCQYHKoZIzj0EATBjMQswCQYDVQQGEwJYWDEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDE2MDQGA1UEAwwtbWVkaWEtcG9vbDAud2Rmd3d4Yy1pbnQtMi5pbnQuaW5mcmEud2ViZXguY29tMB4XDTIzMDMzMDEyMDg1M1oXDTMzMDMyNzEyMDg1M1owYzELMAkGA1UEBhMCWFgxHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxNjA0BgNVBAMMLW1lZGlhLXBvb2wwLndkZnd3eGMtaW50LTIuaW50LmluZnJhLndlYmV4LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLxQbeY82wxCshXKWPfwPAD3aDF2oA5yvHnXAWBGHSO+yIqyEb5gOpoTgDNNrWerEQmjZQ0FeFAWv062KTS9FOIwCQYHKoZIzj0EAQNJADBGAiEA23zp5TJYq5OXFfOEc3ds0LHDyt7KQCLTItBJgXKik9oCIQCCA0qyNKx1v+AOtnkgDbBFjVArLF/5Sd3TIXMgc4VsnA==',
610
- },
611
- {
612
- id: 'CIT01_111_minPtime=10;useInbandFec=1',
613
- timestamp: 1680187470045.045,
614
- type: 'codec',
615
- transportId: 'T01',
616
- payloadType: 111,
617
- mimeType: 'audio/opus',
618
- clockRate: 48000,
619
- channels: 2,
620
- sdpFmtpLine: 'minPtime=10;useInbandFec=1',
621
- },
622
- {
623
- id: 'COT01_111_minPtime=10;useInbandFec=1',
624
- timestamp: 1680187470045.045,
625
- type: 'codec',
626
- transportId: 'T01',
627
- payloadType: 111,
628
- mimeType: 'audio/opus',
629
- clockRate: 48000,
630
- channels: 2,
631
- sdpFmtpLine: 'minPtime=10;useInbandFec=1',
632
- },
633
- {
634
- id: 'CPg7Va+n9f_xvQ5iqnX',
635
- timestamp: 1680187470045.045,
636
- type: 'candidate-pair',
637
- transportId: 'T01',
638
- localCandidateId: 'Ig7Va+n9f',
639
- remoteCandidateId: 'IxvQ5iqnX',
640
- state: 'succeeded',
641
- priority: 9114756780671369000,
642
- nominated: true,
643
- writable: true,
644
- packetsSent: 1036,
645
- packetsReceived: 1015,
646
- bytesSent: 103064,
647
- bytesReceived: 100460,
648
- totalRoundTripTime: 3.611,
649
- currentRoundTripTime: 0.303,
650
- availableOutgoingBitrate: 300000,
651
- requestsReceived: 0,
652
- requestsSent: 12,
653
- responsesReceived: 12,
654
- responsesSent: 0,
655
- consentRequestsSent: 9,
656
- packetsDiscardedOnSend: 0,
657
- bytesDiscardedOnSend: 0,
658
- },
659
- {
660
- id: 'DEPRECATED_S_default',
661
- timestamp: 1680187470045.045,
662
- type: 'stream',
663
- streamIdentifier: 'default',
664
- trackIds: ['DEPRECATED_TI2'],
665
- },
666
- {
667
- id: 'DEPRECATED_TI2',
668
- timestamp: 1680187470045.045,
669
- type: 'track',
670
- trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',
671
- remoteSource: true,
672
- ended: false,
673
- detached: false,
674
- kind: 'audio',
675
- jitterBufferDelay: 84508.8,
676
- jitterBufferEmittedCount: 958080,
677
- audioLevel: 0.004272591326639607,
678
- totalAudioEnergy: 0.6976435552354842,
679
- totalSamplesReceived: 987200,
680
- totalSamplesDuration: 21.480000000000558,
681
- concealedSamples: 27623,
682
- silentConcealedSamples: 21400,
683
- concealmentEvents: 8,
684
- insertedSamplesForDeceleration: 3844,
685
- removedSamplesForAcceleration: 2129,
686
- },
687
- {
688
- id: 'DEPRECATED_TO1',
689
- timestamp: 1680187470045.045,
690
- type: 'track',
691
- trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',
692
- mediaSourceId: 'SA1',
693
- remoteSource: false,
694
- ended: false,
695
- detached: false,
696
- kind: 'audio',
697
- echoReturnLoss: 13.656129837036133,
698
- echoReturnLossEnhancement: 7.137247085571289,
699
- },
700
- {
701
- id: 'DEPRECATED_VO1',
702
- timestamp: 1680187470045.045,
703
- type: 'local-candidate',
704
- transportId: 'T01',
705
- isRemote: false,
706
- networkType: 'vpn',
707
- ip: '10.227.211.139',
708
- address: '10.227.211.139',
709
- port: 9,
710
- protocol: 'tcp',
711
- candidateType: 'host',
712
- priority: 1518214911,
713
- foundation: '2654339674',
714
- usernameFragment: 'V+QJ',
715
- tcpType: 'active',
716
- },
717
- {
718
- id: 'IKm2fnMou',
719
- timestamp: 1680187470045.045,
720
- type: 'local-candidate',
721
- transportId: 'T01',
722
- isRemote: false,
723
- networkType: 'wifi',
724
- ip: '192.168.1.65',
725
- address: '192.168.1.65',
726
- port: 9,
727
- protocol: 'tcp',
728
- candidateType: 'host',
729
- priority: 1518280447,
730
- foundation: '1437462698',
731
- usernameFragment: 'V+QJ',
732
- tcpType: 'active',
733
- },
734
- {
735
- id: 'IT01A1746541880',
736
- timestamp: 1680187470045.045,
737
- type: 'inbound-rtp',
738
- ssrc: 1746541880,
739
- kind: 'audio',
740
- trackId: 'DEPRECATED_TI2',
741
- transportId: 'T01',
742
- codecId: 'CIT01_111_minPtime=10;useInbandFec=1',
743
- mediaType: 'audio',
744
- jitter: 0.008,
745
- packetsLost: 3,
746
- trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',
747
- mid: '0',
748
- remoteId: 'ROA1746541880',
749
- packetsReceived: 1003,
750
- packetsDiscarded: 0,
751
- fecPacketsReceived: 0,
752
- fecPacketsDiscarded: 0,
753
- bytesReceived: 76880,
754
- headerBytesReceived: 12036,
755
- lastPacketReceivedTimestamp: 1680187470035,
756
- jitterBufferDelay: 84508.8,
757
- jitterBufferTargetDelay: 92793.6,
758
- jitterBufferMinimumDelay: 92640,
759
- jitterBufferEmittedCount: 958080,
760
- totalSamplesReceived: 987200,
761
- concealedSamples: 27623,
762
- silentConcealedSamples: 21400,
763
- concealmentEvents: 8,
764
- insertedSamplesForDeceleration: 3844,
765
- removedSamplesForAcceleration: 2129,
766
- audioLevel: 0.004272591326639607,
767
- totalAudioEnergy: 0.6976435552354842,
768
- totalSamplesDuration: 21.480000000000558,
769
- },
770
- {
771
- id: 'IUzJLjNLE',
772
- timestamp: 1680187470045.045,
773
- type: 'local-candidate',
774
- transportId: 'T01',
775
- isRemote: false,
776
- networkType: 'wifi',
777
- ip: '192.168.1.65',
778
- address: '192.168.1.65',
779
- port: 58574,
780
- protocol: 'udp',
781
- candidateType: 'host',
782
- priority: 2122260223,
783
- foundation: '727847474',
784
- usernameFragment: 'V+QJ',
785
- },
786
- {
787
- id: 'Ig7Va+n9f',
788
- timestamp: 1680187470045.045,
789
- type: 'local-candidate',
790
- transportId: 'T01',
791
- isRemote: false,
792
- networkType: 'vpn',
793
- ip: '10.227.211.139',
794
- address: '10.227.211.139',
795
- port: 64898,
796
- protocol: 'udp',
797
- candidateType: 'host',
798
- priority: 2122194687,
799
- foundation: '3774472386',
800
- usernameFragment: 'V+QJ',
801
- },
802
- {
803
- id: 'IxvQ5iqnX',
804
- timestamp: 1680187470045.045,
805
- type: 'remote-candidate',
806
- transportId: 'T01',
807
- isRemote: true,
808
- ip: '207.182.171.180',
809
- address: '207.182.171.180',
810
- port: 19608,
811
- protocol: 'udp',
812
- candidateType: 'host',
813
- priority: 2130706431,
814
- foundation: 'mse',
815
- usernameFragment: 'S3cv',
816
- },
817
- {
818
- id: 'OT01A2728789632',
819
- timestamp: 1680187470045.045,
820
- type: 'outbound-rtp',
821
- ssrc: 2728789632,
822
- kind: 'audio',
823
- trackId: 'DEPRECATED_TO1',
824
- transportId: 'T01',
825
- codecId: 'COT01_111_minPtime=10;useInbandFec=1',
826
- mediaType: 'audio',
827
- mediaSourceId: 'SA1',
828
- remoteId: 'RIA2728789632',
829
- mid: '0',
830
- packetsSent: 1026,
831
- retransmittedPacketsSent: 0,
832
- bytesSent: 79294,
833
- headerBytesSent: 12312,
834
- retransmittedBytesSent: 0,
835
- targetBitrate: 32000,
836
- nackCount: 0,
837
- active: true,
838
- },
839
- {
840
- id: 'P',
841
- timestamp: 1680187470045.045,
842
- type: 'peer-connection',
843
- dataChannelsOpened: 0,
844
- dataChannelsClosed: 0,
845
- },
846
- {
847
- id: 'RIA2728789632',
848
- timestamp: 1680187469719,
849
- type: 'remote-inbound-rtp',
850
- ssrc: 2728789632,
851
- kind: 'audio',
852
- transportId: 'T01',
853
- codecId: 'COT01_111_minPtime=10;useInbandFec=1',
854
- jitter: 0.0055625,
855
- packetsLost: 0,
856
- localId: 'OT01A2728789632',
857
- roundTripTime: 0.665,
858
- fractionLost: 0,
859
- totalRoundTripTime: 2.509,
860
- roundTripTimeMeasurements: 0,
861
- },
862
- {
863
- id: 'ROA1746541880',
864
- timestamp: 1680187467829,
865
- type: 'remote-outbound-rtp',
866
- ssrc: 1746541880,
867
- kind: 'audio',
868
- transportId: 'T01',
869
- codecId: 'CIT01_111_minPtime=10;useInbandFec=1',
870
- packetsSent: 895,
871
- bytesSent: 68669,
872
- localId: 'IT01A1746541880',
873
- remoteTimestamp: 1680187467378,
874
- reportsSent: 5,
875
- roundTripTimeMeasurements: 0,
876
- totalRoundTripTime: 0,
877
- },
878
- {
879
- id: 'SA1',
880
- timestamp: 1680187470045.045,
881
- type: 'media-source',
882
- trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',
883
- kind: 'audio',
884
- audioLevel: 0.006469924008911405,
885
- totalAudioEnergy: 0.7681144799128602,
886
- totalSamplesDuration: 26.650000000001366,
887
- echoReturnLoss: 13.656129837036133,
888
- echoReturnLossEnhancement: 7.137247085571289,
889
- },
890
- {
891
- id: 'T01',
892
- timestamp: 1680187470045.045,
893
- type: 'transport',
894
- bytesSent: 103064,
895
- packetsSent: 1036,
896
- bytesReceived: 100460,
897
- packetsReceived: 1015,
898
- dtlsState: 'connected',
899
- selectedCandidatePairId: 'CPg7Va+n9f_xvQ5iqnX',
900
- localCertificateId: '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',
901
- remoteCertificateId: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',
902
- tlsVersion: 'tls1.2',
903
- dtlsCipher: 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',
904
- dtlsRole: 'client',
905
- srtpCipher: 'AES_CM_128_HMAC_SHA1_80',
906
- selectedCandidatePairChanges: 1,
907
- iceRole: 'controlling',
908
- iceLocalUsernameFragment: 'V+QJ',
909
- iceState: 'connected',
910
- },
911
- ],
912
- parsed: {
913
- 'rtp-rxstat': {
914
- LostPkt: 3,
915
- Pkt: 1003,
916
- LatePkt: 0,
917
- Oct: 76880,
918
- Dur: 26.650000000001366,
919
- AvgJit: 0.08820641282565131,
920
- VQMetrics: {
921
- maxJitter: 0,
922
- VoPktSizeMs: 20,
923
- VoOneWayDelayMs: 0,
924
- hwType: `${platform.os}/${platform.name}-${platform.version}`,
925
- networkType: undefined,
926
- VoRxCodec: 'opus',
927
- },
928
- },
929
- 'rtp-txstat': {
930
- Pkt: 1026,
931
- Oct: 79294,
932
- Dur: 26.650000000001366,
933
- VQMetrics: { VoTxCodec: 'opus', rtpBitRate: 32000 },
934
- },
935
- },
936
- },
937
- };
938
- };
1
+ import platform from 'platform';
2
+ const MediaSDKMock = jest.createMockFromModule('@webex/internal-media-core');
3
+ export function getTestUtilsWebex() {
4
+ return {
5
+ version: '1.1.1',
6
+ canAuthorize: true,
7
+ credentials: {
8
+ getUserToken: jest.fn(),
9
+ },
10
+ ready: true,
11
+ request: jest.fn(),
12
+ internal: {
13
+ metrics: {
14
+ submitClientMetrics: jest.fn(),
15
+ },
16
+ mercury: {
17
+ on: jest.fn(),
18
+ off: jest.fn(),
19
+ connected: true,
20
+ connecting: false,
21
+ },
22
+ calendar: null,
23
+ device: {
24
+ url: 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',
25
+ deviceId: 'c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',
26
+ userId: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',
27
+ orgId: '1704d30d-a131-4bc7-9449-948487643793',
28
+ version: '1',
29
+ callingBehavior: 'NATIVE_WEBEX_TEAMS_CALLING',
30
+ features: {
31
+ entitlement: {
32
+ models: [{ _values: { key: 'bc-sp-standard' } }],
33
+ },
34
+ },
35
+ },
36
+ dss: {
37
+ lookup: jest.fn(),
38
+ },
39
+ encryption: {
40
+ decryptText: jest.fn(),
41
+ encryptText: jest.fn(),
42
+ kms: {
43
+ createUnboundKeys: jest.fn(),
44
+ createResource: jest.fn(),
45
+ bindKey: jest.fn(),
46
+ },
47
+ },
48
+ presence: jest.fn(),
49
+ support: jest.fn(),
50
+ services: {
51
+ _serviceUrls: {
52
+ mobius: 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1',
53
+ identity: 'https://identity-b-us.webex.com',
54
+ janus: 'https://janus-intb.ciscospark.com/janus/api/v1',
55
+ wdm: 'https://wdm-a.wbx2.com/wdm/api/v1',
56
+ broadworksIdpProxy: 'https://broadworks-idp-proxy-a.wbx2.com/broadworks-idp-proxy/api/v1',
57
+ hydra: 'https://hydra-a.wbx2.com/v1/',
58
+ mercuryApi: 'https://mercury-api-intb.ciscospark.com/v1',
59
+ 'ucmgmt-gateway': 'https://gw.telemetry.int-ucmgmt.cisco.com',
60
+ contactsService: 'https://contacts-service-a.wbx2.com/contact/api/v1',
61
+ directorySearch: 'https://directory-search-a.wbx2.com/direcory-search/api/v1/',
62
+ },
63
+ fetchClientRegionInfo: jest.fn(),
64
+ },
65
+ },
66
+ logger: {
67
+ log: jest.fn(),
68
+ error: jest.fn(),
69
+ warn: jest.fn(),
70
+ trace: jest.fn(),
71
+ info: jest.fn(),
72
+ debug: jest.fn(),
73
+ },
74
+ messages: null,
75
+ memberships: null,
76
+ people: {
77
+ list: jest.fn(),
78
+ },
79
+ rooms: null,
80
+ teams: null,
81
+ };
82
+ }
83
+ export const registration = {
84
+ triggerRegistration: () => jest.fn(),
85
+ };
86
+ export const mediaConnection = new MediaSDKMock.RoapMediaConnection({}, {
87
+ localTracks: {},
88
+ direction: {
89
+ audio: 'sendrecv',
90
+ video: 'sendrecv',
91
+ screenShareVideo: 'sendrecv',
92
+ },
93
+ }, '');
94
+ export const flushPromises = async (count) => {
95
+ await Promise.all([...Array(count)].map(() => Promise.resolve()));
96
+ };
97
+ export const mockCallingClient = {
98
+ emit: jest.fn(),
99
+ register: jest.fn(),
100
+ on: jest.fn(),
101
+ off: jest.fn(),
102
+ };
103
+ export const getMockRequestTemplate = () => {
104
+ return {
105
+ headers: {
106
+ 'cisco-device-url': 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',
107
+ 'spark-user-agent': 'web-calling-sdk/1.71.1 (web-calling)',
108
+ },
109
+ service: 'mobius',
110
+ };
111
+ };
112
+ export const getMobiusDiscoveryResponse = () => {
113
+ return {
114
+ primary: {
115
+ region: 'US-EAST',
116
+ uris: ['https://mobius-dfw.webex.com/api/v1'],
117
+ },
118
+ backup: {
119
+ region: 'US-WEST',
120
+ uris: ['https://mobius-sjc.webex.com/api/v1'],
121
+ },
122
+ };
123
+ };
124
+ export const getMockDeviceInfo = () => {
125
+ return {
126
+ device: {
127
+ deviceId: 'beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',
128
+ uri: 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1/calling/web/devices/beb3c025-8c6a-3c44-8f3d-9b7d65363ac1',
129
+ status: 'active',
130
+ lastSeen: '2022-04-05T05:08:46Z',
131
+ addresses: ['sip:pbs9p4cbr9_G6JJNI5DD5NP@64941297.int10.bcld.webex.com'],
132
+ clientDeviceUri: 'https://clientDeviceUrl',
133
+ },
134
+ };
135
+ };
136
+ export const getSampleScimResponse = () => {
137
+ const sampleAvatar = 'https://avatar-int-us-east-1.webexcontent.com/Avtr~V1~1704d30d-a131-4bc7-9449-948487643793/V1~bf911e86a1561896d7d0053b46a8d0c9ed82a7bc434a1f84621c2c45cc825f37~3720694b1e4340818a3d12d70eb2b6e1~80';
138
+ return {
139
+ totalResults: '1',
140
+ itemsPerPage: '1',
141
+ startIndex: '1',
142
+ schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],
143
+ Resources: [
144
+ {
145
+ userName: 'atlas.test.wxcwebrtc+user8@gmail.com',
146
+ emails: [
147
+ {
148
+ primary: true,
149
+ type: 'work',
150
+ value: 'atlas.test.wxcwebrtc+user8@gmail.com',
151
+ },
152
+ ],
153
+ name: {
154
+ givenName: 'Cathy',
155
+ familyName: 'James',
156
+ },
157
+ phoneNumbers: [
158
+ {
159
+ primary: false,
160
+ type: 'personal',
161
+ value: '5009',
162
+ },
163
+ {
164
+ primary: true,
165
+ type: 'work',
166
+ value: '5008',
167
+ },
168
+ ],
169
+ entitlements: [
170
+ 'basic-meeting',
171
+ 'basic-message',
172
+ 'bc-sp-standard',
173
+ 'screen-share',
174
+ 'spark',
175
+ 'spark-test-account',
176
+ 'squared-call-initiation',
177
+ 'webex-squared',
178
+ ],
179
+ cisSyncSource: 'SCIM',
180
+ photos: [
181
+ {
182
+ type: 'photo',
183
+ value: sampleAvatar,
184
+ },
185
+ {
186
+ type: 'thumbnail',
187
+ value: sampleAvatar,
188
+ },
189
+ ],
190
+ id: '652fe0c7-05ce-4acd-8bda-9a080830187f',
191
+ meta: {
192
+ created: '2022-03-16T16:13:53.847Z',
193
+ lastModified: '2022-05-31T14:39:12.782Z',
194
+ lastLoginTime: '2022-05-31T14:39:12.780Z',
195
+ version: 'W/"66025591113"',
196
+ location: 'https://identitybts.webex.com/identity/scim/1704d30d-a131-4bc7-9449-948487643793/v1/Users/652fe0c7-05ce-4acd-8bda-9a080830187f',
197
+ organizationID: '1704d30d-a131-4bc7-9449-948487643793',
198
+ creator: '97fe25e3-d3e8-400e-856b-5b0cd5b0c790',
199
+ modifier: '8c7abf2f-0c8e-49cf-b8e4-693d4ec7daee',
200
+ },
201
+ displayName: 'Cathy',
202
+ active: true,
203
+ licenseID: ['BCSTD_8c81f40c-e848-484e-8ca8-0fb6dabc75a5'],
204
+ userSettings: ['{"spark.signUpDate":"1648547902173"}', '{"user-origin":"admin-invited"}'],
205
+ sipAddresses: [
206
+ {
207
+ type: 'cloud-calling',
208
+ value: 'atlas.test.wxcwebrtc+user8@webrtcmobius.call.wbx2.com',
209
+ primary: true,
210
+ },
211
+ ],
212
+ isTeamsOnJabberEnabled: false,
213
+ isUCCallOnJabberEnabled: false,
214
+ userType: 'user',
215
+ mfaEnabled: false,
216
+ teamsClusterId: 'urn:TEAM:us-east-1_int13',
217
+ },
218
+ ],
219
+ };
220
+ };
221
+ export const getSamplePeopleListResponse = () => {
222
+ return {
223
+ notFoundIds: null,
224
+ items: [
225
+ {
226
+ id: 'Y2lzY29zcGFyazovL3VzL1BFT1BMRS9iODUzYmJkMS0xMTM2LTRkMjUtOTM4ZC0wYzM3NTMxYjEyMzM',
227
+ emails: ['atlas.test.wxcwebrtc+user2@gmail.com'],
228
+ phoneNumbers: [
229
+ { type: 'work', value: '+12142865899' },
230
+ { type: 'work', value: '+12142865890' },
231
+ ],
232
+ displayName: 'Krishna Kumar Rai',
233
+ nickName: 'Krishna Kumar',
234
+ firstName: 'Krishna Kumar',
235
+ lastName: 'Rai',
236
+ avatar: 'https://avatar-int-us-east-1.webexcontent.com/Avtr~V1~1704d30d-a131-4bc7-9449-948487643793/V1~63bb91536457f9b7d88739ae7cf78515800e468e0a4b59491b9c85b174c26eec~f10e91b5c0c0465ca8098f075ddec0b8~1600',
237
+ orgId: 'Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi8xNzA0ZDMwZC1hMTMxLTRiYzctOTQ0OS05NDg0ODc2NDM3OTM',
238
+ created: '2022-03-16T14:07:21.266Z',
239
+ lastModified: '2023-01-16T11:10:40.693Z',
240
+ lastActivity: '2023-01-27T08:21:06.988Z',
241
+ status: 'inactive',
242
+ type: 'person',
243
+ },
244
+ ],
245
+ };
246
+ };
247
+ export const getSampleRawAndParsedMediaStats = () => {
248
+ return {
249
+ statsWithVoOneWayDelayAndNw: {
250
+ raw: [
251
+ {
252
+ 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',
253
+ timestamp: 1680187470045.045,
254
+ type: 'certificate',
255
+ fingerprint: '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',
256
+ fingerprintAlgorithm: 'sha-256',
257
+ base64Certificate: 'MIIBFTCBvKADAgECAgg7QZ5hqSYvvjAKBggqhkjOPQQDAjARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMjMwMzI5MTQ0NDAzWhcNMjMwNDI5MTQ0NDAzWjARMQ8wDQYDVQQDDAZXZWJSVEMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmOwLsh05ty2dg9Z4lMP0eGKOEXiYK0aD7R6t9ZhmQGsnXOoJo6uI9PPep6KtwXu8gmsNgpWCFXchYqCXUc9XLMAoGCCqGSM49BAMCA0gAMEUCIAzhwwwBNgeoGDdmuP+E6bxa+jPCpUNxAojCvva483GQAiEAm1sV7ObKt0SWAxzYk4hBw3anywSTUb/mRmrqpctykPU=',
258
+ },
259
+ {
260
+ id: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',
261
+ timestamp: 1680187470045.045,
262
+ type: 'certificate',
263
+ fingerprint: 'E6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',
264
+ fingerprintAlgorithm: 'sha-1',
265
+ base64Certificate: 'MIIBrTCCAVMCAQEwCQYHKoZIzj0EATBjMQswCQYDVQQGEwJYWDEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDE2MDQGA1UEAwwtbWVkaWEtcG9vbDAud2Rmd3d4Yy1pbnQtMi5pbnQuaW5mcmEud2ViZXguY29tMB4XDTIzMDMzMDEyMDg1M1oXDTMzMDMyNzEyMDg1M1owYzELMAkGA1UEBhMCWFgxHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxNjA0BgNVBAMMLW1lZGlhLXBvb2wwLndkZnd3eGMtaW50LTIuaW50LmluZnJhLndlYmV4LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLxQbeY82wxCshXKWPfwPAD3aDF2oA5yvHnXAWBGHSO+yIqyEb5gOpoTgDNNrWerEQmjZQ0FeFAWv062KTS9FOIwCQYHKoZIzj0EAQNJADBGAiEA23zp5TJYq5OXFfOEc3ds0LHDyt7KQCLTItBJgXKik9oCIQCCA0qyNKx1v+AOtnkgDbBFjVArLF/5Sd3TIXMgc4VsnA==',
266
+ },
267
+ {
268
+ id: 'CIT01_111_minPtime=10;useInbandFec=1',
269
+ timestamp: 1680187470045.045,
270
+ type: 'codec',
271
+ transportId: 'T01',
272
+ payloadType: 111,
273
+ mimeType: 'audio/opus',
274
+ clockRate: 48000,
275
+ channels: 2,
276
+ sdpFmtpLine: 'minPtime=10;useInbandFec=1',
277
+ },
278
+ {
279
+ id: 'COT01_111_minPtime=10;useInbandFec=1',
280
+ timestamp: 1680187470045.045,
281
+ type: 'codec',
282
+ transportId: 'T01',
283
+ payloadType: 111,
284
+ mimeType: 'audio/opus',
285
+ clockRate: 48000,
286
+ channels: 2,
287
+ sdpFmtpLine: 'minPtime=10;useInbandFec=1',
288
+ },
289
+ {
290
+ id: 'RTCIceCandidatePair_CPg7Va+n9f_xvQ5iqnX',
291
+ timestamp: 1680187470045.045,
292
+ type: 'candidate-pair',
293
+ transportId: 'T01',
294
+ localCandidateId: 'RTCIceCandidate_Ig7Va+n9f',
295
+ remoteCandidateId: 'IxvQ5iqnX',
296
+ state: 'succeeded',
297
+ priority: 9114756780671369000,
298
+ nominated: true,
299
+ writable: true,
300
+ packetsSent: 1036,
301
+ packetsReceived: 1015,
302
+ bytesSent: 103064,
303
+ bytesReceived: 100460,
304
+ totalRoundTripTime: 3.611,
305
+ currentRoundTripTime: 0.303,
306
+ availableOutgoingBitrate: 300000,
307
+ requestsReceived: 0,
308
+ requestsSent: 12,
309
+ responsesReceived: 12,
310
+ responsesSent: 0,
311
+ consentRequestsSent: 9,
312
+ packetsDiscardedOnSend: 0,
313
+ bytesDiscardedOnSend: 0,
314
+ },
315
+ {
316
+ id: 'DEPRECATED_S_default',
317
+ timestamp: 1680187470045.045,
318
+ type: 'stream',
319
+ streamIdentifier: 'default',
320
+ trackIds: ['DEPRECATED_TI2'],
321
+ },
322
+ {
323
+ id: 'DEPRECATED_TI2',
324
+ timestamp: 1680187470045.045,
325
+ type: 'track',
326
+ trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',
327
+ remoteSource: true,
328
+ ended: false,
329
+ detached: false,
330
+ kind: 'audio',
331
+ jitterBufferDelay: 84508.8,
332
+ jitterBufferEmittedCount: 958080,
333
+ audioLevel: 0.004272591326639607,
334
+ totalAudioEnergy: 0.6976435552354842,
335
+ totalSamplesReceived: 987200,
336
+ totalSamplesDuration: 21.480000000000558,
337
+ concealedSamples: 27623,
338
+ silentConcealedSamples: 21400,
339
+ concealmentEvents: 8,
340
+ insertedSamplesForDeceleration: 3844,
341
+ removedSamplesForAcceleration: 2129,
342
+ },
343
+ {
344
+ id: 'DEPRECATED_TO1',
345
+ timestamp: 1680187470045.045,
346
+ type: 'track',
347
+ trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',
348
+ mediaSourceId: 'SA1',
349
+ remoteSource: false,
350
+ ended: false,
351
+ detached: false,
352
+ kind: 'audio',
353
+ echoReturnLoss: 13.656129837036133,
354
+ echoReturnLossEnhancement: 7.137247085571289,
355
+ },
356
+ {
357
+ id: 'DEPRECATED_VO1',
358
+ timestamp: 1680187470045.045,
359
+ type: 'local-candidate',
360
+ transportId: 'T01',
361
+ isRemote: false,
362
+ networkType: 'vpn',
363
+ ip: '10.227.211.139',
364
+ address: '10.227.211.139',
365
+ port: 9,
366
+ protocol: 'tcp',
367
+ candidateType: 'host',
368
+ priority: 1518214911,
369
+ foundation: '2654339674',
370
+ usernameFragment: 'V+QJ',
371
+ tcpType: 'active',
372
+ },
373
+ {
374
+ id: 'IKm2fnMou',
375
+ timestamp: 1680187470045.045,
376
+ type: 'local-candidate',
377
+ transportId: 'T01',
378
+ isRemote: false,
379
+ networkType: 'wifi',
380
+ ip: '192.168.1.65',
381
+ address: '192.168.1.65',
382
+ port: 9,
383
+ protocol: 'tcp',
384
+ candidateType: 'host',
385
+ priority: 1518280447,
386
+ foundation: '1437462698',
387
+ usernameFragment: 'V+QJ',
388
+ tcpType: 'active',
389
+ },
390
+ {
391
+ id: 'IT01A1746541880',
392
+ timestamp: 1680187470045.045,
393
+ type: 'inbound-rtp',
394
+ ssrc: 1746541880,
395
+ kind: 'audio',
396
+ trackId: 'DEPRECATED_TI2',
397
+ transportId: 'T01',
398
+ codecId: 'CIT01_111_minPtime=10;useInbandFec=1',
399
+ mediaType: 'audio',
400
+ jitter: 0.008,
401
+ packetsLost: 3,
402
+ trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',
403
+ mid: '0',
404
+ remoteId: 'ROA1746541880',
405
+ packetsReceived: 1003,
406
+ packetsDiscarded: 0,
407
+ fecPacketsReceived: 0,
408
+ fecPacketsDiscarded: 0,
409
+ bytesReceived: 76880,
410
+ headerBytesReceived: 12036,
411
+ lastPacketReceivedTimestamp: 1680187470035,
412
+ jitterBufferDelay: 84508.8,
413
+ jitterBufferTargetDelay: 92793.6,
414
+ jitterBufferMinimumDelay: 92640,
415
+ jitterBufferEmittedCount: 958080,
416
+ totalSamplesReceived: 987200,
417
+ concealedSamples: 27623,
418
+ silentConcealedSamples: 21400,
419
+ concealmentEvents: 8,
420
+ insertedSamplesForDeceleration: 3844,
421
+ removedSamplesForAcceleration: 2129,
422
+ audioLevel: 0.004272591326639607,
423
+ totalAudioEnergy: 0.6976435552354842,
424
+ totalSamplesDuration: 21.480000000000558,
425
+ },
426
+ {
427
+ id: 'IUzJLjNLE',
428
+ timestamp: 1680187470045.045,
429
+ type: 'local-candidate',
430
+ transportId: 'T01',
431
+ isRemote: false,
432
+ networkType: 'wifi',
433
+ ip: '192.168.1.65',
434
+ address: '192.168.1.65',
435
+ port: 58574,
436
+ protocol: 'udp',
437
+ candidateType: 'host',
438
+ priority: 2122260223,
439
+ foundation: '727847474',
440
+ usernameFragment: 'V+QJ',
441
+ },
442
+ {
443
+ id: 'RTCIceCandidate_Ig7Va+n9f',
444
+ timestamp: 1680187470045.045,
445
+ type: 'local-candidate',
446
+ transportId: 'T01',
447
+ isRemote: false,
448
+ networkType: 'vpn',
449
+ ip: '10.227.211.139',
450
+ address: '10.227.211.139',
451
+ port: 64898,
452
+ protocol: 'udp',
453
+ candidateType: 'host',
454
+ priority: 2122194687,
455
+ foundation: '3774472386',
456
+ usernameFragment: 'V+QJ',
457
+ },
458
+ {
459
+ id: 'IxvQ5iqnX',
460
+ timestamp: 1680187470045.045,
461
+ type: 'remote-candidate',
462
+ transportId: 'T01',
463
+ isRemote: true,
464
+ ip: '207.182.171.180',
465
+ address: '207.182.171.180',
466
+ port: 19608,
467
+ protocol: 'udp',
468
+ candidateType: 'host',
469
+ priority: 2130706431,
470
+ foundation: 'mse',
471
+ usernameFragment: 'S3cv',
472
+ },
473
+ {
474
+ id: 'OT01A2728789632',
475
+ timestamp: 1680187470045.045,
476
+ type: 'outbound-rtp',
477
+ ssrc: 2728789632,
478
+ kind: 'audio',
479
+ trackId: 'DEPRECATED_TO1',
480
+ transportId: 'T01',
481
+ codecId: 'COT01_111_minPtime=10;useInbandFec=1',
482
+ mediaType: 'audio',
483
+ mediaSourceId: 'SA1',
484
+ remoteId: 'RIA2728789632',
485
+ mid: '0',
486
+ packetsSent: 1026,
487
+ retransmittedPacketsSent: 0,
488
+ bytesSent: 79294,
489
+ headerBytesSent: 12312,
490
+ retransmittedBytesSent: 0,
491
+ targetBitrate: 32000,
492
+ nackCount: 0,
493
+ active: true,
494
+ },
495
+ {
496
+ id: 'P',
497
+ timestamp: 1680187470045.045,
498
+ type: 'peer-connection',
499
+ dataChannelsOpened: 0,
500
+ dataChannelsClosed: 0,
501
+ },
502
+ {
503
+ id: 'RIA2728789632',
504
+ timestamp: 1680187469719,
505
+ type: 'remote-inbound-rtp',
506
+ ssrc: 2728789632,
507
+ kind: 'audio',
508
+ transportId: 'T01',
509
+ codecId: 'COT01_111_minPtime=10;useInbandFec=1',
510
+ jitter: 0.0055625,
511
+ packetsLost: 0,
512
+ localId: 'OT01A2728789632',
513
+ roundTripTime: 0.665,
514
+ fractionLost: 0,
515
+ totalRoundTripTime: 2.509,
516
+ roundTripTimeMeasurements: 4,
517
+ },
518
+ {
519
+ id: 'ROA1746541880',
520
+ timestamp: 1680187467829,
521
+ type: 'remote-outbound-rtp',
522
+ ssrc: 1746541880,
523
+ kind: 'audio',
524
+ transportId: 'T01',
525
+ codecId: 'CIT01_111_minPtime=10;useInbandFec=1',
526
+ packetsSent: 895,
527
+ bytesSent: 68669,
528
+ localId: 'IT01A1746541880',
529
+ remoteTimestamp: 1680187467378,
530
+ reportsSent: 5,
531
+ roundTripTimeMeasurements: 0,
532
+ totalRoundTripTime: 0,
533
+ },
534
+ {
535
+ id: 'SA1',
536
+ timestamp: 1680187470045.045,
537
+ type: 'media-source',
538
+ trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',
539
+ kind: 'audio',
540
+ audioLevel: 0.006469924008911405,
541
+ totalAudioEnergy: 0.7681144799128602,
542
+ totalSamplesDuration: 26.650000000001366,
543
+ echoReturnLoss: 13.656129837036133,
544
+ echoReturnLossEnhancement: 7.137247085571289,
545
+ },
546
+ {
547
+ id: 'T01',
548
+ timestamp: 1680187470045.045,
549
+ type: 'transport',
550
+ bytesSent: 103064,
551
+ packetsSent: 1036,
552
+ bytesReceived: 100460,
553
+ packetsReceived: 1015,
554
+ dtlsState: 'connected',
555
+ selectedCandidatePairId: 'RTCIceCandidatePair_CPg7Va+n9f_xvQ5iqnX',
556
+ localCertificateId: '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',
557
+ remoteCertificateId: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',
558
+ tlsVersion: 'tls1.2',
559
+ dtlsCipher: 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',
560
+ dtlsRole: 'client',
561
+ srtpCipher: 'AES_CM_128_HMAC_SHA1_80',
562
+ selectedCandidatePairChanges: 1,
563
+ iceRole: 'controlling',
564
+ iceLocalUsernameFragment: 'V+QJ',
565
+ iceState: 'connected',
566
+ },
567
+ ],
568
+ parsed: {
569
+ 'rtp-rxstat': {
570
+ LostPkt: 3,
571
+ Pkt: 1003,
572
+ LatePkt: 0,
573
+ Oct: 76880,
574
+ Dur: 26.650000000001366,
575
+ AvgJit: 0.08820641282565131,
576
+ VQMetrics: {
577
+ maxJitter: 0,
578
+ VoPktSizeMs: 20,
579
+ VoOneWayDelayMs: 0.313625,
580
+ hwType: `${platform.os}/${platform.name}-${platform.version}`,
581
+ networkType: 'vpn',
582
+ VoRxCodec: 'opus',
583
+ },
584
+ },
585
+ 'rtp-txstat': {
586
+ Pkt: 1026,
587
+ Oct: 79294,
588
+ Dur: 26.650000000001366,
589
+ VQMetrics: { VoTxCodec: 'opus', rtpBitRate: 32000 },
590
+ },
591
+ },
592
+ },
593
+ statsWithoutVoOneWayDelayAndNw: {
594
+ raw: [
595
+ {
596
+ 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',
597
+ timestamp: 1680187470045.045,
598
+ type: 'certificate',
599
+ fingerprint: '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',
600
+ fingerprintAlgorithm: 'sha-256',
601
+ base64Certificate: 'MIIBFTCBvKADAgECAgg7QZ5hqSYvvjAKBggqhkjOPQQDAjARMQ8wDQYDVQQDDAZXZWJSVEMwHhcNMjMwMzI5MTQ0NDAzWhcNMjMwNDI5MTQ0NDAzWjARMQ8wDQYDVQQDDAZXZWJSVEMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmOwLsh05ty2dg9Z4lMP0eGKOEXiYK0aD7R6t9ZhmQGsnXOoJo6uI9PPep6KtwXu8gmsNgpWCFXchYqCXUc9XLMAoGCCqGSM49BAMCA0gAMEUCIAzhwwwBNgeoGDdmuP+E6bxa+jPCpUNxAojCvva483GQAiEAm1sV7ObKt0SWAxzYk4hBw3anywSTUb/mRmrqpctykPU=',
602
+ },
603
+ {
604
+ id: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',
605
+ timestamp: 1680187470045.045,
606
+ type: 'certificate',
607
+ fingerprint: 'E6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',
608
+ fingerprintAlgorithm: 'sha-1',
609
+ base64Certificate: 'MIIBrTCCAVMCAQEwCQYHKoZIzj0EATBjMQswCQYDVQQGEwJYWDEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDE2MDQGA1UEAwwtbWVkaWEtcG9vbDAud2Rmd3d4Yy1pbnQtMi5pbnQuaW5mcmEud2ViZXguY29tMB4XDTIzMDMzMDEyMDg1M1oXDTMzMDMyNzEyMDg1M1owYzELMAkGA1UEBhMCWFgxHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxNjA0BgNVBAMMLW1lZGlhLXBvb2wwLndkZnd3eGMtaW50LTIuaW50LmluZnJhLndlYmV4LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLxQbeY82wxCshXKWPfwPAD3aDF2oA5yvHnXAWBGHSO+yIqyEb5gOpoTgDNNrWerEQmjZQ0FeFAWv062KTS9FOIwCQYHKoZIzj0EAQNJADBGAiEA23zp5TJYq5OXFfOEc3ds0LHDyt7KQCLTItBJgXKik9oCIQCCA0qyNKx1v+AOtnkgDbBFjVArLF/5Sd3TIXMgc4VsnA==',
610
+ },
611
+ {
612
+ id: 'CIT01_111_minPtime=10;useInbandFec=1',
613
+ timestamp: 1680187470045.045,
614
+ type: 'codec',
615
+ transportId: 'T01',
616
+ payloadType: 111,
617
+ mimeType: 'audio/opus',
618
+ clockRate: 48000,
619
+ channels: 2,
620
+ sdpFmtpLine: 'minPtime=10;useInbandFec=1',
621
+ },
622
+ {
623
+ id: 'COT01_111_minPtime=10;useInbandFec=1',
624
+ timestamp: 1680187470045.045,
625
+ type: 'codec',
626
+ transportId: 'T01',
627
+ payloadType: 111,
628
+ mimeType: 'audio/opus',
629
+ clockRate: 48000,
630
+ channels: 2,
631
+ sdpFmtpLine: 'minPtime=10;useInbandFec=1',
632
+ },
633
+ {
634
+ id: 'CPg7Va+n9f_xvQ5iqnX',
635
+ timestamp: 1680187470045.045,
636
+ type: 'candidate-pair',
637
+ transportId: 'T01',
638
+ localCandidateId: 'Ig7Va+n9f',
639
+ remoteCandidateId: 'IxvQ5iqnX',
640
+ state: 'succeeded',
641
+ priority: 9114756780671369000,
642
+ nominated: true,
643
+ writable: true,
644
+ packetsSent: 1036,
645
+ packetsReceived: 1015,
646
+ bytesSent: 103064,
647
+ bytesReceived: 100460,
648
+ totalRoundTripTime: 3.611,
649
+ currentRoundTripTime: 0.303,
650
+ availableOutgoingBitrate: 300000,
651
+ requestsReceived: 0,
652
+ requestsSent: 12,
653
+ responsesReceived: 12,
654
+ responsesSent: 0,
655
+ consentRequestsSent: 9,
656
+ packetsDiscardedOnSend: 0,
657
+ bytesDiscardedOnSend: 0,
658
+ },
659
+ {
660
+ id: 'DEPRECATED_S_default',
661
+ timestamp: 1680187470045.045,
662
+ type: 'stream',
663
+ streamIdentifier: 'default',
664
+ trackIds: ['DEPRECATED_TI2'],
665
+ },
666
+ {
667
+ id: 'DEPRECATED_TI2',
668
+ timestamp: 1680187470045.045,
669
+ type: 'track',
670
+ trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',
671
+ remoteSource: true,
672
+ ended: false,
673
+ detached: false,
674
+ kind: 'audio',
675
+ jitterBufferDelay: 84508.8,
676
+ jitterBufferEmittedCount: 958080,
677
+ audioLevel: 0.004272591326639607,
678
+ totalAudioEnergy: 0.6976435552354842,
679
+ totalSamplesReceived: 987200,
680
+ totalSamplesDuration: 21.480000000000558,
681
+ concealedSamples: 27623,
682
+ silentConcealedSamples: 21400,
683
+ concealmentEvents: 8,
684
+ insertedSamplesForDeceleration: 3844,
685
+ removedSamplesForAcceleration: 2129,
686
+ },
687
+ {
688
+ id: 'DEPRECATED_TO1',
689
+ timestamp: 1680187470045.045,
690
+ type: 'track',
691
+ trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',
692
+ mediaSourceId: 'SA1',
693
+ remoteSource: false,
694
+ ended: false,
695
+ detached: false,
696
+ kind: 'audio',
697
+ echoReturnLoss: 13.656129837036133,
698
+ echoReturnLossEnhancement: 7.137247085571289,
699
+ },
700
+ {
701
+ id: 'DEPRECATED_VO1',
702
+ timestamp: 1680187470045.045,
703
+ type: 'local-candidate',
704
+ transportId: 'T01',
705
+ isRemote: false,
706
+ networkType: 'vpn',
707
+ ip: '10.227.211.139',
708
+ address: '10.227.211.139',
709
+ port: 9,
710
+ protocol: 'tcp',
711
+ candidateType: 'host',
712
+ priority: 1518214911,
713
+ foundation: '2654339674',
714
+ usernameFragment: 'V+QJ',
715
+ tcpType: 'active',
716
+ },
717
+ {
718
+ id: 'IKm2fnMou',
719
+ timestamp: 1680187470045.045,
720
+ type: 'local-candidate',
721
+ transportId: 'T01',
722
+ isRemote: false,
723
+ networkType: 'wifi',
724
+ ip: '192.168.1.65',
725
+ address: '192.168.1.65',
726
+ port: 9,
727
+ protocol: 'tcp',
728
+ candidateType: 'host',
729
+ priority: 1518280447,
730
+ foundation: '1437462698',
731
+ usernameFragment: 'V+QJ',
732
+ tcpType: 'active',
733
+ },
734
+ {
735
+ id: 'IT01A1746541880',
736
+ timestamp: 1680187470045.045,
737
+ type: 'inbound-rtp',
738
+ ssrc: 1746541880,
739
+ kind: 'audio',
740
+ trackId: 'DEPRECATED_TI2',
741
+ transportId: 'T01',
742
+ codecId: 'CIT01_111_minPtime=10;useInbandFec=1',
743
+ mediaType: 'audio',
744
+ jitter: 0.008,
745
+ packetsLost: 3,
746
+ trackIdentifier: '22012ddf-1185-4f85-978c-b71bcabe347e',
747
+ mid: '0',
748
+ remoteId: 'ROA1746541880',
749
+ packetsReceived: 1003,
750
+ packetsDiscarded: 0,
751
+ fecPacketsReceived: 0,
752
+ fecPacketsDiscarded: 0,
753
+ bytesReceived: 76880,
754
+ headerBytesReceived: 12036,
755
+ lastPacketReceivedTimestamp: 1680187470035,
756
+ jitterBufferDelay: 84508.8,
757
+ jitterBufferTargetDelay: 92793.6,
758
+ jitterBufferMinimumDelay: 92640,
759
+ jitterBufferEmittedCount: 958080,
760
+ totalSamplesReceived: 987200,
761
+ concealedSamples: 27623,
762
+ silentConcealedSamples: 21400,
763
+ concealmentEvents: 8,
764
+ insertedSamplesForDeceleration: 3844,
765
+ removedSamplesForAcceleration: 2129,
766
+ audioLevel: 0.004272591326639607,
767
+ totalAudioEnergy: 0.6976435552354842,
768
+ totalSamplesDuration: 21.480000000000558,
769
+ },
770
+ {
771
+ id: 'IUzJLjNLE',
772
+ timestamp: 1680187470045.045,
773
+ type: 'local-candidate',
774
+ transportId: 'T01',
775
+ isRemote: false,
776
+ networkType: 'wifi',
777
+ ip: '192.168.1.65',
778
+ address: '192.168.1.65',
779
+ port: 58574,
780
+ protocol: 'udp',
781
+ candidateType: 'host',
782
+ priority: 2122260223,
783
+ foundation: '727847474',
784
+ usernameFragment: 'V+QJ',
785
+ },
786
+ {
787
+ id: 'Ig7Va+n9f',
788
+ timestamp: 1680187470045.045,
789
+ type: 'local-candidate',
790
+ transportId: 'T01',
791
+ isRemote: false,
792
+ networkType: 'vpn',
793
+ ip: '10.227.211.139',
794
+ address: '10.227.211.139',
795
+ port: 64898,
796
+ protocol: 'udp',
797
+ candidateType: 'host',
798
+ priority: 2122194687,
799
+ foundation: '3774472386',
800
+ usernameFragment: 'V+QJ',
801
+ },
802
+ {
803
+ id: 'IxvQ5iqnX',
804
+ timestamp: 1680187470045.045,
805
+ type: 'remote-candidate',
806
+ transportId: 'T01',
807
+ isRemote: true,
808
+ ip: '207.182.171.180',
809
+ address: '207.182.171.180',
810
+ port: 19608,
811
+ protocol: 'udp',
812
+ candidateType: 'host',
813
+ priority: 2130706431,
814
+ foundation: 'mse',
815
+ usernameFragment: 'S3cv',
816
+ },
817
+ {
818
+ id: 'OT01A2728789632',
819
+ timestamp: 1680187470045.045,
820
+ type: 'outbound-rtp',
821
+ ssrc: 2728789632,
822
+ kind: 'audio',
823
+ trackId: 'DEPRECATED_TO1',
824
+ transportId: 'T01',
825
+ codecId: 'COT01_111_minPtime=10;useInbandFec=1',
826
+ mediaType: 'audio',
827
+ mediaSourceId: 'SA1',
828
+ remoteId: 'RIA2728789632',
829
+ mid: '0',
830
+ packetsSent: 1026,
831
+ retransmittedPacketsSent: 0,
832
+ bytesSent: 79294,
833
+ headerBytesSent: 12312,
834
+ retransmittedBytesSent: 0,
835
+ targetBitrate: 32000,
836
+ nackCount: 0,
837
+ active: true,
838
+ },
839
+ {
840
+ id: 'P',
841
+ timestamp: 1680187470045.045,
842
+ type: 'peer-connection',
843
+ dataChannelsOpened: 0,
844
+ dataChannelsClosed: 0,
845
+ },
846
+ {
847
+ id: 'RIA2728789632',
848
+ timestamp: 1680187469719,
849
+ type: 'remote-inbound-rtp',
850
+ ssrc: 2728789632,
851
+ kind: 'audio',
852
+ transportId: 'T01',
853
+ codecId: 'COT01_111_minPtime=10;useInbandFec=1',
854
+ jitter: 0.0055625,
855
+ packetsLost: 0,
856
+ localId: 'OT01A2728789632',
857
+ roundTripTime: 0.665,
858
+ fractionLost: 0,
859
+ totalRoundTripTime: 2.509,
860
+ roundTripTimeMeasurements: 0,
861
+ },
862
+ {
863
+ id: 'ROA1746541880',
864
+ timestamp: 1680187467829,
865
+ type: 'remote-outbound-rtp',
866
+ ssrc: 1746541880,
867
+ kind: 'audio',
868
+ transportId: 'T01',
869
+ codecId: 'CIT01_111_minPtime=10;useInbandFec=1',
870
+ packetsSent: 895,
871
+ bytesSent: 68669,
872
+ localId: 'IT01A1746541880',
873
+ remoteTimestamp: 1680187467378,
874
+ reportsSent: 5,
875
+ roundTripTimeMeasurements: 0,
876
+ totalRoundTripTime: 0,
877
+ },
878
+ {
879
+ id: 'SA1',
880
+ timestamp: 1680187470045.045,
881
+ type: 'media-source',
882
+ trackIdentifier: '1fc9f3fc-358e-4434-ba18-10b89e8a118f',
883
+ kind: 'audio',
884
+ audioLevel: 0.006469924008911405,
885
+ totalAudioEnergy: 0.7681144799128602,
886
+ totalSamplesDuration: 26.650000000001366,
887
+ echoReturnLoss: 13.656129837036133,
888
+ echoReturnLossEnhancement: 7.137247085571289,
889
+ },
890
+ {
891
+ id: 'T01',
892
+ timestamp: 1680187470045.045,
893
+ type: 'transport',
894
+ bytesSent: 103064,
895
+ packetsSent: 1036,
896
+ bytesReceived: 100460,
897
+ packetsReceived: 1015,
898
+ dtlsState: 'connected',
899
+ selectedCandidatePairId: 'CPg7Va+n9f_xvQ5iqnX',
900
+ localCertificateId: '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',
901
+ remoteCertificateId: 'CFE6:62:7C:70:64:BA:49:37:F7:66:64:53:B7:80:14:DC:03:D0:70:E2',
902
+ tlsVersion: 'tls1.2',
903
+ dtlsCipher: 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',
904
+ dtlsRole: 'client',
905
+ srtpCipher: 'AES_CM_128_HMAC_SHA1_80',
906
+ selectedCandidatePairChanges: 1,
907
+ iceRole: 'controlling',
908
+ iceLocalUsernameFragment: 'V+QJ',
909
+ iceState: 'connected',
910
+ },
911
+ ],
912
+ parsed: {
913
+ 'rtp-rxstat': {
914
+ LostPkt: 3,
915
+ Pkt: 1003,
916
+ LatePkt: 0,
917
+ Oct: 76880,
918
+ Dur: 26.650000000001366,
919
+ AvgJit: 0.08820641282565131,
920
+ VQMetrics: {
921
+ maxJitter: 0,
922
+ VoPktSizeMs: 20,
923
+ VoOneWayDelayMs: 0,
924
+ hwType: `${platform.os}/${platform.name}-${platform.version}`,
925
+ networkType: undefined,
926
+ VoRxCodec: 'opus',
927
+ },
928
+ },
929
+ 'rtp-txstat': {
930
+ Pkt: 1026,
931
+ Oct: 79294,
932
+ Dur: 26.650000000001366,
933
+ VQMetrics: { VoTxCodec: 'opus', rtpBitRate: 32000 },
934
+ },
935
+ },
936
+ },
937
+ };
938
+ };