@voicenter-team/opensips-js 1.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. package/README.md +75 -0
  2. package/build/enum/call.event.listener.type.d.ts +7 -0
  3. package/build/enum/call.event.listener.type.js +10 -0
  4. package/build/enum/metric.keys.to.include.d.ts +2 -0
  5. package/build/enum/metric.keys.to.include.js +4 -0
  6. package/build/helpers/UA/index.d.ts +6 -0
  7. package/build/helpers/UA/index.js +9 -0
  8. package/build/helpers/audio.helper.d.ts +9 -0
  9. package/build/helpers/audio.helper.js +60 -0
  10. package/build/helpers/filter.helper.d.ts +2 -0
  11. package/build/helpers/filter.helper.js +14 -0
  12. package/build/helpers/time.helper.d.ts +16 -0
  13. package/build/helpers/time.helper.js +28 -0
  14. package/build/helpers/volume.helper.d.ts +2 -0
  15. package/build/helpers/volume.helper.js +76 -0
  16. package/build/helpers/webrtcmetrics/collector.d.ts +32 -0
  17. package/build/helpers/webrtcmetrics/collector.js +282 -0
  18. package/build/helpers/webrtcmetrics/engine.d.ts +20 -0
  19. package/build/helpers/webrtcmetrics/engine.js +164 -0
  20. package/build/helpers/webrtcmetrics/exporter.d.ts +116 -0
  21. package/build/helpers/webrtcmetrics/exporter.js +528 -0
  22. package/build/helpers/webrtcmetrics/extractor.d.ts +1 -0
  23. package/build/helpers/webrtcmetrics/extractor.js +976 -0
  24. package/build/helpers/webrtcmetrics/index.d.ts +63 -0
  25. package/build/helpers/webrtcmetrics/index.js +93 -0
  26. package/build/helpers/webrtcmetrics/metrics.d.ts +2 -0
  27. package/build/helpers/webrtcmetrics/metrics.js +8 -0
  28. package/build/helpers/webrtcmetrics/probe.d.ts +76 -0
  29. package/build/helpers/webrtcmetrics/probe.js +153 -0
  30. package/build/helpers/webrtcmetrics/utils/config.d.ts +12 -0
  31. package/build/helpers/webrtcmetrics/utils/config.js +28 -0
  32. package/build/helpers/webrtcmetrics/utils/helper.d.ts +13 -0
  33. package/build/helpers/webrtcmetrics/utils/helper.js +134 -0
  34. package/build/helpers/webrtcmetrics/utils/log.d.ts +7 -0
  35. package/build/helpers/webrtcmetrics/utils/log.js +71 -0
  36. package/build/helpers/webrtcmetrics/utils/models.d.ts +309 -0
  37. package/build/helpers/webrtcmetrics/utils/models.js +298 -0
  38. package/build/helpers/webrtcmetrics/utils/score.d.ts +4 -0
  39. package/build/helpers/webrtcmetrics/utils/score.js +235 -0
  40. package/build/helpers/webrtcmetrics/utils/shortUUId.d.ts +1 -0
  41. package/build/helpers/webrtcmetrics/utils/shortUUId.js +7 -0
  42. package/build/index.d.ts +170 -0
  43. package/build/index.js +849 -0
  44. package/package.json +61 -0
  45. package/src/types/declarations.d.ts +6 -0
  46. package/src/types/generic.d.ts +1 -0
  47. package/src/types/listeners.d.ts +42 -0
  48. package/src/types/rtc.d.ts +133 -0
  49. package/src/types/webrtcmetrics.d.ts +64 -0
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeMOSForOutgoing = exports.computeMOS = exports.computeEModelMOSForOutgoing = exports.computeEModelMOS = void 0;
4
+ const models_1 = require("./models");
5
+ const helper_1 = require("./helper");
6
+ const computeScore = (r) => {
7
+ if (r < 0) {
8
+ return 1;
9
+ }
10
+ if (r > 100) {
11
+ return 4.5;
12
+ }
13
+ return 1 + 0.035 * r + (7.0 / 1000000) * r * (r - 60) * (100 - r);
14
+ };
15
+ const computeEModelMOS = (report, kind = models_1.VALUE.AUDIO, previousReport, beforeLastReport, ssrc) => {
16
+ const currentSSRCReport = (0, helper_1.getSSRCDataFromBunch)(ssrc, report, models_1.DIRECTION.INBOUND);
17
+ const previousSSRCReport = (0, helper_1.getSSRCDataFromBunch)(ssrc, previousReport, models_1.DIRECTION.INBOUND);
18
+ const beforeLastSSRCReport = (0, helper_1.getSSRCDataFromBunch)(ssrc, beforeLastReport, models_1.DIRECTION.INBOUND);
19
+ const rttValues = [];
20
+ const jitterValues = [];
21
+ const packetsLoss = currentSSRCReport[kind].percent_packets_lost_in;
22
+ const currentJitter = currentSSRCReport[kind].delta_jitter_ms_in;
23
+ const lastJitter = (previousSSRCReport && previousSSRCReport[kind].delta_jitter_ms_in) || null;
24
+ const beforeLastJitter = (beforeLastSSRCReport && beforeLastSSRCReport[kind].delta_jitter_ms_in) ||
25
+ null;
26
+ const currentRTTConnectivity = report.data.delta_rtt_connectivity_ms;
27
+ const lastRTTConnectivity = (previousReport && previousReport.data.delta_rtt_connectivity_ms) ||
28
+ null;
29
+ const beforeLastRTTConnectivity = (beforeLastReport && beforeLastReport.data.delta_rtt_connectivity_ms) ||
30
+ null;
31
+ if (currentRTTConnectivity) {
32
+ rttValues.push(currentRTTConnectivity);
33
+ }
34
+ if (lastRTTConnectivity) {
35
+ rttValues.push(lastRTTConnectivity);
36
+ }
37
+ if (beforeLastRTTConnectivity) {
38
+ rttValues.push(beforeLastRTTConnectivity);
39
+ }
40
+ // Put Jitter values
41
+ if (currentJitter) {
42
+ jitterValues.push(currentJitter);
43
+ }
44
+ if (previousReport && lastJitter) {
45
+ jitterValues.push(lastJitter);
46
+ }
47
+ if (beforeLastReport && beforeLastJitter) {
48
+ jitterValues.push(beforeLastJitter);
49
+ }
50
+ const rtt = rttValues.length > 0 ? (0, helper_1.average)(rttValues) : 100; // Default value if no value;
51
+ const jitter = jitterValues.length > 0 ? (0, helper_1.average)(jitterValues) : 10; // Default value if no value;
52
+ const rx = 93.2 - packetsLoss;
53
+ const ry = 0.18 * rx * rx - 27.9 * rx + 1126.62;
54
+ const d = (rtt + jitter) / 2;
55
+ const h = d - 177.3 < 0 ? 0 : 1;
56
+ const id = 0.024 * d + 0.11 * (d - 177.3) * h;
57
+ const r = ry - id;
58
+ return computeScore(r);
59
+ };
60
+ exports.computeEModelMOS = computeEModelMOS;
61
+ const computeEModelMOSForOutgoing = (report, kind = models_1.VALUE.AUDIO, previousReport, beforeLastReport, ssrc) => {
62
+ const currentSSRCReport = (0, helper_1.getSSRCDataFromBunch)(ssrc, report, models_1.DIRECTION.OUTBOUND);
63
+ const previousSSRCReport = (0, helper_1.getSSRCDataFromBunch)(ssrc, previousReport, models_1.DIRECTION.OUTBOUND);
64
+ const beforeLastSSRCReport = (0, helper_1.getSSRCDataFromBunch)(ssrc, beforeLastReport, models_1.DIRECTION.OUTBOUND);
65
+ const rttValues = [];
66
+ const jitterValues = [];
67
+ const packetsLoss = currentSSRCReport[kind].percent_packets_lost_out;
68
+ const currentRtt = currentSSRCReport[kind].delta_rtt_ms_out;
69
+ const lastRtt = (previousSSRCReport && previousSSRCReport[kind].delta_rtt_ms_out) || null;
70
+ const beforeLastRtt = (beforeLastSSRCReport && beforeLastSSRCReport[kind].delta_rtt_ms_out) ||
71
+ null;
72
+ const currentJitter = currentSSRCReport[kind].delta_jitter_ms_out;
73
+ const lastJitter = (previousSSRCReport && previousSSRCReport[kind].delta_jitter_ms_out) || null;
74
+ const beforeLastJitter = (beforeLastSSRCReport && beforeLastSSRCReport[kind].delta_jitter_ms_out) ||
75
+ null;
76
+ const currentRTTConnectivity = report.data.delta_rtt_connectivity_ms;
77
+ const lastRTTConnectivity = (previousReport && previousReport.data.delta_rtt_connectivity_ms) ||
78
+ null;
79
+ const beforeLastRTTConnectivity = (beforeLastReport && beforeLastReport.data.delta_rtt_connectivity_ms) ||
80
+ null;
81
+ // Put RTT values when exist
82
+ if (currentRtt) {
83
+ rttValues.push(currentRtt);
84
+ }
85
+ else if (currentRTTConnectivity) {
86
+ rttValues.push(currentRTTConnectivity);
87
+ }
88
+ if (lastRtt) {
89
+ rttValues.push(lastRtt);
90
+ }
91
+ else if (lastRTTConnectivity) {
92
+ rttValues.push(lastRTTConnectivity);
93
+ }
94
+ if (beforeLastRtt) {
95
+ rttValues.push(beforeLastRtt);
96
+ }
97
+ else if (beforeLastRTTConnectivity) {
98
+ rttValues.push(beforeLastRTTConnectivity);
99
+ }
100
+ // Put Jitter values
101
+ if (currentJitter) {
102
+ jitterValues.push(currentJitter);
103
+ }
104
+ if (previousReport && lastJitter) {
105
+ jitterValues.push(lastJitter);
106
+ }
107
+ if (beforeLastReport && beforeLastJitter) {
108
+ jitterValues.push(beforeLastJitter);
109
+ }
110
+ const rtt = rttValues.length > 0 ? (0, helper_1.average)(rttValues) : 100; // Default value if no value;
111
+ const jitter = jitterValues.length > 0 ? (0, helper_1.average)(jitterValues) : 10; // Default value if no value;
112
+ const rx = 93.2 - packetsLoss;
113
+ const ry = 0.18 * rx * rx - 27.9 * rx + 1126.62;
114
+ const d = (rtt + jitter) / 2;
115
+ const h = d - 177.3 < 0 ? 0 : 1;
116
+ const id = 0.024 * d + 0.11 * (d - 177.3) * h;
117
+ const r = ry - id;
118
+ return computeScore(r);
119
+ };
120
+ exports.computeEModelMOSForOutgoing = computeEModelMOSForOutgoing;
121
+ const computeMOS = (report, kind = models_1.VALUE.AUDIO, previousReport, beforeLastReport, ssrc) => {
122
+ const currentSSRCReport = (0, helper_1.getSSRCDataFromBunch)(ssrc, report, models_1.DIRECTION.INBOUND);
123
+ const previousSSRCReport = (0, helper_1.getSSRCDataFromBunch)(ssrc, previousReport, models_1.DIRECTION.INBOUND);
124
+ const beforeLastSSRCReport = (0, helper_1.getSSRCDataFromBunch)(ssrc, beforeLastReport, models_1.DIRECTION.INBOUND);
125
+ const rttValues = [];
126
+ const jitterValues = [];
127
+ const packetsLoss = currentSSRCReport[kind].percent_packets_lost_in / 100;
128
+ const currentJitter = currentSSRCReport[kind].delta_jitter_ms_in;
129
+ const lastJitter = (previousSSRCReport && previousSSRCReport[kind].delta_jitter_ms_in) || null;
130
+ const beforeLastJitter = (beforeLastSSRCReport && beforeLastSSRCReport[kind].delta_jitter_ms_in) ||
131
+ null;
132
+ const currentRTTConnectivity = report.data.delta_rtt_connectivity_ms;
133
+ const lastRTTConnectivity = (previousReport && previousReport.data.delta_rtt_connectivity_ms) ||
134
+ null;
135
+ const beforeLastRTTConnectivity = (beforeLastReport && beforeLastReport.data.delta_rtt_connectivity_ms) ||
136
+ null;
137
+ // Put RTT values when exist
138
+ if (currentRTTConnectivity) {
139
+ rttValues.push(currentRTTConnectivity);
140
+ }
141
+ if (lastRTTConnectivity) {
142
+ rttValues.push(lastRTTConnectivity);
143
+ }
144
+ if (beforeLastRTTConnectivity) {
145
+ rttValues.push(beforeLastRTTConnectivity);
146
+ }
147
+ // Put Jitter values
148
+ if (currentJitter) {
149
+ jitterValues.push(currentJitter);
150
+ }
151
+ if (previousSSRCReport && lastJitter) {
152
+ jitterValues.push(lastJitter);
153
+ }
154
+ if (beforeLastSSRCReport && beforeLastJitter) {
155
+ jitterValues.push(beforeLastJitter);
156
+ }
157
+ const rtt = rttValues.length > 0 ? (0, helper_1.average)(rttValues) : 100; // Default value if no value;
158
+ const jitter = jitterValues.length > 0 ? (0, helper_1.average)(jitterValues) : 10; // Default value if no value;
159
+ const codecFittingParameterA = 0;
160
+ const codecFittingParameterB = 19.8;
161
+ const codecFittingParameterC = 29.7;
162
+ const ld = 30;
163
+ const d = (rtt + jitter) / 2 + ld;
164
+ const h = d - 177.3 < 0 ? 0 : 1;
165
+ const id = 0.024 * d + 0.11 * (d - 177.3) * h;
166
+ const ie = codecFittingParameterA +
167
+ codecFittingParameterB * Math.log(1 + codecFittingParameterC * packetsLoss);
168
+ const r = 93.2 - (ie + id);
169
+ return computeScore(r);
170
+ };
171
+ exports.computeMOS = computeMOS;
172
+ const computeMOSForOutgoing = (report, kind = models_1.VALUE.AUDIO, previousReport, beforeLastReport, ssrc) => {
173
+ const currentSSRCReport = (0, helper_1.getSSRCDataFromBunch)(ssrc, report, models_1.DIRECTION.OUTBOUND);
174
+ const previousSSRCReport = (0, helper_1.getSSRCDataFromBunch)(ssrc, previousReport, models_1.DIRECTION.OUTBOUND);
175
+ const beforeLastSSRCReport = (0, helper_1.getSSRCDataFromBunch)(ssrc, beforeLastReport, models_1.DIRECTION.OUTBOUND);
176
+ const rttValues = [];
177
+ const jitterValues = [];
178
+ const packetsLoss = currentSSRCReport[kind].percent_packets_lost_out / 100;
179
+ const currentRtt = currentSSRCReport[kind].delta_rtt_ms_out;
180
+ const lastRtt = (previousSSRCReport && previousSSRCReport[kind].delta_rtt_ms_out) || null;
181
+ const beforeLastRtt = (beforeLastSSRCReport && beforeLastSSRCReport[kind].delta_rtt_ms_out) ||
182
+ null;
183
+ const currentJitter = currentSSRCReport[kind].delta_jitter_ms_out;
184
+ const lastJitter = (previousSSRCReport && previousSSRCReport[kind].delta_jitter_ms_out) || null;
185
+ const beforeLastJitter = (beforeLastSSRCReport && beforeLastSSRCReport[kind].delta_jitter_ms_out) ||
186
+ null;
187
+ const currentRTTConnectivity = report.data.delta_rtt_connectivity_ms;
188
+ const lastRTTConnectivity = (previousReport && previousReport.data.delta_rtt_connectivity_ms) ||
189
+ null;
190
+ const beforeLastRTTConnectivity = (beforeLastReport && beforeLastReport.data.delta_rtt_connectivity_ms) ||
191
+ null;
192
+ // Put RTT values when exist
193
+ if (currentRtt) {
194
+ rttValues.push(currentRtt);
195
+ }
196
+ else if (currentRTTConnectivity) {
197
+ rttValues.push(currentRTTConnectivity);
198
+ }
199
+ if (lastRtt) {
200
+ rttValues.push(lastRtt);
201
+ }
202
+ else if (lastRTTConnectivity) {
203
+ rttValues.push(lastRTTConnectivity);
204
+ }
205
+ if (beforeLastRtt) {
206
+ rttValues.push(beforeLastRtt);
207
+ }
208
+ else if (beforeLastRTTConnectivity) {
209
+ rttValues.push(beforeLastRTTConnectivity);
210
+ }
211
+ // Put Jitter values
212
+ if (currentJitter) {
213
+ jitterValues.push(currentJitter);
214
+ }
215
+ if (previousSSRCReport && lastJitter) {
216
+ jitterValues.push(lastJitter);
217
+ }
218
+ if (beforeLastSSRCReport && beforeLastJitter) {
219
+ jitterValues.push(beforeLastJitter);
220
+ }
221
+ const rtt = rttValues.length > 0 ? (0, helper_1.average)(rttValues) : 100; // Default value if no value;
222
+ const jitter = jitterValues.length > 0 ? (0, helper_1.average)(jitterValues) : 10; // Default value if no value;
223
+ const codecFittingParameterA = 0;
224
+ const codecFittingParameterB = 19.8;
225
+ const codecFittingParameterC = 29.7;
226
+ const ld = 30;
227
+ const d = (rtt + jitter) / 2 + ld;
228
+ const h = d - 177.3 < 0 ? 0 : 1;
229
+ const id = 0.024 * d + 0.11 * (d - 177.3) * h;
230
+ const ie = codecFittingParameterA +
231
+ codecFittingParameterB * Math.log(1 + codecFittingParameterC * packetsLoss);
232
+ const r = 93.2 - (ie + id);
233
+ return computeScore(r);
234
+ };
235
+ exports.computeMOSForOutgoing = computeMOSForOutgoing;
@@ -0,0 +1 @@
1
+ export default function shortUUID(): string;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function shortUUID() {
4
+ const uuid = +new Date();
5
+ return `${uuid}`;
6
+ }
7
+ exports.default = shortUUID;
@@ -0,0 +1,170 @@
1
+ import JsSIP from 'jssip';
2
+ import UA from './helpers/UA';
3
+ import { TempTimeData, ITimeData } from './helpers/time.helper';
4
+ import { WebrtcMetricsConfigType, MediaDeviceType } from '@/types/webrtcmetrics';
5
+ import { ListenersKeyType, ListenerCallbackFnType } from '@/types/listeners';
6
+ import { RTCSessionExtended, ICall, IntervalType, ListenerEventType, IRoom, IDoCallParam, ICallStatus, IRoomUpdate, IOpenSIPSJSOptions } from '@/types/rtc';
7
+ import { SendMessageOptions } from 'jssip/lib/Message';
8
+ export interface InnerState {
9
+ isMuted: boolean;
10
+ muteWhenJoin: boolean;
11
+ isDND: boolean;
12
+ activeCalls: {
13
+ [key: string]: ICall;
14
+ };
15
+ activeRooms: {
16
+ [key: number]: IRoom;
17
+ };
18
+ callTime: {
19
+ [key: string]: TempTimeData;
20
+ };
21
+ callStatus: {
22
+ [key: string]: ICallStatus;
23
+ };
24
+ timeIntervals: {
25
+ [key: string]: IntervalType;
26
+ };
27
+ callMetrics: {
28
+ [key: string]: any;
29
+ };
30
+ availableMediaDevices: Array<MediaDeviceInfo>;
31
+ selectedMediaDevices: {
32
+ [key in MediaDeviceType]: string;
33
+ };
34
+ microphoneInputLevel: number;
35
+ speakerVolume: number;
36
+ originalStream: MediaStream | null;
37
+ listeners: {
38
+ [key: string]: Array<(call: RTCSessionExtended, event: ListenerEventType | undefined) => void>;
39
+ };
40
+ metricConfig: WebrtcMetricsConfigType;
41
+ }
42
+ declare class OpenSIPSJS extends UA {
43
+ private initialized;
44
+ private readonly options;
45
+ private readonly newRTCSessionEventName;
46
+ private readonly activeCalls;
47
+ private _currentActiveRoomId;
48
+ private _callAddingInProgress;
49
+ private state;
50
+ constructor(options: IOpenSIPSJSOptions);
51
+ on<T extends ListenersKeyType>(type: T, listener: ListenerCallbackFnType<T>): this;
52
+ off<T extends ListenersKeyType>(type: T, listener: ListenerCallbackFnType<T>): this;
53
+ emit(type: ListenersKeyType, args: any): boolean;
54
+ get sipDomain(): string;
55
+ get sipOptions(): {
56
+ mediaConstraints: {
57
+ audio: {
58
+ deviceId: {
59
+ exact: string;
60
+ };
61
+ };
62
+ video: boolean;
63
+ };
64
+ session_timers: boolean;
65
+ extraHeaders: [string];
66
+ pcConfig: import("@/types/rtc").RTCConfiguration;
67
+ };
68
+ get currentActiveRoomId(): number | undefined;
69
+ private set currentActiveRoomId(value);
70
+ get callAddingInProgress(): string | undefined;
71
+ private set callAddingInProgress(value);
72
+ get muteWhenJoin(): boolean;
73
+ set muteWhenJoin(value: boolean);
74
+ get isDND(): boolean;
75
+ set isDND(value: boolean);
76
+ get speakerVolume(): number;
77
+ set speakerVolume(value: number);
78
+ get microphoneInputLevel(): number;
79
+ set microphoneInputLevel(value: number);
80
+ get getActiveCalls(): {
81
+ [key: string]: ICall;
82
+ };
83
+ get getActiveRooms(): {
84
+ [key: number]: IRoom;
85
+ };
86
+ get isMuted(): boolean;
87
+ set isMuted(value: boolean);
88
+ get getInputDeviceList(): MediaDeviceInfo[];
89
+ get getOutputDeviceList(): MediaDeviceInfo[];
90
+ get getUserMediaConstraints(): {
91
+ audio: {
92
+ deviceId: {
93
+ exact: string;
94
+ };
95
+ };
96
+ video: boolean;
97
+ };
98
+ get getInputDefaultDevice(): MediaDeviceInfo | undefined;
99
+ get getOutputDefaultDevice(): MediaDeviceInfo | undefined;
100
+ get selectedInputDevice(): string;
101
+ set selectedInputDevice(deviceId: string);
102
+ get selectedOutputDevice(): string;
103
+ set selectedOutputDevice(deviceId: string);
104
+ get originalStream(): MediaStream | null;
105
+ private setAvailableMediaDevices;
106
+ updateDeviceList(): Promise<void>;
107
+ setMediaDevices(setDefaults?: boolean): Promise<void>;
108
+ setCallTime(value: ITimeData): void;
109
+ removeCallTime(callId: string): void;
110
+ private setTimeInterval;
111
+ private removeTimeInterval;
112
+ private _stopCallTimer;
113
+ setMetricsConfig(config: WebrtcMetricsConfigType): void;
114
+ sendDTMF(callId: string, value: string): void;
115
+ doMute(value: boolean): void;
116
+ sendMessage(target: string | JsSIP.URI, body: string, options?: SendMessageOptions): import("jssip/lib/Message").Message;
117
+ doCallHold({ callId, toHold, automatic }: {
118
+ callId: string;
119
+ toHold: boolean;
120
+ automatic?: boolean;
121
+ }): void;
122
+ private _cancelAllOutgoingUnanswered;
123
+ callAnswer(callId: string): void;
124
+ callMove(callId: string, roomId: number): Promise<void>;
125
+ updateCall(value: ICall): void;
126
+ updateRoom(value: IRoomUpdate): void;
127
+ private _addCall;
128
+ private _addCallStatus;
129
+ private _updateCallStatus;
130
+ private _removeCallStatus;
131
+ private _addRoom;
132
+ setMicrophone(dId: string): Promise<void>;
133
+ private _setOriginalStream;
134
+ setSpeaker(dId: string): Promise<void>;
135
+ private removeRoom;
136
+ private deleteRoomIfEmpty;
137
+ private checkInitialized;
138
+ private muteReconfigure;
139
+ private roomReconfigure;
140
+ private _doConference;
141
+ _muteReconfigure(call: ICall): void;
142
+ muteCaller(callId: string, value: boolean): void;
143
+ callTerminate(callId: string): void;
144
+ callTransfer(callId: string, target: string): void;
145
+ callMerge(roomId: number): void;
146
+ setDND(value: boolean): void;
147
+ private _startCallTimer;
148
+ setCurrentActiveRoomId(roomId: number | undefined): Promise<void>;
149
+ private getNewRoomId;
150
+ subscribe(type: string, listener: (c: RTCSessionExtended) => void): void;
151
+ removeIListener(value: string): void;
152
+ private addCall;
153
+ private _triggerListener;
154
+ private _removeCall;
155
+ private _activeCallListRemove;
156
+ private newRTCSessionCallback;
157
+ private setInitialized;
158
+ start(): this;
159
+ setMuteWhenJoin(value: boolean): void;
160
+ private _setCallMetrics;
161
+ private _removeCallMetrics;
162
+ private _getCallQuality;
163
+ private _triggerAddStream;
164
+ doCall({ target, addToCurrentRoom }: IDoCallParam): void;
165
+ callChangeRoom({ callId, roomId }: {
166
+ callId: string;
167
+ roomId: number;
168
+ }): Promise<void>;
169
+ }
170
+ export default OpenSIPSJS;