@voicenter-team/opensips-js 1.0.76 → 1.0.78

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.
package/README.md CHANGED
@@ -23,37 +23,25 @@ const openSIPSJS = new OpenSIPSJS({
23
23
  extraHeaders: [ 'X-Bar: bar' ],
24
24
  pcConfig: {},
25
25
  },
26
+ modules: [ 'audio', 'video', 'msrp' ]
26
27
  })
27
28
  ```
28
29
 
29
- Then you will be able to call next methods on openSIPSJS instance:
30
+ Then you can work with appropriate modules:
31
+ ```javascript
32
+ openSIPSJS.audio
33
+ openSIPSJS.video
34
+ openSIPSJS.msrp
35
+ ```
30
36
 
31
- ### Methods
37
+ # OpensipsJS
38
+ ### OpensipsJS instance methods
32
39
  - `begin(): OpensipsInstance` - start opensips
33
- - `initCall(target: String, addToCurrentRoom: Boolean): void` - call to the target. If addToCurrentRoom is true then the call will be added to the user's current room
34
- - `holdCall(callId: String, automatic?: Boolean): Promise<void>` - put call on hold
35
- - `unholdCall(callId: String): Promise<void>` - unhold a call
36
- - `terminateCall(callId: String): void` - terminate call
37
- - `moveCall(callId: String, roomId: Number): Promise<void>` - Same as callChangeRoom. Move call to the specific room
38
- - `transferCall(callId: String, target: String): void` - transfer call to target
39
- - `mergeCall(roomId: Number): void` - merge calls in specific room. Works only for rooms with 2 calls inside
40
- - `answerCall(callId: String): void` - answer a call
41
- - `mute(): void` - mute ourself
42
- - `unmute(): void` - unmute ourself
43
- - `muteCaller(callId: String): void` - mute caller
44
- - `unmuteCaller(callId: String): void` - unmute caller
45
- - `setMicrophone(deviceId: String): Promise<void>` - set passed device as input device for calls
46
- - `setSpeaker(deviceId: String): Promise<void>` - set passed device as output device for calls
47
- - `setActiveRoom(roomId: Number): Promise<void>` - switch to the room
48
- - `setMicrophoneSensitivity(value: Number): void` - set sensitivity of microphone. Value should be in range from 0 to 1
49
- - `setSpeakerVolume(value: Number): void` - set volume of callers. Value should be in range from 0 to 1
50
- - `setDND(value: Boolean): void` - set the agent "Do not disturb" status
40
+ - `on(event: OpensipsEvent, callback): void` - remove event listener
51
41
  - `subscribe({type: String, listener: function}): void` - subscribe to an event. Available events: `new_call`, `ended`, `progress`, `failed`, `confirmed`
52
42
  - `removeIListener(type: String): void` - remove event listener
53
- - `on(event: OpensipsEvent, callback): void` - remove event listener
54
- - `setMetricsConfig(config: WebrtcMetricsConfigType): void` - set the metric config (used for audio quality indicator)
55
43
 
56
- ### Opensips Events
44
+ ### OpensipsJS events
57
45
 
58
46
  | Event | Callback interface | Description |
59
47
  |----------------|---------|---------------|
@@ -75,20 +63,47 @@ Then you will be able to call next methods on openSIPSJS instance:
75
63
 
76
64
  WebrtcMetricsConfigType
77
65
 
78
- | Parameter | Type |
79
- |----------------|------------------------|
80
- | `refreshEvery` | `number \| undefined` |
81
- | `startAfter` | `number \| undefined` |
82
- | `startAfter` | `number \| undefined` |
83
- | `verbose` | `boolean \| undefined` |
84
- | `pname` | `string \| undefined` |
85
- | `cid` | `string \| undefined` |
86
- | `uid` | `string \| undefined` |
87
- | `record` | `boolean \| undefined` |
88
- | `ticket` | `boolean \| undefined` |
89
-
90
- Also there are next public fields on openSIPSJS instance:
91
- ### Fields
66
+ | Parameter | Type | Default |
67
+ |----------------|-----------|----------|
68
+ | `refreshEvery` | `number` | `undefined` |
69
+ | `startAfter` | `number` | `undefined` |
70
+ | `startAfter` | `number` | `undefined` |
71
+ | `verbose` | `boolean` | `undefined` |
72
+ | `pname` | `string` | `undefined` |
73
+ | `cid` | `string` | `undefined` |
74
+ | `uid` | `string` | `undefined` |
75
+ | `record` | `boolean` | `undefined` |
76
+ | `ticket` | `boolean` | `undefined` |
77
+
78
+ Also, there are next public fields on OpensipsJS instance:
79
+ ### OpensipsJS instance fields
80
+ - `sipDomain: String` - returns sip domain
81
+
82
+ # Audio
83
+
84
+ ### Audio methods
85
+ - `initCall(target: String, addToCurrentRoom: Boolean): void` - call to the target. If addToCurrentRoom is true then the call will be added to the user's current room
86
+ - `holdCall(callId: String, automatic?: Boolean): Promise<void>` - put call on hold
87
+ - `unholdCall(callId: String): Promise<void>` - unhold a call
88
+ - `terminateCall(callId: String): void` - terminate call
89
+ - `moveCall(callId: String, roomId: Number): Promise<void>` - Same as callChangeRoom. Move call to the specific room
90
+ - `transferCall(callId: String, target: String): void` - transfer call to target
91
+ - `mergeCall(roomId: Number): void` - merge calls in specific room. Works only for rooms with 2 calls inside
92
+ - `answerCall(callId: String): void` - answer a call
93
+ - `mute(): void` - mute ourself
94
+ - `unmute(): void` - unmute ourself
95
+ - `muteCaller(callId: String): void` - mute caller
96
+ - `unmuteCaller(callId: String): void` - unmute caller
97
+ - `setMicrophone(deviceId: String): Promise<void>` - set passed device as input device for calls
98
+ - `setSpeaker(deviceId: String): Promise<void>` - set passed device as output device for calls
99
+ - `setActiveRoom(roomId: Number): Promise<void>` - switch to the room
100
+ - `setMicrophoneSensitivity(value: Number): void` - set sensitivity of microphone. Value should be in range from 0 to 1
101
+ - `setSpeakerVolume(value: Number): void` - set volume of callers. Value should be in range from 0 to 1
102
+ - `setDND(value: Boolean): void` - set the agent "Do not disturb" status
103
+ - `setMetricsConfig(config: WebrtcMetricsConfigType): void` - set the metric config (used for audio quality indicator)
104
+
105
+ ### Audio instance fields
106
+ - `sipOptions: Object` - returns sip options
92
107
  - `getActiveRooms: { [key: number]: IRoom }` - returns an object of active rooms where key is room id and value is room data
93
108
  - `sipDomain: String` - returns sip domain
94
109
  - `sipOptions: Object` - returns sip options
@@ -99,3 +114,80 @@ Also there are next public fields on openSIPSJS instance:
99
114
  - `selectedOutputDevice: String` - returns current selected output device id
100
115
  - `isDND: Boolean` - returns if the agent is in "Do not disturb" status
101
116
  - `isMuted: Boolean` - returns if the agent is muted
117
+
118
+ # MSRP
119
+
120
+ ### MSRP methods
121
+ - `initMSRP(target: String, body: String): void` - initialize connection with target contact. Body is the initial message to this target.
122
+ - `sendMSRP(sessionId: String, body: String): Promise<void>` - send message
123
+ - `msrpAnswer(sessionId: String)` - accept MSRP session invitation
124
+ - `messageTerminate(sessionId: String)` - terminate message session
125
+
126
+ ### MSRP instance fields
127
+ - `getActiveMessages: { [key: string]: IMessage }` - returns an object of active message sessions where key is session id and value is message session data.
128
+
129
+
130
+ # Video
131
+
132
+ ### Video methods
133
+ - `joinRoom(roomId: String, displayName: String, mediaConstraints: Object): void` - join conference room
134
+ - `hangup()` - exit room
135
+ - `startVideo()` - turn on camera
136
+ - `stopVideo()` - turn off camera
137
+ - `startAudio()` - mute
138
+ - `stopAudio()` - unmute
139
+ - `startScreenShare()` - start screen sharing
140
+ - `stopScreenShare()` - stop screen sharing
141
+ - `enableScreenShareWhiteboard(enable: boolean, stream: MediaStream)` - enable screen share whiteboard. stream parameter is screen share stream
142
+ - `enableBokehEffectMask(): Promise<MediaStream>` - enable bokeh mask effect
143
+ - `enableBackgroundImgEffectMask(): Promise<MediaStream>` - enable background image mask effect
144
+ - `disableMask(): Promise<MediaStream>` - turn off mask effect. Returns stream without masking
145
+ - `restartMasking(): Promise<void>` - rerun mask effect
146
+ - `setupMaskVisualizationConfig(config: VisualizationConfigType)` - setup mask config
147
+ - `startNoiseFilter()` - start noise filter
148
+ - `stopNoiseFilter()` - stop noise filter
149
+ - `setBitrate(bitrate: number)` - set bitrate for video
150
+ - `enableWhiteboard(mode: 'whiteboard' | 'imageWhiteboard', enable: boolean, base64Image?: string)` - enable whiteboard. if mode is 'imageWhiteboard' then third parameter base64Image is required
151
+ - `setupDrawerOptions(options: KonvaDrawerOptions)` - setup option for drawer
152
+ - `setupScreenShareDrawerOptions(options: KonvaScreenShareDrawerOptions)` - setup option for screen share drawer
153
+
154
+ VisualizationConfigType
155
+
156
+ | Parameter | Type | Default |
157
+ |----------------|------------------------|---------|
158
+ | `foregroundThreshold` | `number` | `0.5` |
159
+ | `maskOpacity` | `number`| `0.5` |
160
+ | `maskBlur` | `number`| `0` |
161
+ | `pixelCellWidth` | `number`| `10` |
162
+ | `backgroundBlur` | `number`| `15` |
163
+ | `edgeBlur` | `number`| `3` |
164
+
165
+ KonvaDrawerOptions
166
+
167
+ | Parameter | Type |
168
+ |----------------|-----------|
169
+ | `container` | `number` |
170
+ | `width` | `number` |
171
+ | `height` | `number` |
172
+
173
+ KonvaScreenShareDrawerOptions
174
+
175
+ | Parameter | Type |
176
+ |----------------|-----------|
177
+ | `strokeWidth` | `number` |
178
+ | `strokeColor` | `string` |
179
+
180
+ ### Video events
181
+
182
+ | Event | Callback interface | Description |
183
+ |----------------|---------|---------------|
184
+ | `member:join` | `(data) => {}` | Emitted when new member is joined |
185
+ | `member:update` | `(data) => {}` | Emitted when member data is changed |
186
+ | `member:hangup` | `(data) => {}` | Emitted when member leaves the conference |
187
+ | `hangup` | `() => {}` | Emitted when we leave the conference |
188
+ | `screenShare:start` | `() => {}` | Emitted when we share a screen |
189
+ | `screenShare:stop` | `() => {}` | Emitted when we stop a screen sharing |
190
+ | `reconnect` | `() => {}` | Emitted when reconnecting |
191
+ | `mediaConstraintsChange` | `() => {}` | Emitted when media constraints change |
192
+ | `metrics:report` | `() => {}` | Emitted on metric report |
193
+ | `metrics:stop` | `() => {}` | Emitted when metrics are stopped |
package/dist/index.d.ts CHANGED
@@ -39,6 +39,145 @@ declare interface AnswerOptionsExtended_2 extends AnswerOptions {
39
39
  mediaConstraints?: MediaConstraints | ExactConstraints_2
40
40
  }
41
41
 
42
+ declare class AudioModule {
43
+ private context;
44
+ private currentActiveRoomIdValue;
45
+ private isAutoAnswer;
46
+ private isCallAddingInProgress;
47
+ private muteWhenJoinEnabled;
48
+ private isDNDEnabled;
49
+ private muted;
50
+ private microphoneInputLevelValue;
51
+ private speakerVolumeValue;
52
+ private activeRooms;
53
+ private activeCalls;
54
+ private extendedCalls;
55
+ private availableMediaDevices;
56
+ private selectedMediaDevices;
57
+ private callStatus;
58
+ private callTime;
59
+ private callMetrics;
60
+ private timeIntervals;
61
+ private metricConfig;
62
+ private activeStreamValue;
63
+ private initialStreamValue;
64
+ private VUMeter;
65
+ constructor(context: OpenSIPSJS);
66
+ get sipOptions(): {
67
+ mediaConstraints: {
68
+ audio: {
69
+ deviceId: {
70
+ exact: string;
71
+ };
72
+ };
73
+ video: boolean;
74
+ };
75
+ session_timers: boolean;
76
+ extraHeaders: [string];
77
+ pcConfig: RTCConfiguration_2;
78
+ };
79
+ get currentActiveRoomId(): number | undefined;
80
+ private set currentActiveRoomId(value);
81
+ get autoAnswer(): boolean;
82
+ get callAddingInProgress(): string | undefined;
83
+ private set callAddingInProgress(value);
84
+ get muteWhenJoin(): boolean;
85
+ get isDND(): boolean;
86
+ get speakerVolume(): number;
87
+ get microphoneInputLevel(): number;
88
+ get getActiveCalls(): {
89
+ [key: string]: ICall;
90
+ };
91
+ get hasActiveCalls(): boolean;
92
+ get getActiveRooms(): {
93
+ [key: number]: IRoom;
94
+ };
95
+ get isMuted(): boolean;
96
+ get getInputDeviceList(): MediaDeviceInfo[];
97
+ get getOutputDeviceList(): MediaDeviceInfo[];
98
+ get getUserMediaConstraints(): {
99
+ audio: {
100
+ deviceId: {
101
+ exact: string;
102
+ };
103
+ };
104
+ video: boolean;
105
+ };
106
+ get selectedInputDevice(): string;
107
+ get selectedOutputDevice(): string;
108
+ get activeStream(): MediaStream;
109
+ private setAvailableMediaDevices;
110
+ updateDeviceList(): Promise<void>;
111
+ private initializeMediaDevices;
112
+ setCallTime(value: ITimeData): void;
113
+ removeCallTime(callId: string): void;
114
+ private setTimeInterval;
115
+ private removeTimeInterval;
116
+ private stopCallTimer;
117
+ private emitVolumeChange;
118
+ setMetricsConfig(config: WebrtcMetricsConfigType): void;
119
+ sendDTMF(callId: string, value: string): void;
120
+ private setIsMuted;
121
+ private processMute;
122
+ mute(): void;
123
+ unmute(): void;
124
+ private processHold;
125
+ holdCall(callId: string, automatic?: boolean): Promise<void>;
126
+ unholdCall(callId: string): Promise<void>;
127
+ private cancelAllOutgoingUnanswered;
128
+ answerCall(callId: string): void;
129
+ moveCall(callId: string, roomId: number): Promise<void>;
130
+ updateCall(value: ICall): void;
131
+ updateRoom(value: IRoomUpdate): void;
132
+ private hasAutoAnswerHeaders;
133
+ private addCall;
134
+ private addCallStatus;
135
+ private updateCallStatus;
136
+ private removeCallStatus;
137
+ private addRoom;
138
+ private getActiveStream;
139
+ setMicrophone(dId: string): Promise<void>;
140
+ private setActiveStream;
141
+ setSpeaker(dId: string): Promise<void>;
142
+ private removeRoom;
143
+ private deleteRoomIfEmpty;
144
+ private checkInitialized;
145
+ private muteReconfigure;
146
+ private roomReconfigure;
147
+ private doConference;
148
+ private processCallerMute;
149
+ muteCaller(callId: string): void;
150
+ unmuteCaller(callId: string): void;
151
+ terminateCall(callId: string): void;
152
+ transferCall(callId: string, target: string): Error;
153
+ mergeCall(roomId: number): void;
154
+ setDND(value: boolean): void;
155
+ private startCallTimer;
156
+ setActiveRoom(roomId: number | undefined): Promise<void>;
157
+ private getNewRoomId;
158
+ private setupCall;
159
+ private removeCall;
160
+ private activeCallListRemove;
161
+ private newRTCSessionCallback;
162
+ setMuteWhenJoin(value: boolean): void;
163
+ setMicrophoneSensitivity(value: number): void;
164
+ setSpeakerVolume(value: number): void;
165
+ setAutoAnswer(value: boolean): void;
166
+ private setSelectedInputDevice;
167
+ private setSelectedOutputDevice;
168
+ private setCallMetrics;
169
+ private removeCallMetrics;
170
+ private getCallQuality;
171
+ private setupVUMeter;
172
+ private stopVUMeter;
173
+ setupStream(): Promise<void>;
174
+ private triggerAddStream;
175
+ initCall(target: string, addToCurrentRoom: boolean): void;
176
+ private processRoomChange;
177
+ }
178
+
179
+ declare type AudioModuleName = typeof MODULES.AUDIO
180
+
42
181
  declare type CallAddingProgressListener = (callId: string | undefined) => void
43
182
 
44
183
  declare interface CallOptionsExtended extends AnswerOptionsExtended {
@@ -147,7 +286,8 @@ declare interface IOpenSIPSJSOptions {
147
286
  session_timers: boolean
148
287
  extraHeaders: [ string ]
149
288
  pcConfig: RTCConfiguration_2
150
- }
289
+ },
290
+ modules: Array<Modules>
151
291
  }
152
292
 
153
293
  declare interface IRoom {
@@ -168,14 +308,62 @@ declare interface ITimeData {
168
308
  formatted: string
169
309
  }
170
310
 
311
+ declare interface JanusOptions extends AnswerOptions {
312
+ eventHandlers?: Partial<JanusSessionEventMap>
313
+ anonymous?: boolean;
314
+ fromUserName?: string;
315
+ fromDisplayName?: string;
316
+ }
317
+
318
+ declare interface JanusSessionEventMap {
319
+ 'peerconnection': PeerConnectionListener;
320
+ 'connecting': ConnectingListener;
321
+ 'sending': SendingListener;
322
+ 'progress': CallListener;
323
+ 'accepted': CallListener;
324
+ 'confirmed': ConfirmedListener;
325
+ 'ended': EndListener;
326
+ 'failed': EndListener;
327
+ 'newDTMF': DTMFListener;
328
+ 'newInfo': InfoListener;
329
+ 'hold': HoldListener;
330
+ 'unhold': HoldListener;
331
+ 'muted': MuteListener;
332
+ 'unmuted': MuteListener;
333
+ 'reinvite': ReInviteListener;
334
+ 'update': UpdateListener;
335
+ 'refer': ReferListener;
336
+ 'replaces': ReferListener;
337
+ 'sdp': SDPListener;
338
+ 'icecandidate': IceCandidateListener;
339
+ 'getusermediafailed': Listener_2;
340
+ 'active' : Listener_2;
341
+ 'msgHistoryUpdate' : Listener_2;
342
+ 'newMessage' : Listener_2;
343
+ 'peerconnection:createofferfailed': Listener_2;
344
+ 'peerconnection:createanswerfailed': Listener_2;
345
+ 'peerconnection:setlocaldescriptionfailed': Listener_2;
346
+ 'peerconnection:setremotedescriptionfailed': Listener_2;
347
+ }
348
+
171
349
  declare type Listener = (event: unknown) => void
172
350
 
173
351
  declare type Listener_2 = (event: unknown) => void
174
352
 
353
+ declare type Listener_3 = (event: unknown) => void
354
+
175
355
  declare type ListenerCallbackFnType<T extends ListenersKeyType> = OpenSIPSEventMap[T]
176
356
 
177
357
  declare type ListenersKeyType = keyof OpenSIPSEventMap
178
358
 
359
+ declare const MODULES: {
360
+ readonly AUDIO: "audio";
361
+ readonly VIDEO: "video";
362
+ readonly MSRP: "msrp";
363
+ };
364
+
365
+ declare type Modules = AudioModuleName | VideoModuleName | MSRPModuleName
366
+
179
367
  declare type MSRPInitializingListener = (sessionId: string | undefined) => void
180
368
 
181
369
  declare class MSRPMessage {
@@ -200,6 +388,34 @@ declare type MSRPMessageEventType = {
200
388
 
201
389
  declare type MSRPMessageListener = (event: MSRPMessageEventType) => void;
202
390
 
391
+ declare class MSRPModule {
392
+ private context;
393
+ private activeMessages;
394
+ private extendedMessages;
395
+ private msrpHistory;
396
+ private isMSRPInitializingValue;
397
+ constructor(context: any);
398
+ get isMSRPInitializing(): boolean;
399
+ get getActiveMessages(): {
400
+ [key: string]: IMessage;
401
+ };
402
+ msrpAnswer(callId: string): void;
403
+ updateMSRPSession(value: IMessage): void;
404
+ private addMMSRPSession;
405
+ private addMSRPMessage;
406
+ messageTerminate(callId: string): void;
407
+ private addMessageSession;
408
+ private triggerMSRPListener;
409
+ private removeMMSRPSession;
410
+ private activeMessageListRemove;
411
+ private newMSRPSessionCallback;
412
+ private setIsMSRPInitializing;
413
+ initMSRP(target: string, body: string, options: any): void;
414
+ sendMSRP(msrpSessionId: string, body: string): void;
415
+ }
416
+
417
+ declare type MSRPModuleName = typeof MODULES.MSRP
418
+
203
419
  declare interface MSRPOptions extends AnswerOptions {
204
420
  eventHandlers?: Partial<MSRPSessionEventMap>
205
421
  anonymous?: boolean;
@@ -348,14 +564,14 @@ declare interface MSRPSessionEventMap_2 {
348
564
  'replaces': ReferListener;
349
565
  'sdp': SDPListener;
350
566
  'icecandidate': IceCandidateListener;
351
- 'getusermediafailed': Listener_2;
352
- 'active' : Listener_2;
353
- 'msgHistoryUpdate' : Listener_2;
354
- 'newMessage' : Listener_2;
355
- 'peerconnection:createofferfailed': Listener_2;
356
- 'peerconnection:createanswerfailed': Listener_2;
357
- 'peerconnection:setlocaldescriptionfailed': Listener_2;
358
- 'peerconnection:setremotedescriptionfailed': Listener_2;
567
+ 'getusermediafailed': Listener_3;
568
+ 'active' : Listener_3;
569
+ 'msgHistoryUpdate' : Listener_3;
570
+ 'newMessage' : Listener_3;
571
+ 'peerconnection:createofferfailed': Listener_3;
572
+ 'peerconnection:createanswerfailed': Listener_3;
573
+ 'peerconnection:setlocaldescriptionfailed': Listener_3;
574
+ 'peerconnection:setremotedescriptionfailed': Listener_3;
359
575
  }
360
576
 
361
577
  declare interface MSRPSessionExtended extends MSRPSession_2 {
@@ -412,179 +628,31 @@ declare interface OpenSIPSEventMap extends UAEventMap {
412
628
 
413
629
  declare class OpenSIPSJS extends UAExtended {
414
630
  private initialized;
415
- private readonly options;
631
+ readonly options: IOpenSIPSJSOptions;
416
632
  private logger;
417
- private VUMeter;
418
- private readonly newRTCSessionEventName;
633
+ readonly newRTCSessionEventName: ListenersKeyType;
419
634
  private readonly registeredEventName;
420
635
  private readonly unregisteredEventName;
421
636
  private readonly disconnectedEventName;
422
637
  private readonly connectedEventName;
423
638
  private readonly newMSRPSessionEventName;
424
- private muted;
425
- private isAutoAnswer;
426
- private isDNDEnabled;
427
- private muteWhenJoinEnabled;
428
- private activeRooms;
429
- private activeCalls;
430
- private extendedCalls;
431
- private activeMessages;
432
- private extendedMessages;
433
- private msrpHistory;
434
- private microphoneInputLevelValue;
435
- private speakerVolumeValue;
436
- private availableMediaDevices;
437
- private selectedMediaDevices;
438
- private callStatus;
439
- private callTime;
440
- private callMetrics;
441
- private timeIntervals;
442
- private metricConfig;
443
- private activeStreamValue;
444
- private initialStreamValue;
445
- private currentActiveRoomIdValue;
446
- private isCallAddingInProgress;
447
639
  private isMSRPInitializingValue;
448
640
  private isReconnecting;
641
+ audio: AudioModule;
642
+ msrp: MSRPModule;
643
+ video: VideoModule;
449
644
  private listenersList;
645
+ private modules;
450
646
  constructor(options: IOpenSIPSJSOptions, logger?: CustomLoggerType);
451
647
  on<T extends ListenersKeyType>(type: T, listener: ListenerCallbackFnType<T>): this;
452
648
  off<T extends ListenersKeyType>(type: T, listener: ListenerCallbackFnType<T>): this;
453
649
  emit(type: ListenersKeyType, args: any): boolean;
454
650
  get sipDomain(): string;
455
- get sipOptions(): {
456
- mediaConstraints: {
457
- audio: {
458
- deviceId: {
459
- exact: string;
460
- };
461
- };
462
- video: boolean;
463
- };
464
- session_timers: boolean;
465
- extraHeaders: [string];
466
- pcConfig: RTCConfiguration_2;
467
- };
468
- get currentActiveRoomId(): number | undefined;
469
- private set currentActiveRoomId(value);
470
- get autoAnswer(): boolean;
471
- get callAddingInProgress(): string | undefined;
472
- private set callAddingInProgress(value);
473
- get isMSRPInitializing(): boolean;
474
- get muteWhenJoin(): boolean;
475
- get isDND(): boolean;
476
- get speakerVolume(): number;
477
- get microphoneInputLevel(): number;
478
- get getActiveCalls(): {
479
- [key: string]: ICall;
480
- };
481
- get hasActiveCalls(): boolean;
482
- get getActiveMessages(): {
483
- [key: string]: IMessage;
484
- };
485
- get getActiveRooms(): {
486
- [key: number]: IRoom;
487
- };
488
- get isMuted(): boolean;
489
- get getInputDeviceList(): MediaDeviceInfo[];
490
- get getOutputDeviceList(): MediaDeviceInfo[];
491
- get getUserMediaConstraints(): {
492
- audio: {
493
- deviceId: {
494
- exact: string;
495
- };
496
- };
497
- video: boolean;
498
- };
499
- get selectedInputDevice(): string;
500
- get selectedOutputDevice(): string;
501
- get activeStream(): MediaStream;
502
- private setAvailableMediaDevices;
503
- updateDeviceList(): Promise<void>;
504
- private initializeMediaDevices;
505
- setCallTime(value: ITimeData): void;
506
- removeCallTime(callId: string): void;
507
- private setTimeInterval;
508
- private removeTimeInterval;
509
- private stopCallTimer;
510
- private emitVolumeChange;
511
- setMetricsConfig(config: WebrtcMetricsConfigType): void;
512
- sendDTMF(callId: string, value: string): void;
513
- private setIsMuted;
514
- private processMute;
515
- mute(): void;
516
- unmute(): void;
517
- private processHold;
518
- holdCall(callId: string, automatic?: boolean): Promise<void>;
519
- unholdCall(callId: string): Promise<void>;
520
- private cancelAllOutgoingUnanswered;
521
- answerCall(callId: string): void;
522
- msrpAnswer(callId: string): void;
523
- moveCall(callId: string, roomId: number): Promise<void>;
524
- updateCall(value: ICall): void;
525
- updateMSRPSession(value: IMessage): void;
526
- updateRoom(value: IRoomUpdate): void;
527
- private hasAutoAnswerHeaders;
528
- private addCall;
529
- private addCallStatus;
530
- private addMMSRPSession;
531
- private addMSRPMessage;
532
- private updateCallStatus;
533
- private removeCallStatus;
534
- private addRoom;
535
- private getActiveStream;
536
- setMicrophone(dId: string): Promise<void>;
537
- private setActiveStream;
538
- setSpeaker(dId: string): Promise<void>;
539
- private removeRoom;
540
- private deleteRoomIfEmpty;
541
- private checkInitialized;
542
- private muteReconfigure;
543
- private roomReconfigure;
544
- private doConference;
545
- private processCallerMute;
546
- muteCaller(callId: string): void;
547
- unmuteCaller(callId: string): void;
548
- terminateCall(callId: string): void;
549
- messageTerminate(callId: string): void;
550
- transferCall(callId: string, target: string): Error;
551
- mergeCall(roomId: number): void;
552
- setDND(value: boolean): void;
553
- private startCallTimer;
554
- setActiveRoom(roomId: number | undefined): Promise<void>;
555
- private getNewRoomId;
651
+ begin(): this;
556
652
  subscribe(type: string, listener: (c: RTCSessionExtended) => void): void;
557
653
  removeIListener(value: string): void;
558
- private setupCall;
559
- private addMessageSession;
560
654
  private triggerListener;
561
- private triggerMSRPListener;
562
- private removeCall;
563
- private removeMMSRPSession;
564
- private activeCallListRemove;
565
- private activeMessageListRemove;
566
- private newRTCSessionCallback;
567
- private newMSRPSessionCallback;
568
655
  private setInitialized;
569
- begin(): this;
570
- setMuteWhenJoin(value: boolean): void;
571
- setMicrophoneSensitivity(value: number): void;
572
- setSpeakerVolume(value: number): void;
573
- setAutoAnswer(value: boolean): void;
574
- private setSelectedInputDevice;
575
- private setSelectedOutputDevice;
576
- private setIsMSRPInitializing;
577
- private setCallMetrics;
578
- private removeCallMetrics;
579
- private getCallQuality;
580
- private setupVUMeter;
581
- private stopVUMeter;
582
- setupStream(): Promise<void>;
583
- private triggerAddStream;
584
- initCall(target: string, addToCurrentRoom: boolean): void;
585
- initMSRP(target: string, body: string, options: any): void;
586
- sendMSRP(msrpSessionId: string, body: string): void;
587
- private processRoomChange;
588
656
  }
589
657
  export default OpenSIPSJS;
590
658
 
@@ -673,19 +741,25 @@ declare class UAExtended extends UAConstructor implements UAExtendedInterface {
673
741
  ist: {};
674
742
  ict: {};
675
743
  };
744
+ _janus_sessions: any[];
676
745
  constructor(configuration: UAConfiguration);
677
746
  call(target: string, options?: CallOptionsExtended): RTCSession;
747
+ joinVideoCall(target: any, options: any): any;
678
748
  /**
679
749
  * new MSRPSession
680
750
  */
681
751
  newMSRPSession(session: MSRPSession, data: object): void;
752
+ newJanusSession(session: any, data: any): void;
682
753
  /**
683
754
  * MSRPSession destroyed.
684
755
  */
685
756
  destroyMSRPSession(session: MSRPSession): void;
757
+ destroyJanusSession(session: any): void;
686
758
  receiveRequest(request: any): void;
687
759
  startMSRP(target: string, options: MSRPOptions): MSRPSession;
760
+ startJanus(target: string, options: JanusOptions): MSRPSession;
688
761
  terminateMSRPSessions(options: object): void;
762
+ terminateJanusSessions(options: any): void;
689
763
  stop(): void;
690
764
  }
691
765
 
@@ -727,6 +801,15 @@ declare interface UAExtendedInterface_2 extends UA {
727
801
 
728
802
  declare type updateRoomListener = (value: RoomChangeEmitType) => void
729
803
 
804
+ declare class VideoModule {
805
+ private context;
806
+ constructor(context: any);
807
+ get sipOptions(): any;
808
+ initCall(target: string): void;
809
+ }
810
+
811
+ declare type VideoModuleName = typeof MODULES.VIDEO
812
+
730
813
  declare interface WebrtcMetricsConfigType {
731
814
  refreshEvery?: number
732
815
  startAfter?: number