@webex/calling 0.0.1-next.0

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 (179) hide show
  1. package/README.md +67 -0
  2. package/dist/module/CallHistory/CallHistory.js +84 -0
  3. package/dist/module/CallHistory/callHistoryFixtures.js +307 -0
  4. package/dist/module/CallHistory/constants.js +9 -0
  5. package/dist/module/CallHistory/types.js +1 -0
  6. package/dist/module/CallSettings/CallSettings.js +65 -0
  7. package/dist/module/CallSettings/UcmBackendConnector.js +100 -0
  8. package/dist/module/CallSettings/WxCallBackendConnector.js +287 -0
  9. package/dist/module/CallSettings/constants.js +11 -0
  10. package/dist/module/CallSettings/testFixtures.js +62 -0
  11. package/dist/module/CallSettings/types.js +1 -0
  12. package/dist/module/CallingClient/CallingClient.js +268 -0
  13. package/dist/module/CallingClient/callRecordFixtures.js +93 -0
  14. package/dist/module/CallingClient/calling/CallerId/index.js +169 -0
  15. package/dist/module/CallingClient/calling/CallerId/types.js +1 -0
  16. package/dist/module/CallingClient/calling/call.js +1649 -0
  17. package/dist/module/CallingClient/calling/callManager.js +274 -0
  18. package/dist/module/CallingClient/calling/index.js +2 -0
  19. package/dist/module/CallingClient/calling/types.js +53 -0
  20. package/dist/module/CallingClient/callingClientFixtures.js +38 -0
  21. package/dist/module/CallingClient/constants.js +122 -0
  22. package/dist/module/CallingClient/line/index.js +110 -0
  23. package/dist/module/CallingClient/line/types.js +14 -0
  24. package/dist/module/CallingClient/registration/index.js +1 -0
  25. package/dist/module/CallingClient/registration/register.js +507 -0
  26. package/dist/module/CallingClient/registration/registerFixtures.js +28 -0
  27. package/dist/module/CallingClient/registration/types.js +1 -0
  28. package/dist/module/CallingClient/types.js +1 -0
  29. package/dist/module/Contacts/ContactsClient.js +487 -0
  30. package/dist/module/Contacts/constants.js +20 -0
  31. package/dist/module/Contacts/contactFixtures.js +284 -0
  32. package/dist/module/Contacts/types.js +10 -0
  33. package/dist/module/Errors/catalog/CallError.js +26 -0
  34. package/dist/module/Errors/catalog/CallingDeviceError.js +18 -0
  35. package/dist/module/Errors/catalog/ExtendedError.js +10 -0
  36. package/dist/module/Errors/catalog/LineError.js +24 -0
  37. package/dist/module/Errors/index.js +2 -0
  38. package/dist/module/Errors/types.js +48 -0
  39. package/dist/module/Events/impl/index.js +19 -0
  40. package/dist/module/Events/types.js +74 -0
  41. package/dist/module/Logger/index.js +114 -0
  42. package/dist/module/Logger/types.js +25 -0
  43. package/dist/module/Metrics/index.js +232 -0
  44. package/dist/module/Metrics/types.js +37 -0
  45. package/dist/module/SDKConnector/index.js +39 -0
  46. package/dist/module/SDKConnector/types.js +1 -0
  47. package/dist/module/SDKConnector/utils.js +12 -0
  48. package/dist/module/Voicemail/BroadworksBackendConnector.js +289 -0
  49. package/dist/module/Voicemail/UcmBackendConnector.js +275 -0
  50. package/dist/module/Voicemail/Voicemail.js +110 -0
  51. package/dist/module/Voicemail/WxCallBackendConnector.js +279 -0
  52. package/dist/module/Voicemail/constants.js +29 -0
  53. package/dist/module/Voicemail/types.js +1 -0
  54. package/dist/module/Voicemail/voicemailFixture.js +449 -0
  55. package/dist/module/common/Utils.js +802 -0
  56. package/dist/module/common/constants.js +40 -0
  57. package/dist/module/common/index.js +1 -0
  58. package/dist/module/common/testUtil.js +938 -0
  59. package/dist/module/common/types.js +57 -0
  60. package/dist/module/index.js +8 -0
  61. package/dist/types/CallHistory/CallHistory.d.ts +19 -0
  62. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -0
  63. package/dist/types/CallHistory/callHistoryFixtures.d.ts +95 -0
  64. package/dist/types/CallHistory/callHistoryFixtures.d.ts.map +1 -0
  65. package/dist/types/CallHistory/constants.d.ts +10 -0
  66. package/dist/types/CallHistory/constants.d.ts.map +1 -0
  67. package/dist/types/CallHistory/types.d.ts +21 -0
  68. package/dist/types/CallHistory/types.d.ts.map +1 -0
  69. package/dist/types/CallSettings/CallSettings.d.ts +20 -0
  70. package/dist/types/CallSettings/CallSettings.d.ts.map +1 -0
  71. package/dist/types/CallSettings/UcmBackendConnector.d.ts +20 -0
  72. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -0
  73. package/dist/types/CallSettings/WxCallBackendConnector.d.ts +22 -0
  74. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -0
  75. package/dist/types/CallSettings/constants.d.ts +12 -0
  76. package/dist/types/CallSettings/constants.d.ts.map +1 -0
  77. package/dist/types/CallSettings/testFixtures.d.ts +16 -0
  78. package/dist/types/CallSettings/testFixtures.d.ts.map +1 -0
  79. package/dist/types/CallSettings/types.d.ts +108 -0
  80. package/dist/types/CallSettings/types.d.ts.map +1 -0
  81. package/dist/types/CallingClient/CallingClient.d.ts +38 -0
  82. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -0
  83. package/dist/types/CallingClient/callRecordFixtures.d.ts +4 -0
  84. package/dist/types/CallingClient/callRecordFixtures.d.ts.map +1 -0
  85. package/dist/types/CallingClient/calling/CallerId/index.d.ts +18 -0
  86. package/dist/types/CallingClient/calling/CallerId/index.d.ts.map +1 -0
  87. package/dist/types/CallingClient/calling/CallerId/types.d.ts +42 -0
  88. package/dist/types/CallingClient/calling/CallerId/types.d.ts.map +1 -0
  89. package/dist/types/CallingClient/calling/call.d.ts +95 -0
  90. package/dist/types/CallingClient/calling/call.d.ts.map +1 -0
  91. package/dist/types/CallingClient/calling/callManager.d.ts +22 -0
  92. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -0
  93. package/dist/types/CallingClient/calling/index.d.ts +3 -0
  94. package/dist/types/CallingClient/calling/index.d.ts.map +1 -0
  95. package/dist/types/CallingClient/calling/types.d.ts +204 -0
  96. package/dist/types/CallingClient/calling/types.d.ts.map +1 -0
  97. package/dist/types/CallingClient/callingClientFixtures.d.ts +19 -0
  98. package/dist/types/CallingClient/callingClientFixtures.d.ts.map +1 -0
  99. package/dist/types/CallingClient/constants.d.ts +123 -0
  100. package/dist/types/CallingClient/constants.d.ts.map +1 -0
  101. package/dist/types/CallingClient/line/index.d.ts +39 -0
  102. package/dist/types/CallingClient/line/index.d.ts.map +1 -0
  103. package/dist/types/CallingClient/line/types.d.ts +51 -0
  104. package/dist/types/CallingClient/line/types.d.ts.map +1 -0
  105. package/dist/types/CallingClient/registration/index.d.ts +2 -0
  106. package/dist/types/CallingClient/registration/index.d.ts.map +1 -0
  107. package/dist/types/CallingClient/registration/register.d.ts +65 -0
  108. package/dist/types/CallingClient/registration/register.d.ts.map +1 -0
  109. package/dist/types/CallingClient/registration/registerFixtures.d.ts +29 -0
  110. package/dist/types/CallingClient/registration/registerFixtures.d.ts.map +1 -0
  111. package/dist/types/CallingClient/registration/types.d.ts +21 -0
  112. package/dist/types/CallingClient/registration/types.d.ts.map +1 -0
  113. package/dist/types/CallingClient/types.d.ts +30 -0
  114. package/dist/types/CallingClient/types.d.ts.map +1 -0
  115. package/dist/types/Contacts/ContactsClient.d.ts +28 -0
  116. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -0
  117. package/dist/types/Contacts/constants.d.ts +20 -0
  118. package/dist/types/Contacts/constants.d.ts.map +1 -0
  119. package/dist/types/Contacts/contactFixtures.d.ts +281 -0
  120. package/dist/types/Contacts/contactFixtures.d.ts.map +1 -0
  121. package/dist/types/Contacts/types.d.ts +75 -0
  122. package/dist/types/Contacts/types.d.ts.map +1 -0
  123. package/dist/types/Errors/catalog/CallError.d.ts +12 -0
  124. package/dist/types/Errors/catalog/CallError.d.ts.map +1 -0
  125. package/dist/types/Errors/catalog/CallingDeviceError.d.ts +11 -0
  126. package/dist/types/Errors/catalog/CallingDeviceError.d.ts.map +1 -0
  127. package/dist/types/Errors/catalog/ExtendedError.d.ts +7 -0
  128. package/dist/types/Errors/catalog/ExtendedError.d.ts.map +1 -0
  129. package/dist/types/Errors/catalog/LineError.d.ts +11 -0
  130. package/dist/types/Errors/catalog/LineError.d.ts.map +1 -0
  131. package/dist/types/Errors/index.d.ts +3 -0
  132. package/dist/types/Errors/index.d.ts.map +1 -0
  133. package/dist/types/Errors/types.d.ts +61 -0
  134. package/dist/types/Errors/types.d.ts.map +1 -0
  135. package/dist/types/Events/impl/index.d.ts +9 -0
  136. package/dist/types/Events/impl/index.d.ts.map +1 -0
  137. package/dist/types/Events/types.d.ts +284 -0
  138. package/dist/types/Events/types.d.ts.map +1 -0
  139. package/dist/types/Logger/index.d.ts +13 -0
  140. package/dist/types/Logger/index.d.ts.map +1 -0
  141. package/dist/types/Logger/types.d.ts +26 -0
  142. package/dist/types/Logger/types.d.ts.map +1 -0
  143. package/dist/types/Metrics/index.d.ts +6 -0
  144. package/dist/types/Metrics/index.d.ts.map +1 -0
  145. package/dist/types/Metrics/types.d.ts +43 -0
  146. package/dist/types/Metrics/types.d.ts.map +1 -0
  147. package/dist/types/SDKConnector/index.d.ts +13 -0
  148. package/dist/types/SDKConnector/index.d.ts.map +1 -0
  149. package/dist/types/SDKConnector/types.d.ts +129 -0
  150. package/dist/types/SDKConnector/types.d.ts.map +1 -0
  151. package/dist/types/SDKConnector/utils.d.ts +6 -0
  152. package/dist/types/SDKConnector/utils.d.ts.map +1 -0
  153. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts +28 -0
  154. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -0
  155. package/dist/types/Voicemail/UcmBackendConnector.d.ts +35 -0
  156. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -0
  157. package/dist/types/Voicemail/Voicemail.d.ts +28 -0
  158. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -0
  159. package/dist/types/Voicemail/WxCallBackendConnector.d.ts +24 -0
  160. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -0
  161. package/dist/types/Voicemail/constants.d.ts +30 -0
  162. package/dist/types/Voicemail/constants.d.ts.map +1 -0
  163. package/dist/types/Voicemail/types.d.ts +134 -0
  164. package/dist/types/Voicemail/types.d.ts.map +1 -0
  165. package/dist/types/Voicemail/voicemailFixture.d.ts +350 -0
  166. package/dist/types/Voicemail/voicemailFixture.d.ts.map +1 -0
  167. package/dist/types/common/Utils.d.ts +35 -0
  168. package/dist/types/common/Utils.d.ts.map +1 -0
  169. package/dist/types/common/constants.d.ts +41 -0
  170. package/dist/types/common/constants.d.ts.map +1 -0
  171. package/dist/types/common/index.d.ts +2 -0
  172. package/dist/types/common/index.d.ts.map +1 -0
  173. package/dist/types/common/testUtil.d.ts +3612 -0
  174. package/dist/types/common/testUtil.d.ts.map +1 -0
  175. package/dist/types/common/types.d.ts +192 -0
  176. package/dist/types/common/types.d.ts.map +1 -0
  177. package/dist/types/index.d.ts +9 -0
  178. package/dist/types/index.d.ts.map +1 -0
  179. package/package.json +161 -0
@@ -0,0 +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
+ };