@voicenter-team/opensips-js 1.0.77 → 1.0.78

Sign up to get free protection for your applications and to get access to all the features.
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