opensips-js 0.1.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.
@@ -0,0 +1,1044 @@
1
+ import { AnswerOptions } from 'jssip/lib/RTCSession';
2
+ import { CallListener } from 'jssip/lib/RTCSession';
3
+ import { ConfirmedListener } from 'jssip/lib/RTCSession';
4
+ import { ConnectingListener } from 'jssip/lib/RTCSession';
5
+ import { DTMFListener } from 'jssip/lib/RTCSession';
6
+ import { EndEvent } from 'jssip/lib/RTCSession';
7
+ import { EndListener } from 'jssip/lib/RTCSession';
8
+ import { EventEmitter } from 'events';
9
+ import { ExtraContactParams } from 'jssip/lib/Registrator';
10
+ import { HoldListener } from 'jssip/lib/RTCSession';
11
+ import { IceCandidateListener } from 'jssip/lib/RTCSession';
12
+ import { IncomingAckEvent } from 'jssip/lib/RTCSession';
13
+ import { IncomingEvent } from 'jssip/lib/RTCSession';
14
+ import { IncomingRequest } from 'jssip/lib/SIPMessage';
15
+ import { InfoListener } from 'jssip/lib/RTCSession';
16
+ import { MediaConstraints } from 'jssip/lib/RTCSession';
17
+ import { MuteListener } from 'jssip/lib/RTCSession';
18
+ import { OnHoldResult } from 'jssip/lib/RTCSession';
19
+ import { Originator } from 'jssip/lib/RTCSession';
20
+ import { OutgoingAckEvent } from 'jssip/lib/RTCSession';
21
+ import { OutgoingEvent } from 'jssip/lib/RTCSession';
22
+ import { PeerConnectionListener } from 'jssip/lib/RTCSession';
23
+ import { ReferListener } from 'jssip/lib/RTCSession';
24
+ import { ReInviteListener } from 'jssip/lib/RTCSession';
25
+ import { RTCPeerConnectionDeprecated } from 'jssip/lib/RTCSession';
26
+ import { RTCSession } from 'jssip/lib/RTCSession';
27
+ import { RTCSessionEventMap } from 'jssip/lib/RTCSession';
28
+ import { SDPListener } from 'jssip/lib/RTCSession';
29
+ import { SendingListener } from 'jssip/lib/RTCSession';
30
+ import { SessionDirection } from 'jssip/lib/RTCSession';
31
+ import { UA } from 'jssip';
32
+ import { UAConfiguration } from 'jssip/lib/UA';
33
+ import { UAEventMap } from 'jssip/lib/UA';
34
+ import { UpdateListener } from 'jssip/lib/RTCSession';
35
+
36
+ declare type ActiveRoomListener = (event: number | undefined) => void
37
+
38
+ declare type addRoomListener = (value: RoomChangeEmitType) => void
39
+
40
+ declare interface AnswerOptionsExtended extends AnswerOptions {
41
+ mediaConstraints?: MediaConstraints | ExactConstraints
42
+ }
43
+
44
+ declare interface AnswerOptionsExtended_2 extends AnswerOptions {
45
+ mediaConstraints?: MediaConstraints | ExactConstraints_2
46
+ }
47
+
48
+ declare class AudioModule {
49
+ private context;
50
+ private currentActiveRoomIdValue;
51
+ private isAutoAnswer;
52
+ private isCallAddingInProgress;
53
+ private muteWhenJoinEnabled;
54
+ private isDNDEnabled;
55
+ private isCallWaitingEnabled;
56
+ private muted;
57
+ private microphoneInputLevelValue;
58
+ private speakerVolumeValue;
59
+ private activeRooms;
60
+ private activeCalls;
61
+ private extendedCalls;
62
+ private availableMediaDevices;
63
+ private selectedMediaDevices;
64
+ private callStatus;
65
+ private callTime;
66
+ private callMetrics;
67
+ private timeIntervals;
68
+ private metricConfig;
69
+ private activeStreamValue;
70
+ private initialStreamValue;
71
+ private VUMeter;
72
+ constructor(context: OpenSIPSJS);
73
+ get sipOptions(): {
74
+ mediaConstraints: {
75
+ video: boolean;
76
+ audio: boolean;
77
+ } | {
78
+ audio: {
79
+ deviceId: {
80
+ exact: string;
81
+ };
82
+ };
83
+ video: boolean;
84
+ };
85
+ session_timers: boolean;
86
+ extraHeaders: [string];
87
+ pcConfig: RTCConfiguration_2;
88
+ };
89
+ get currentActiveRoomId(): number | undefined;
90
+ private set currentActiveRoomId(value);
91
+ get autoAnswer(): boolean;
92
+ get callAddingInProgress(): string | undefined;
93
+ private set callAddingInProgress(value);
94
+ get muteWhenJoin(): boolean;
95
+ get isDND(): boolean;
96
+ /**
97
+ * Gets the current state of the call waiting feature.
98
+ *
99
+ * When call waiting is enabled (true), incoming calls will be allowed even when
100
+ * other calls are active.
101
+ *
102
+ * When call waiting is disabled (false) and there are already active calls,
103
+ * any new incoming calls will be automatically rejected with a "busy" status.
104
+ *
105
+ * @returns {boolean} True if call waiting is enabled, false if disabled
106
+ */
107
+ get isCallWaiting(): boolean;
108
+ get speakerVolume(): number;
109
+ get microphoneInputLevel(): number;
110
+ get getActiveCalls(): {
111
+ [key: string]: ICall;
112
+ };
113
+ get hasActiveCalls(): boolean;
114
+ get hasActiveAnsweredCalls(): boolean;
115
+ get getActiveRooms(): {
116
+ [key: number]: IRoom;
117
+ };
118
+ get isMuted(): boolean;
119
+ get getInputDeviceList(): MediaDeviceInfo[];
120
+ get getOutputDeviceList(): MediaDeviceInfo[];
121
+ get getUserMediaConstraints(): {
122
+ video: boolean;
123
+ audio: boolean;
124
+ } | {
125
+ audio: {
126
+ deviceId: {
127
+ exact: string;
128
+ };
129
+ };
130
+ video: boolean;
131
+ };
132
+ get selectedInputDevice(): string;
133
+ get selectedOutputDevice(): string;
134
+ get activeStream(): MediaStream;
135
+ private setAvailableMediaDevices;
136
+ updateDeviceList(): Promise<void>;
137
+ private initializeMediaDevices;
138
+ setCallTime(value: ITimeData): void;
139
+ removeCallTime(callId: string): void;
140
+ private setTimeInterval;
141
+ private removeTimeInterval;
142
+ private stopCallTimer;
143
+ private emitVolumeChange;
144
+ setMetricsConfig(config: WebrtcMetricsConfigType): void;
145
+ sendDTMF(callId: string, value: string): void;
146
+ private setIsMuted;
147
+ private processMute;
148
+ mute(): void;
149
+ unmute(): void;
150
+ private processHold;
151
+ holdCall(callId: string, automatic?: boolean): Promise<void>;
152
+ unholdCall(callId: string): Promise<void>;
153
+ private cancelAllOutgoingUnanswered;
154
+ answerCall(callId: string): void;
155
+ moveCall(callId: string, roomId: number): Promise<void>;
156
+ updateCall(value: ICall): void;
157
+ updateRoom(value: IRoomUpdate): void;
158
+ private hasAutoAnswerHeaders;
159
+ private addCall;
160
+ private addCallStatus;
161
+ private updateCallStatus;
162
+ private removeCallStatus;
163
+ private addRoom;
164
+ private getActiveStream;
165
+ setMicrophone(dId: string): Promise<void>;
166
+ private setActiveStream;
167
+ setSpeaker(dId: string): Promise<void>;
168
+ private removeRoom;
169
+ private deleteRoomIfEmpty;
170
+ private checkInitialized;
171
+ private muteReconfigure;
172
+ private roomReconfigure;
173
+ private doConference;
174
+ private processCallerMute;
175
+ muteCaller(callId: string): void;
176
+ unmuteCaller(callId: string): void;
177
+ terminateCall(callId: string): void;
178
+ transferCall(callId: string, target: string): Error;
179
+ mergeCall(roomId: number): void;
180
+ mergeCallByIds(firstCallId: string, secondCallId: string): void;
181
+ setDND(value: boolean): void;
182
+ /**
183
+ * Sets the call waiting feature state.
184
+ *
185
+ * When call waiting is disabled (false) and there are already active calls,
186
+ * any new incoming calls will be automatically rejected with a "busy" status.
187
+ *
188
+ * When call waiting is enabled (true), incoming calls will be allowed even when
189
+ * other calls are active.
190
+ *
191
+ * This setting is used in the shouldTerminateNewSession method to determine whether
192
+ * to automatically terminate new incoming sessions when the user is already on a call.
193
+ *
194
+ * @param {boolean} value - True to enable call waiting, false to disable
195
+ */
196
+ setCallWaiting(value: boolean): void;
197
+ private startCallTimer;
198
+ setActiveRoom(roomId: number | undefined): Promise<void>;
199
+ private getNewRoomId;
200
+ private setupCall;
201
+ private removeCall;
202
+ private activeCallListRemove;
203
+ /**
204
+ * Determines whether a new incoming session should be automatically terminated
205
+ * based on Do Not Disturb (DND) settings and Call Waiting settings.
206
+ *
207
+ * @param {RTCSessionEvent} event - The event containing the new RTC session
208
+ * @returns {boolean} True if the session should be terminated automatically, false otherwise
209
+ */
210
+ private shouldTerminateNewSession;
211
+ private newRTCSessionCallback;
212
+ setMuteWhenJoin(value: boolean): void;
213
+ setMicrophoneSensitivity(value: number): void;
214
+ setSpeakerVolume(value: number): void;
215
+ setAutoAnswer(value: boolean): void;
216
+ private setSelectedInputDevice;
217
+ private setSelectedOutputDevice;
218
+ private setCallMetrics;
219
+ private removeCallMetrics;
220
+ private getCallQuality;
221
+ private setupVUMeter;
222
+ private stopVUMeter;
223
+ setupStream(): Promise<void>;
224
+ private triggerAddStream;
225
+ initCall(target: string, addToCurrentRoom: boolean, holdOtherCalls?: boolean): void;
226
+ private processRoomChange;
227
+ }
228
+
229
+ declare type AudioModuleName = typeof MODULES.AUDIO
230
+
231
+ export declare class BaseNewStreamPlugin extends BasePlugin {
232
+ private _candidates;
233
+ private _subscribeSent;
234
+ private _configureSent;
235
+ private _lastTrickleReceived;
236
+ private _publisherSubscribeSent;
237
+ private opaqueId;
238
+ protected handleId: number;
239
+ private readonly type;
240
+ protected _connection: RTCPeerConnection;
241
+ protected jsep_offer: RTCSessionDescription | void;
242
+ protected _request: unknown;
243
+ stream: MediaStream;
244
+ constructor(name: any, type: any);
245
+ connect(options?: ConnectOptions): void;
246
+ getStream(): MediaStream;
247
+ getConnection(): RTCPeerConnection;
248
+ private _createRTCConnection;
249
+ private addTracks;
250
+ private _sendInitialRequest;
251
+ private _receiveInviteResponse;
252
+ private _sendConfigureMessage;
253
+ private _sendDetach;
254
+ protected stopMedia(): Promise<void>;
255
+ stop(): Promise<void>;
256
+ generateStream(): Promise<void>;
257
+ }
258
+
259
+ declare class BasePlugin {
260
+ opensips: any;
261
+ session: any;
262
+ name: string;
263
+ constructor(name: any);
264
+ setOpensips(opensips: any): void;
265
+ setSession(session: any): void;
266
+ kill(): void;
267
+ }
268
+
269
+ export declare class BaseProcessStreamPlugin extends BasePlugin {
270
+ stream: any;
271
+ running: boolean;
272
+ immediate: boolean;
273
+ type: string;
274
+ constructor(name: any, type: any, options?: BaseProcessStreamPluginOptions);
275
+ start(stream: any): any;
276
+ stop(): void;
277
+ process(stream: any): Promise<any>;
278
+ connect(): Promise<void>;
279
+ terminate(): void;
280
+ kill(): Promise<void>;
281
+ }
282
+
283
+ declare interface BaseProcessStreamPluginOptions {
284
+ immediate?: boolean;
285
+ }
286
+
287
+ declare type CallAddingProgressListener = (callId: string | undefined) => void
288
+
289
+ declare interface CallOptionsExtended extends AnswerOptionsExtended {
290
+ eventHandlers?: Partial<RTCSessionEventMap>;
291
+ anonymous?: boolean;
292
+ fromUserName?: string;
293
+ fromDisplayName?: string;
294
+ }
295
+
296
+ declare interface CallOptionsExtended_2 extends AnswerOptionsExtended_2 {
297
+ eventHandlers?: Partial<RTCSessionEventMap>;
298
+ anonymous?: boolean;
299
+ fromUserName?: string;
300
+ fromDisplayName?: string;
301
+ }
302
+
303
+ declare type changeActiveCallsListener = (event: { [key: string]: ICall }) => void
304
+
305
+ declare type changeActiveInputMediaDeviceListener = (event: string) => void
306
+
307
+ declare type changeActiveMessagesListener = (event: { [key: string]: IMessage }) => void
308
+
309
+ declare type changeActiveOutputMediaDeviceListener = (event: string) => void
310
+
311
+ declare type changeActiveStreamListener = (value: MediaStream) => void
312
+
313
+ declare type changeAudioStateListener = (state: boolean) => void
314
+
315
+ declare type changeAvailableDeviceListListener = (event: Array<MediaDeviceInfo>) => void
316
+
317
+ declare type changeCallMetricsListener = (event: { [key: string]: any }) => void
318
+
319
+ declare type changeCallStatusListener = (event: { [key: string]: ICallStatus }) => void
320
+
321
+ declare type changeCallTimeListener = (event: { [key: string]: ITimeData }) => void
322
+
323
+ declare type changeCallVolumeListener = (event: ChangeVolumeEventType) => void
324
+
325
+ declare type changeIsCallWaitingListener = (value: boolean) => void
326
+
327
+ declare type changeIsDNDListener = (value: boolean) => void
328
+
329
+ declare type changeIsMutedListener = (value: boolean) => void
330
+
331
+ declare type changeMuteWhenJoinListener = (value: boolean) => void
332
+
333
+ declare type changeVideoStateListener = (state: boolean) => void
334
+
335
+ declare type ChangeVolumeEventType = {
336
+ callId: string
337
+ volume: number
338
+ }
339
+
340
+ declare type CommonLogMethodType = (...args: unknown[]) => void
341
+
342
+ declare type conferenceEndListener = (sessionId) => void
343
+
344
+ declare type conferenceStartListener = () => void
345
+
346
+ declare type connectionListener = (value: boolean) => void
347
+
348
+ declare interface ConnectOptions {
349
+ extraHeaders?: Array<string>;
350
+ fromUserName?: string;
351
+ fromDisplayName?: string;
352
+ rtcConstraints?: object;
353
+ pcConfig?: object;
354
+ }
355
+
356
+ declare interface CustomLoggerType {
357
+ log: CommonLogMethodType
358
+ warn: CommonLogMethodType
359
+ error: CommonLogMethodType
360
+ debug: CommonLogMethodType
361
+ }
362
+
363
+ declare type ExactConstraints = {
364
+ audio?: {
365
+ deviceId: {exact: string}
366
+ }
367
+ video?: boolean;
368
+ }
369
+
370
+ declare type ExactConstraints_2 = {
371
+ audio?: {
372
+ deviceId: {exact: string}
373
+ }
374
+ video?: boolean;
375
+ }
376
+
377
+ declare interface ICall extends RTCSessionExtended {
378
+ roomId?: number
379
+ localMuted?: boolean
380
+ localHold?: boolean
381
+ audioTag?: StreamMediaType
382
+ autoAnswer?: boolean
383
+ putOnHoldTimestamp?: number
384
+ }
385
+
386
+ declare interface ICallStatus {
387
+ isMoving: boolean
388
+ isTransferring: boolean
389
+ isMerging: boolean
390
+ isTransferred: boolean
391
+ }
392
+
393
+ declare interface IMessage extends MSRPSessionExtended {
394
+ roomId?: number
395
+ localMuted?: boolean
396
+ localHold?: boolean
397
+ audioTag?: StreamMediaType
398
+ terminate(): void
399
+ }
400
+
401
+ declare interface IncomingMSRPSessionEvent {
402
+ originator: Originator.REMOTE;
403
+ session: MSRPSession;
404
+ request: IncomingRequest;
405
+ }
406
+
407
+ declare type IncomingMSRPSessionListener = (event: IncomingMSRPSessionEvent) => void;
408
+
409
+ declare type IOpenSIPSConfiguration = Omit<UAConfigurationExtended, 'sockets'>
410
+
411
+ declare interface IOpenSIPSJSOptions {
412
+ configuration: IOpenSIPSConfiguration
413
+ socketInterfaces: [ string ]
414
+ sipDomain: string
415
+ sipOptions: {
416
+ session_timers: boolean
417
+ extraHeaders: [ string ]
418
+ pcConfig: RTCConfiguration_2
419
+ },
420
+ modules: Array<Modules>
421
+ pnExtraHeaders?: ExtraContactParams
422
+ }
423
+
424
+ declare interface IRoom {
425
+ started: Date
426
+ incomingInProgress: boolean
427
+ roomId: number
428
+ }
429
+
430
+ declare type IRoomUpdate = Omit<IRoom, 'started'> & {
431
+ started?: Date
432
+ }
433
+
434
+ declare interface ITimeData {
435
+ callId: string
436
+ hours: number
437
+ minutes: number
438
+ seconds: number
439
+ formatted: string
440
+ }
441
+
442
+ declare interface JanusOptions extends AnswerOptions {
443
+ eventHandlers?: Partial<JanusSessionEventMap>
444
+ anonymous?: boolean;
445
+ fromUserName?: string;
446
+ fromDisplayName?: string;
447
+ }
448
+
449
+ declare interface JanusSessionEventMap {
450
+ 'peerconnection': PeerConnectionListener;
451
+ 'connecting': ConnectingListener;
452
+ 'sending': SendingListener;
453
+ 'progress': CallListener;
454
+ 'accepted': CallListener;
455
+ 'confirmed': ConfirmedListener;
456
+ 'ended': EndListener;
457
+ 'failed': EndListener;
458
+ 'newDTMF': DTMFListener;
459
+ 'newInfo': InfoListener;
460
+ 'hold': HoldListener;
461
+ 'unhold': HoldListener;
462
+ 'muted': MuteListener;
463
+ 'unmuted': MuteListener;
464
+ 'reinvite': ReInviteListener;
465
+ 'update': UpdateListener;
466
+ 'refer': ReferListener;
467
+ 'replaces': ReferListener;
468
+ 'sdp': SDPListener;
469
+ 'icecandidate': IceCandidateListener;
470
+ 'getusermediafailed': Listener_2;
471
+ 'active' : Listener_2;
472
+ 'msgHistoryUpdate' : Listener_2;
473
+ 'newMessage' : Listener_2;
474
+ 'peerconnection:createofferfailed': Listener_2;
475
+ 'peerconnection:createanswerfailed': Listener_2;
476
+ 'peerconnection:setlocaldescriptionfailed': Listener_2;
477
+ 'peerconnection:setremotedescriptionfailed': Listener_2;
478
+ }
479
+
480
+ declare type Listener = (event: unknown) => void
481
+
482
+ declare type Listener_2 = (event: unknown) => void
483
+
484
+ declare type Listener_3 = (event: unknown) => void
485
+
486
+ declare type ListenerCallbackFnType<T extends ListenersKeyType> = OpenSIPSEventMap[T]
487
+
488
+ declare type ListenerEventType = EndEvent | IncomingEvent | OutgoingEvent | IncomingAckEvent | OutgoingAckEvent
489
+
490
+ declare type ListenersKeyType = keyof OpenSIPSEventMap
491
+
492
+ declare type memberHangupListener = (event: object) => void
493
+
494
+ declare type memberJoinListener = (event: object) => void
495
+
496
+ declare const MODULES: {
497
+ readonly AUDIO: "audio";
498
+ readonly VIDEO: "video";
499
+ readonly MSRP: "msrp";
500
+ };
501
+
502
+ declare type Modules = AudioModuleName | VideoModuleName | MSRPModuleName
503
+
504
+ declare type MSRPInitializingListener = (sessionId: string | undefined) => void
505
+
506
+ declare class MSRPMessage {
507
+ protocol: string
508
+ ident: string
509
+ code: number
510
+ method: string
511
+ headers: any
512
+ body: string
513
+ direction: string
514
+
515
+ constructor(msg: string)
516
+ addHeader(name: string, content: string): void
517
+ getHeader(name: string): string
518
+ toString(): string
519
+ }
520
+
521
+ declare type MSRPMessageEventType = {
522
+ message: MSRPMessage,
523
+ session: MSRPSessionExtended
524
+ }
525
+
526
+ declare type MSRPMessageListener = (event: MSRPMessageEventType) => void;
527
+
528
+ declare class MSRPModule {
529
+ private context;
530
+ private activeMessages;
531
+ private extendedMessages;
532
+ private msrpHistory;
533
+ private isMSRPInitializingValue;
534
+ constructor(context: any);
535
+ get isMSRPInitializing(): boolean;
536
+ get getActiveMessages(): {
537
+ [key: string]: IMessage;
538
+ };
539
+ msrpAnswer(callId: string): void;
540
+ updateMSRPSession(value: IMessage): void;
541
+ private addMMSRPSession;
542
+ private addMSRPMessage;
543
+ messageTerminate(callId: string): void;
544
+ private addMessageSession;
545
+ private triggerMSRPListener;
546
+ private removeMMSRPSession;
547
+ private activeMessageListRemove;
548
+ private newMSRPSessionCallback;
549
+ private setIsMSRPInitializing;
550
+ initMSRP(target: string, body: string, options: any): void;
551
+ sendMSRP(msrpSessionId: string, body: string): void;
552
+ }
553
+
554
+ declare type MSRPModuleName = typeof MODULES.MSRP
555
+
556
+ declare interface MSRPOptions extends AnswerOptions {
557
+ eventHandlers?: Partial<MSRPSessionEventMap>
558
+ anonymous?: boolean;
559
+ fromUserName?: string;
560
+ fromDisplayName?: string;
561
+ }
562
+
563
+ declare interface MSRPOptions_2 extends AnswerOptions {
564
+ eventHandlers?: Partial<MSRPSessionEventMap_2>
565
+ anonymous?: boolean;
566
+ fromUserName?: string;
567
+ fromDisplayName?: string;
568
+ }
569
+
570
+ declare class MSRPSession extends EventEmitter {
571
+ _ua: UAExtendedInterface
572
+ id: any
573
+ credentials: any
574
+ status: string
575
+ target: string
576
+ message: string
577
+
578
+ constructor(ua: UAExtendedInterface)
579
+
580
+ get direction(): SessionDirection;
581
+
582
+ get connection(): RTCPeerConnectionDeprecated;
583
+
584
+ get start_time(): Date;
585
+
586
+ isOnHold(): OnHoldResult;
587
+
588
+ mute(options?: MediaConstraints): void;
589
+
590
+ unmute(options?: MediaConstraints): void;
591
+
592
+ init_incoming(request: any): void;
593
+
594
+ isEnded(): boolean;
595
+
596
+ connect(target?:string): void
597
+
598
+ sendMSRP(message: string): void
599
+
600
+ _sendOk(message: string): void
601
+
602
+ _sendReport(message: string): void
603
+
604
+ terminate(options?: any): void
605
+
606
+ receiveRequest(request: unknown): void
607
+
608
+ on<T extends keyof MSRPSessionEventMap>(type: T, listener: MSRPSessionEventMap[T]): this;
609
+ }
610
+
611
+ declare class MSRPSession_2 extends EventEmitter {
612
+ _ua: UAExtendedInterface_2
613
+ id: any
614
+ credentials: any
615
+ status: string
616
+ target: string
617
+ message: string
618
+
619
+ constructor(ua: UAExtendedInterface_2)
620
+
621
+ get direction(): SessionDirection;
622
+
623
+ get connection(): RTCPeerConnectionDeprecated;
624
+
625
+ get start_time(): Date;
626
+
627
+ isOnHold(): OnHoldResult;
628
+
629
+ mute(options?: MediaConstraints): void;
630
+
631
+ unmute(options?: MediaConstraints): void;
632
+
633
+ init_incoming(request: any): void;
634
+
635
+ isEnded(): boolean;
636
+
637
+ connect(target?:string): void
638
+
639
+ sendMSRP(message: string): void
640
+
641
+ _sendOk(message: string): void
642
+
643
+ _sendReport(message: string): void
644
+
645
+ terminate(options?: any): void
646
+
647
+ receiveRequest(request: unknown): void
648
+
649
+ on<T extends keyof MSRPSessionEventMap_2>(type: T, listener: MSRPSessionEventMap_2[T]): this;
650
+ }
651
+
652
+ declare interface MSRPSessionEventMap {
653
+ 'peerconnection': PeerConnectionListener;
654
+ 'connecting': ConnectingListener;
655
+ 'sending': SendingListener;
656
+ 'progress': CallListener;
657
+ 'accepted': CallListener;
658
+ 'confirmed': ConfirmedListener;
659
+ 'ended': EndListener;
660
+ 'failed': EndListener;
661
+ 'newDTMF': DTMFListener;
662
+ 'newInfo': InfoListener;
663
+ 'hold': HoldListener;
664
+ 'unhold': HoldListener;
665
+ 'muted': MuteListener;
666
+ 'unmuted': MuteListener;
667
+ 'reinvite': ReInviteListener;
668
+ 'update': UpdateListener;
669
+ 'refer': ReferListener;
670
+ 'replaces': ReferListener;
671
+ 'sdp': SDPListener;
672
+ 'icecandidate': IceCandidateListener;
673
+ 'getusermediafailed': Listener;
674
+ 'active' : Listener;
675
+ 'msgHistoryUpdate' : Listener;
676
+ 'newMessage' : Listener;
677
+ 'peerconnection:createofferfailed': Listener;
678
+ 'peerconnection:createanswerfailed': Listener;
679
+ 'peerconnection:setlocaldescriptionfailed': Listener;
680
+ 'peerconnection:setremotedescriptionfailed': Listener;
681
+ }
682
+
683
+ declare interface MSRPSessionEventMap_2 {
684
+ 'peerconnection': PeerConnectionListener;
685
+ 'connecting': ConnectingListener;
686
+ 'sending': SendingListener;
687
+ 'progress': CallListener;
688
+ 'accepted': CallListener;
689
+ 'confirmed': ConfirmedListener;
690
+ 'ended': EndListener;
691
+ 'failed': EndListener;
692
+ 'newDTMF': DTMFListener;
693
+ 'newInfo': InfoListener;
694
+ 'hold': HoldListener;
695
+ 'unhold': HoldListener;
696
+ 'muted': MuteListener;
697
+ 'unmuted': MuteListener;
698
+ 'reinvite': ReInviteListener;
699
+ 'update': UpdateListener;
700
+ 'refer': ReferListener;
701
+ 'replaces': ReferListener;
702
+ 'sdp': SDPListener;
703
+ 'icecandidate': IceCandidateListener;
704
+ 'getusermediafailed': Listener_3;
705
+ 'active' : Listener_3;
706
+ 'msgHistoryUpdate' : Listener_3;
707
+ 'newMessage' : Listener_3;
708
+ 'peerconnection:createofferfailed': Listener_3;
709
+ 'peerconnection:createanswerfailed': Listener_3;
710
+ 'peerconnection:setlocaldescriptionfailed': Listener_3;
711
+ 'peerconnection:setremotedescriptionfailed': Listener_3;
712
+ }
713
+
714
+ declare interface MSRPSessionExtended extends MSRPSession_2 {
715
+ id: string
716
+ status: string
717
+ start_time: Date
718
+ direction: SessionDirection
719
+ _id: string
720
+ _cancel_reason: string
721
+ _contact: string
722
+ _end_time: Date
723
+ _eventsCount: number
724
+ _from_tag: string
725
+ _is_canceled: boolean
726
+ _is_confirmed: boolean
727
+ _late_sdp: string
728
+ _status: number
729
+ _remote_identity: string
730
+ target_addr: Array<string>
731
+ answer(options?: any): void
732
+ _init_incomeing(): void
733
+ sendMSRP(body: string): void
734
+ on<T extends keyof MSRPSessionEventMap_2>(type: T, listener: MSRPSessionEventMap_2[T]): this;
735
+ }
736
+
737
+ declare type MSRPSessionListener = IncomingMSRPSessionListener | OutgoingMSRPSessionListener;
738
+
739
+ declare type OnTransportCallback = (parsed: object, message: string) => void
740
+
741
+ declare interface OpenSIPSEventMap extends UAEventMap {
742
+ ready: readyListener
743
+ connection: connectionListener
744
+ reconnecting: reconnectionListener
745
+ // JSSIP
746
+ changeActiveCalls: changeActiveCallsListener
747
+ changeActiveMessages: changeActiveMessagesListener
748
+ callConfirmed: TestEventListener
749
+ currentActiveRoomChanged: ActiveRoomListener
750
+ callAddingInProgressChanged: CallAddingProgressListener
751
+ isMSRPInitializingChanged: MSRPInitializingListener
752
+ roomDeleted: RoomDeletedListener
753
+ changeActiveInputMediaDevice: changeActiveInputMediaDeviceListener
754
+ changeActiveOutputMediaDevice: changeActiveOutputMediaDeviceListener
755
+ changeAvailableDeviceList: changeAvailableDeviceListListener
756
+ changeMuteWhenJoin: changeMuteWhenJoinListener
757
+ changeIsDND: changeIsDNDListener
758
+ changeIsCallWaiting: changeIsCallWaitingListener
759
+ changeIsMuted: changeIsMutedListener
760
+ changeActiveStream: changeActiveStreamListener
761
+ addRoom: addRoomListener
762
+ updateRoom: updateRoomListener
763
+ removeRoom: removeRoomListener
764
+ changeCallStatus: changeCallStatusListener
765
+ changeCallTime: changeCallTimeListener
766
+ changeCallMetrics: changeCallMetricsListener
767
+ changeCallVolume: changeCallVolumeListener
768
+ newMSRPMessage: MSRPMessageListener
769
+ newMSRPSession: MSRPSessionListener
770
+ // JANUS
771
+ conferenceStart: conferenceStartListener
772
+ conferenceEnd: conferenceEndListener
773
+ startScreenShare: startScreenShareListener
774
+ stopScreenShare: stopScreenShareListener
775
+ startBlur: startBlurListener
776
+ stopBlur: stopBlurListener
777
+ memberJoin: memberJoinListener
778
+ memberHangup: memberHangupListener
779
+ changeAudioState: changeAudioStateListener
780
+ changeVideoState: changeVideoStateListener
781
+ }
782
+
783
+ declare class OpenSIPSJS extends UAExtended {
784
+ initialized: boolean;
785
+ connected: boolean;
786
+ readonly options: IOpenSIPSJSOptions;
787
+ logger: CustomLoggerType;
788
+ readonly newRTCSessionEventName: ListenersKeyType;
789
+ private readonly registeredEventName;
790
+ private readonly unregisteredEventName;
791
+ private readonly disconnectedEventName;
792
+ private readonly connectedEventName;
793
+ private readonly newMSRPSessionEventName;
794
+ private isMSRPInitializingValue;
795
+ private isReconnecting;
796
+ private activeConnection;
797
+ private waitingForSessionHangup;
798
+ private waitingForSessionTimeout;
799
+ audio: AudioModule;
800
+ msrp: MSRPModule;
801
+ video: VideoModule;
802
+ private listenersList;
803
+ private modules;
804
+ constructor(options: IOpenSIPSJSOptions, logger?: CustomLoggerType);
805
+ isWaitingForSessionHangup(): boolean;
806
+ stopSessionAfterWaiting(): void;
807
+ private get hasActiveSessions();
808
+ on<T extends ListenersKeyType>(type: T, listener: ListenerCallbackFnType<T>): this;
809
+ off<T extends ListenersKeyType>(type: T, listener: ListenerCallbackFnType<T>): this;
810
+ emit(type: ListenersKeyType, args: any): boolean;
811
+ get sipDomain(): string;
812
+ use(plugin: BaseNewStreamPlugin | BaseProcessStreamPlugin): void;
813
+ getPlugin(name: string): BaseNewStreamPlugin | BaseProcessStreamPlugin;
814
+ begin(): this;
815
+ disconnect(): void;
816
+ subscribe(type: string, listener: (c: RTCSessionExtended) => void): void;
817
+ removeIListener(value: string): void;
818
+ triggerListener({ listenerType, session, event }: TriggerListenerOptions): void;
819
+ private setInitialized;
820
+ private setConnected;
821
+ private setReconnecting;
822
+ }
823
+ export default OpenSIPSJS;
824
+
825
+ declare interface OutgoingMSRPSessionEvent {
826
+ originator: Originator.LOCAL;
827
+ session: MSRPSession;
828
+ request: IncomingRequest;
829
+ }
830
+
831
+ declare type OutgoingMSRPSessionListener = (event: OutgoingMSRPSessionEvent) => void;
832
+
833
+ declare type readyListener = (value: boolean) => void
834
+
835
+ declare type reconnectionListener = (value: boolean) => void
836
+
837
+ declare interface RemoteIdentityCallType {
838
+ _display_name: string
839
+ _uri: {
840
+ _user: string
841
+ }
842
+ }
843
+
844
+ declare type removeRoomListener = (value: RoomChangeEmitType) => void
845
+
846
+ declare type RoomChangeEmitType = {
847
+ room: IRoom
848
+ roomList: { [key: number]: IRoom }
849
+ }
850
+
851
+ declare type RoomDeletedListener = (roomId: number) => void
852
+
853
+ declare type RTCBundlePolicy_2 = 'balanced' | 'max-bundle' | 'max-compat'
854
+
855
+ declare interface RTCConfiguration_2 {
856
+ bundlePolicy?: RTCBundlePolicy_2;
857
+ certificates?: RTCCertificate[];
858
+ iceCandidatePoolSize?: number;
859
+ iceServers?: RTCIceServer_2[];
860
+ iceTransportPolicy?: RTCIceTransportPolicy_2;
861
+ rtcpMuxPolicy?: RTCRtcpMuxPolicy_2;
862
+ }
863
+
864
+ declare interface RTCIceServer_2 {
865
+ credential?: string;
866
+ urls: string | string[];
867
+ username?: string;
868
+ }
869
+
870
+ declare type RTCIceTransportPolicy_2 = 'all' | 'relay'
871
+
872
+ declare type RTCRtcpMuxPolicy_2 = 'require'
873
+
874
+ declare interface RTCSessionExtended extends RTCSession {
875
+ id: string
876
+ _automaticHold: boolean
877
+ _id: string
878
+ _localHold: boolean
879
+ _audioMuted: boolean
880
+ _cancel_reason: string
881
+ _contact: string
882
+ _end_time: Date
883
+ _eventsCount: number
884
+ _from_tag: string
885
+ _is_canceled: boolean
886
+ _is_confirmed: boolean
887
+ _late_sdp: string
888
+ _videoMuted: boolean
889
+ _status: number
890
+ _remote_identity: RemoteIdentityCallType
891
+ answer(options?: AnswerOptionsExtended): void
892
+ init_icncoming(request: IncomingRequest): void
893
+ }
894
+
895
+ declare type startBlurListener = () => void
896
+
897
+ declare type startScreenShareListener = (event: MediaStream) => void
898
+
899
+ declare type stopBlurListener = () => void
900
+
901
+ declare type stopScreenShareListener = () => void
902
+
903
+ declare interface StreamMediaType extends HTMLAudioElement {
904
+ className: string
905
+ setSinkId (id: string): Promise<void>
906
+ }
907
+
908
+ declare type TestEventListener = (event: { test: string }) => void
909
+
910
+ declare interface TriggerListenerOptions {
911
+ listenerType: string
912
+ session: RTCSessionExtended
913
+ event?: ListenerEventType
914
+ }
915
+
916
+ declare type UAConfigurationExtended = UAConfiguration & {
917
+ overrideUserAgent?: (userAgent: string) => string
918
+ onTransportCallback?: OnTransportCallback
919
+ }
920
+
921
+ declare const UAConstructor: typeof UA;
922
+
923
+ declare class UAExtended extends UAConstructor implements UAExtendedInterface {
924
+ _msrp_sessions: MSRPSession[];
925
+ _transactions: {
926
+ nist: {};
927
+ nict: {};
928
+ ist: {};
929
+ ict: {};
930
+ };
931
+ _janus_sessions: any[];
932
+ protected newStreamPlugins: Array<BaseNewStreamPlugin>;
933
+ protected processStreamPlugins: Array<BaseProcessStreamPlugin>;
934
+ protected optionsInterval: any;
935
+ protected onTransportCallback: OnTransportCallback;
936
+ protected lastOptionsTimestamp: any;
937
+ protected lastRegisterTimestamp: any;
938
+ constructor(configuration: UAConfiguration);
939
+ setLastRegisterTimestamp(): void;
940
+ call(target: string, options?: CallOptionsExtended): RTCSession;
941
+ joinVideoCall(target: string, displayName: string, options: VideoConferenceJoinOptions): any;
942
+ startScreenShare(): void;
943
+ changeMediaConstraints(constraints: MediaStreamConstraints): void;
944
+ startBlur(): void;
945
+ stopBlur(): void;
946
+ _loadConfig(configuration: any): void;
947
+ /**
948
+ * new MSRPSession
949
+ */
950
+ newMSRPSession(session: MSRPSession, data: object): void;
951
+ newJanusSession(session: any, data: any): void;
952
+ kill(): void;
953
+ /**
954
+ * MSRPSession destroyed.
955
+ */
956
+ destroyMSRPSession(session: MSRPSession): void;
957
+ destroyJanusSession(session: any): void;
958
+ clearKeepAliveInterval(): void;
959
+ receiveRequest(request: any): void;
960
+ startMSRP(target: string, options: MSRPOptions): MSRPSession;
961
+ startJanus(target: string, options: JanusOptions): MSRPSession;
962
+ terminateMSRPSessions(options: object): void;
963
+ terminateJanusSessions(options: any): void;
964
+ enableJanusAudio(state: any): void;
965
+ enableJanusVideo(state: any): void;
966
+ terminateAllSessions(): void;
967
+ stop(closeSessions?: boolean): void;
968
+ }
969
+
970
+ declare interface UAExtendedInterface extends UA {
971
+ //_msrp_sessions: MSRPSession[]
972
+ _transactions: {
973
+ nist: object,
974
+ nict: object,
975
+ ist: object,
976
+ ict: object
977
+ }
978
+
979
+ call (target: string, options?: CallOptionsExtended): RTCSession
980
+ newMSRPSession (session: MSRPSession, data: object): void
981
+ destroyMSRPSession (session: MSRPSession): void
982
+ receiveRequest (request: any): void
983
+ startMSRP (target: string, options: MSRPOptions): MSRPSession
984
+ terminateMSRPSessions (options: object): void
985
+ stop (): void
986
+ }
987
+
988
+ declare interface UAExtendedInterface_2 extends UA {
989
+ //_msrp_sessions: MSRPSession[]
990
+ _transactions: {
991
+ nist: object,
992
+ nict: object,
993
+ ist: object,
994
+ ict: object
995
+ }
996
+
997
+ call (target: string, options?: CallOptionsExtended_2): RTCSession
998
+ newMSRPSession (session: MSRPSession_2, data: object): void
999
+ destroyMSRPSession (session: MSRPSession_2): void
1000
+ receiveRequest (request: any): void
1001
+ startMSRP (target: string, options: MSRPOptions_2): MSRPSession_2
1002
+ terminateMSRPSessions (options: object): void
1003
+ stop (): void
1004
+ }
1005
+
1006
+ declare type updateRoomListener = (value: RoomChangeEmitType) => void
1007
+
1008
+ declare interface VideoConferenceJoinOptions {
1009
+ eventHandlers: Array<unknown>;
1010
+ extraHeaders: Array<string>;
1011
+ mediaConstraints: MediaStreamConstraints;
1012
+ }
1013
+
1014
+ declare class VideoModule {
1015
+ private context;
1016
+ constructor(context: any);
1017
+ get sipOptions(): any;
1018
+ initCall(target: string, displayName: string): void;
1019
+ stop(options?: {}): void;
1020
+ startAudio(): void;
1021
+ stopAudio(): void;
1022
+ startVideo(): void;
1023
+ stopVideo(): void;
1024
+ changeMediaConstraints(constraints: MediaStreamConstraints): void;
1025
+ startScreenShare(): void;
1026
+ startBlur(): void;
1027
+ stopBlur(): void;
1028
+ }
1029
+
1030
+ declare type VideoModuleName = typeof MODULES.VIDEO
1031
+
1032
+ declare interface WebrtcMetricsConfigType {
1033
+ refreshEvery?: number
1034
+ startAfter?: number
1035
+ stopAfter?: number
1036
+ verbose?: boolean
1037
+ pname?: string
1038
+ cid?: string
1039
+ uid?: string
1040
+ record?: boolean
1041
+ ticket?: boolean
1042
+ }
1043
+
1044
+ export { }