sip-connector 5.2.0 → 5.4.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.
- package/dist/SipConnector.d.ts +25 -22
- package/dist/SipConnector.d.ts.map +1 -1
- package/dist/SipConnector.js +123 -101
- package/dist/SipConnector.js.map +1 -1
- package/dist/__mocks__/BaseSession.mock.d.ts +2 -1
- package/dist/__mocks__/BaseSession.mock.d.ts.map +1 -1
- package/dist/__mocks__/jssip.mock.d.ts +6 -6
- package/dist/__mocks__/jssip.mock.d.ts.map +1 -1
- package/dist/__mocks__/jssip.mock.js +26 -12
- package/dist/__mocks__/jssip.mock.js.map +1 -1
- package/dist/eventNames.d.ts +4 -4
- package/dist/eventNames.d.ts.map +1 -1
- package/dist/eventNames.js +11 -11
- package/dist/eventNames.js.map +1 -1
- package/dist/index.es5.js +1 -1
- package/dist/index.es5.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/utils/errors.d.ts +2 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +9 -0
- package/dist/utils/errors.js.map +1 -0
- package/package.json +19 -19
package/dist/SipConnector.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { UA, WebSocketInterface } from '@krivega/jssip';
|
|
2
2
|
import type { IncomingRequest } from '@krivega/jssip/lib/SIPMessage';
|
|
3
|
-
import type
|
|
3
|
+
import type RTCSession from '@krivega/jssip/lib/RTCSession';
|
|
4
|
+
import type { IncomingInfoEvent, OutgoingInfoEvent } from '@krivega/jssip/lib/RTCSession';
|
|
4
5
|
import type { IncomingRTCSessionEvent, RegisteredEvent, UnRegisteredEvent } from '@krivega/jssip/lib/UA';
|
|
5
6
|
import type { TEventUA, TEventSession } from './eventNames';
|
|
6
7
|
export declare enum EEventsMainCAM {
|
|
@@ -29,6 +30,9 @@ declare type TMediaState = {
|
|
|
29
30
|
cam: boolean;
|
|
30
31
|
mic: boolean;
|
|
31
32
|
};
|
|
33
|
+
declare type TOptionsInfoMediaState = {
|
|
34
|
+
noTerminateWhenError: boolean;
|
|
35
|
+
};
|
|
32
36
|
declare const CMD_CHANNELS: "channels";
|
|
33
37
|
declare const CMD_WEBCAST_STARTED: "WebcastStarted";
|
|
34
38
|
declare const CMD_ADDED_TO_LIST_MODERATORS: "addedToListModerators";
|
|
@@ -166,14 +170,15 @@ export default class SipConnector {
|
|
|
166
170
|
replaceMediaStream(mediaStream: MediaStream, options?: {
|
|
167
171
|
deleteExisting: boolean;
|
|
168
172
|
addMissing: boolean;
|
|
173
|
+
forceRenegotiation: boolean;
|
|
169
174
|
}): Promise<void>;
|
|
170
175
|
declineToIncomingCall: ({ statusCode }?: {
|
|
171
176
|
statusCode?: number | undefined;
|
|
172
177
|
}) => Promise<unknown>;
|
|
173
178
|
busyIncomingCall: () => Promise<unknown>;
|
|
174
179
|
removeIncomingSession: () => void;
|
|
175
|
-
askPermissionToEnableCam(): Promise<void>;
|
|
176
|
-
askPermissionToEnableMic(): Promise<void>;
|
|
180
|
+
askPermissionToEnableCam(options?: TOptionsInfoMediaState): Promise<void>;
|
|
181
|
+
askPermissionToEnableMic(options?: TOptionsInfoMediaState): Promise<void>;
|
|
177
182
|
startPresentation(stream: MediaStream, { isNeedReinvite, isP2P, maxBitrate, }?: {
|
|
178
183
|
isNeedReinvite?: boolean;
|
|
179
184
|
isP2P?: boolean;
|
|
@@ -192,8 +197,6 @@ export default class SipConnector {
|
|
|
192
197
|
onceSession(eventName: TEventSession, handler: any): void;
|
|
193
198
|
waitSession(eventName: TEventSession): Promise<any>;
|
|
194
199
|
offSession(eventName: TEventSession, handler: any): void;
|
|
195
|
-
isMutedVideo(): boolean | undefined;
|
|
196
|
-
isMutedAudio(): boolean | undefined;
|
|
197
200
|
isConfigured(): boolean;
|
|
198
201
|
getConnectionConfiguration(): {
|
|
199
202
|
sipServerUrl?: string | undefined;
|
|
@@ -207,14 +210,14 @@ export default class SipConnector {
|
|
|
207
210
|
getRemoteStreams(): MediaStream[] | undefined;
|
|
208
211
|
get connection(): RTCPeerConnection | undefined;
|
|
209
212
|
get remoteCallerData(): {
|
|
210
|
-
displayName:
|
|
211
|
-
host:
|
|
212
|
-
incomingNumber:
|
|
213
|
+
displayName: any;
|
|
214
|
+
host: any;
|
|
215
|
+
incomingNumber: any;
|
|
213
216
|
session: RTCSession | undefined;
|
|
214
217
|
};
|
|
215
218
|
get requested(): boolean;
|
|
216
|
-
get
|
|
217
|
-
get isRegistered():
|
|
219
|
+
get establishedSession(): RTCSession | undefined;
|
|
220
|
+
get isRegistered(): any;
|
|
218
221
|
get isRegisterConfig(): boolean;
|
|
219
222
|
get isCallActive(): boolean;
|
|
220
223
|
get isAvailableIncomingCall(): boolean;
|
|
@@ -247,17 +250,17 @@ export default class SipConnector {
|
|
|
247
250
|
_handleShareState: (eventName: any) => void;
|
|
248
251
|
_maybeTriggerChannels: (request: IncomingRequest) => void;
|
|
249
252
|
_handleNotify: (header: TInfoNotify) => void;
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
253
|
+
_triggerRemovedFromListModeratorsNotify: ({ conference, }: TRemovedFromListModeratorsInfoNotify) => void;
|
|
254
|
+
_triggerAddedToListModeratorsNotify: ({ conference }: TAddedToListModeratorsInfoNotify) => void;
|
|
255
|
+
_triggerWebcastStartedNotify: ({ body: { conference, type } }: TWebcastInfoNotify) => void;
|
|
256
|
+
_triggerWebcastStoppedNotify: ({ body: { conference, type } }: TWebcastInfoNotify) => void;
|
|
257
|
+
_triggerAccountChangedNotify: () => void;
|
|
258
|
+
_triggerAccountDeletedNotify: () => void;
|
|
259
|
+
_triggerConferenceParticipantTokenIssued: ({ body: { conference, participant, jwt }, }: TConferenceParticipantTokenIssued) => void;
|
|
260
|
+
_triggerChannelsNotify: (channelsInfo: TChannelsInfoNotify) => void;
|
|
261
|
+
_triggerParticipantMoveRequestToConference: ({ body: { conference }, }: TMoveRequestToConferenceInfoNotify) => void;
|
|
262
|
+
_triggerParticipantCancelingWordRequest: ({ body: { conference }, }: TCancelingWordRequestInfoNotify) => void;
|
|
263
|
+
_triggerParticipantMoveRequestToStream: ({ body: { conference }, }: TMoveRequestToStreamInfoNotify) => void;
|
|
261
264
|
_triggerEnterRoom: (request: IncomingRequest) => void;
|
|
262
265
|
_triggerShareState: (request: IncomingRequest) => void;
|
|
263
266
|
_triggerMainCamControl: (request: IncomingRequest) => void;
|
|
@@ -268,7 +271,7 @@ export default class SipConnector {
|
|
|
268
271
|
_maybeHandleNotify: (request: IncomingRequest) => void;
|
|
269
272
|
waitChannels(): Promise<TChannels>;
|
|
270
273
|
sendChannels({ inputChannels, outputChannels }: TChannels): void;
|
|
271
|
-
sendMediaState({ cam, mic }: TMediaState): void;
|
|
274
|
+
sendMediaState({ cam, mic }: TMediaState, options?: TOptionsInfoMediaState): void;
|
|
272
275
|
_handleEnded: (error: ICustomError) => void;
|
|
273
276
|
}
|
|
274
277
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SipConnector.d.ts","sourceRoot":"","sources":["../src/SipConnector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"SipConnector.d.ts","sourceRoot":"","sources":["../src/SipConnector.ts"],"names":[],"mappings":"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"}
|
package/dist/SipConnector.js
CHANGED
|
@@ -21,6 +21,7 @@ const causes_1 = require("./causes");
|
|
|
21
21
|
const headers_1 = require("./headers");
|
|
22
22
|
const getExtraHeadersRemoteAddress_1 = __importDefault(require("./getExtraHeadersRemoteAddress"));
|
|
23
23
|
const utils_1 = require("./utils");
|
|
24
|
+
const errors_1 = require("./utils/errors");
|
|
24
25
|
const constants_1 = require("./constants");
|
|
25
26
|
const BUSY_HERE_STATUS_CODE = 486;
|
|
26
27
|
const REQUEST_TERMINATED_STATUS_CODE = 487;
|
|
@@ -132,7 +133,7 @@ class SipConnector {
|
|
|
132
133
|
if (originator === ORIGINATOR_REMOTE) {
|
|
133
134
|
this.incomingSession = session;
|
|
134
135
|
const callerData = this.remoteCallerData;
|
|
135
|
-
|
|
136
|
+
session.on(constants_1.FAILED, () => {
|
|
136
137
|
this.removeIncomingSession();
|
|
137
138
|
this._uaEvents.trigger(constants_1.FAILED_INCOMING_CALL, callerData);
|
|
138
139
|
});
|
|
@@ -315,19 +316,24 @@ class SipConnector {
|
|
|
315
316
|
}
|
|
316
317
|
this.session = this.incomingSession;
|
|
317
318
|
this.removeIncomingSession();
|
|
319
|
+
const session = this.session;
|
|
320
|
+
if (!session) {
|
|
321
|
+
reject(new Error('No session established'));
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
318
324
|
this._sessionEvents.eachTriggers((trigger, eventName) => {
|
|
319
325
|
const sessionJsSipEvent = eventNames_1.SESSION_JSSIP_EVENT_NAMES.find((jsSipEvent) => {
|
|
320
326
|
return jsSipEvent === eventName;
|
|
321
327
|
});
|
|
322
328
|
if (sessionJsSipEvent) {
|
|
323
|
-
|
|
329
|
+
session.on(sessionJsSipEvent, trigger);
|
|
324
330
|
}
|
|
325
331
|
});
|
|
326
332
|
this._connectionConfiguration.answer = true;
|
|
327
|
-
this._connectionConfiguration.number =
|
|
333
|
+
this._connectionConfiguration.number = session.remote_identity.uri.user;
|
|
328
334
|
this._handleCall({ ontrack }).then(resolve).catch(reject);
|
|
329
335
|
const preparedMediaStream = mediaStream ? (0, utils_1.prepareMediaStream)(mediaStream) : undefined;
|
|
330
|
-
|
|
336
|
+
session.answer({
|
|
331
337
|
extraHeaders,
|
|
332
338
|
mediaStream: preparedMediaStream,
|
|
333
339
|
pcConfig: {
|
|
@@ -390,20 +396,20 @@ class SipConnector {
|
|
|
390
396
|
};
|
|
391
397
|
this._sendDTMF = (tone) => {
|
|
392
398
|
return new Promise((resolve, reject) => {
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
}
|
|
398
|
-
});
|
|
399
|
-
this.session.sendDTMF(tone, {
|
|
400
|
-
duration: 120,
|
|
401
|
-
interToneGap: 600,
|
|
402
|
-
});
|
|
403
|
-
}
|
|
404
|
-
else {
|
|
405
|
-
reject();
|
|
399
|
+
const session = this.session;
|
|
400
|
+
if (!session) {
|
|
401
|
+
reject(new Error('No session established'));
|
|
402
|
+
return;
|
|
406
403
|
}
|
|
404
|
+
this.onceSession(constants_1.NEW_DTMF, ({ originator }) => {
|
|
405
|
+
if (originator === ORIGINATOR_LOCAL) {
|
|
406
|
+
resolve();
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
session.sendDTMF(tone, {
|
|
410
|
+
duration: 120,
|
|
411
|
+
interToneGap: 600,
|
|
412
|
+
});
|
|
407
413
|
});
|
|
408
414
|
};
|
|
409
415
|
this._hangUpWithoutCancelRequests = () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -447,115 +453,113 @@ class SipConnector {
|
|
|
447
453
|
this._handleNotify = (header) => {
|
|
448
454
|
if (header.cmd === CMD_CHANNELS) {
|
|
449
455
|
const channelsInfo = header;
|
|
450
|
-
this.
|
|
456
|
+
this._triggerChannelsNotify(channelsInfo);
|
|
451
457
|
}
|
|
452
458
|
else if (header.cmd === CMD_WEBCAST_STARTED) {
|
|
453
459
|
const webcastInfo = header;
|
|
454
|
-
this.
|
|
460
|
+
this._triggerWebcastStartedNotify(webcastInfo);
|
|
455
461
|
}
|
|
456
462
|
else if (header.cmd === CMD_WEBCAST_STOPPED) {
|
|
457
463
|
const webcastInfo = header;
|
|
458
|
-
this.
|
|
464
|
+
this._triggerWebcastStoppedNotify(webcastInfo);
|
|
459
465
|
}
|
|
460
466
|
else if (header.cmd === CMD_ADDED_TO_LIST_MODERATORS) {
|
|
461
467
|
const data = header;
|
|
462
|
-
this.
|
|
468
|
+
this._triggerAddedToListModeratorsNotify(data);
|
|
463
469
|
}
|
|
464
470
|
else if (header.cmd === CMD_REMOVED_FROM_LIST_MODERATORS) {
|
|
465
471
|
const data = header;
|
|
466
|
-
this.
|
|
472
|
+
this._triggerRemovedFromListModeratorsNotify(data);
|
|
467
473
|
}
|
|
468
474
|
else if (header.cmd === CMD_MOVE_REQUEST_TO_CONFERENCE) {
|
|
469
475
|
const data = header;
|
|
470
|
-
this.
|
|
476
|
+
this._triggerParticipantMoveRequestToConference(data);
|
|
471
477
|
}
|
|
472
478
|
else if (header.cmd === CMD_CANCELLING_WORD_REQUEST) {
|
|
473
479
|
const data = header;
|
|
474
|
-
this.
|
|
480
|
+
this._triggerParticipantCancelingWordRequest(data);
|
|
475
481
|
}
|
|
476
482
|
else if (header.cmd === CMD_MOVE_REQUEST_TO_STREAM) {
|
|
477
483
|
const data = header;
|
|
478
|
-
this.
|
|
484
|
+
this._triggerParticipantMoveRequestToStream(data);
|
|
479
485
|
}
|
|
480
486
|
else if (header.cmd === CMD_ACCOUNT_CHANGED) {
|
|
481
|
-
this.
|
|
487
|
+
this._triggerAccountChangedNotify();
|
|
482
488
|
}
|
|
483
489
|
else if (header.cmd === CMD_ACCOUNT_DELETED) {
|
|
484
|
-
this.
|
|
490
|
+
this._triggerAccountDeletedNotify();
|
|
485
491
|
}
|
|
486
492
|
else if (header.cmd === CMD_CONFERENCE_PARTICIPANT_TOKEN_ISSUED) {
|
|
487
493
|
const data = header;
|
|
488
|
-
this.
|
|
494
|
+
this._triggerConferenceParticipantTokenIssued(data);
|
|
489
495
|
}
|
|
490
496
|
};
|
|
491
|
-
this.
|
|
497
|
+
this._triggerRemovedFromListModeratorsNotify = ({ conference, }) => {
|
|
492
498
|
const headersParametersModeratorsList = {
|
|
493
499
|
conference,
|
|
494
500
|
};
|
|
495
|
-
this.
|
|
501
|
+
this._uaEvents.trigger(constants_1.PARTICIPANT_REMOVED_FROM_LIST_MODERATORS, headersParametersModeratorsList);
|
|
496
502
|
};
|
|
497
|
-
this.
|
|
503
|
+
this._triggerAddedToListModeratorsNotify = ({ conference }) => {
|
|
498
504
|
const headersParametersModeratorsList = {
|
|
499
505
|
conference,
|
|
500
506
|
};
|
|
501
|
-
this.
|
|
507
|
+
this._uaEvents.trigger(constants_1.PARTICIPANT_ADDED_TO_LIST_MODERATORS, headersParametersModeratorsList);
|
|
502
508
|
};
|
|
503
|
-
this.
|
|
509
|
+
this._triggerWebcastStartedNotify = ({ body: { conference, type } }) => {
|
|
504
510
|
const headersParametersWebcast = {
|
|
505
511
|
conference,
|
|
506
512
|
type,
|
|
507
513
|
};
|
|
508
|
-
this.
|
|
514
|
+
this._uaEvents.trigger(constants_1.WEBCAST_STARTED, headersParametersWebcast);
|
|
509
515
|
};
|
|
510
|
-
this.
|
|
516
|
+
this._triggerWebcastStoppedNotify = ({ body: { conference, type } }) => {
|
|
511
517
|
const headersParametersWebcast = {
|
|
512
518
|
conference,
|
|
513
519
|
type,
|
|
514
520
|
};
|
|
515
|
-
this.
|
|
521
|
+
this._uaEvents.trigger(constants_1.WEBCAST_STOPPED, headersParametersWebcast);
|
|
516
522
|
};
|
|
517
|
-
this.
|
|
518
|
-
this.
|
|
523
|
+
this._triggerAccountChangedNotify = () => {
|
|
524
|
+
this._uaEvents.trigger(constants_1.ACCOUNT_CHANGED, undefined);
|
|
519
525
|
};
|
|
520
|
-
this.
|
|
521
|
-
this.
|
|
526
|
+
this._triggerAccountDeletedNotify = () => {
|
|
527
|
+
this._uaEvents.trigger(constants_1.ACCOUNT_DELETED, undefined);
|
|
522
528
|
};
|
|
523
|
-
this.
|
|
529
|
+
this._triggerConferenceParticipantTokenIssued = ({ body: { conference, participant, jwt }, }) => {
|
|
524
530
|
const headersConferenceParticipantTokenIssued = {
|
|
525
531
|
conference,
|
|
526
532
|
participant,
|
|
527
533
|
jwt,
|
|
528
534
|
};
|
|
529
|
-
this.
|
|
535
|
+
this._uaEvents.trigger(constants_1.CONFERENCE_PARTICIPANT_TOKEN_ISSUED, headersConferenceParticipantTokenIssued);
|
|
530
536
|
};
|
|
531
|
-
this.
|
|
537
|
+
this._triggerChannelsNotify = (channelsInfo) => {
|
|
532
538
|
const inputChannels = channelsInfo.input;
|
|
533
539
|
const outputChannels = channelsInfo.output;
|
|
534
540
|
const data = {
|
|
535
541
|
inputChannels,
|
|
536
542
|
outputChannels,
|
|
537
543
|
};
|
|
538
|
-
|
|
539
|
-
this._sessionEvents.trigger(constants_1.CHANNELS_NOTIFY, data);
|
|
540
|
-
}
|
|
544
|
+
this._uaEvents.trigger(constants_1.CHANNELS_NOTIFY, data);
|
|
541
545
|
};
|
|
542
|
-
this.
|
|
546
|
+
this._triggerParticipantMoveRequestToConference = ({ body: { conference }, }) => {
|
|
543
547
|
const data = {
|
|
544
548
|
conference,
|
|
545
549
|
};
|
|
546
|
-
this.
|
|
550
|
+
this._uaEvents.trigger(constants_1.PARTICIPANT_MOVE_REQUEST_TO_CONFERENCE, data);
|
|
547
551
|
};
|
|
548
|
-
this.
|
|
552
|
+
this._triggerParticipantCancelingWordRequest = ({ body: { conference }, }) => {
|
|
549
553
|
const data = {
|
|
550
554
|
conference,
|
|
551
555
|
};
|
|
552
|
-
this.
|
|
556
|
+
this._uaEvents.trigger(constants_1.PARTICIPANT_CANCELLING_WORD_REQUEST, data);
|
|
553
557
|
};
|
|
554
|
-
this.
|
|
558
|
+
this._triggerParticipantMoveRequestToStream = ({ body: { conference }, }) => {
|
|
555
559
|
const data = {
|
|
556
560
|
conference,
|
|
557
561
|
};
|
|
558
|
-
this.
|
|
562
|
+
this._uaEvents.trigger(constants_1.PARTICIPANT_MOVE_REQUEST_TO_STREAM, data);
|
|
559
563
|
};
|
|
560
564
|
this._triggerEnterRoom = (request) => {
|
|
561
565
|
const room = request.getHeader(headers_1.HEADER_CONTENT_ENTER_ROOM);
|
|
@@ -660,21 +664,44 @@ class SipConnector {
|
|
|
660
664
|
});
|
|
661
665
|
}
|
|
662
666
|
replaceMediaStream(mediaStream, options) {
|
|
667
|
+
if (!this.session) {
|
|
668
|
+
throw new Error('No session established');
|
|
669
|
+
}
|
|
663
670
|
return this.session.replaceMediaStream(mediaStream, options);
|
|
664
671
|
}
|
|
665
|
-
askPermissionToEnableCam() {
|
|
672
|
+
askPermissionToEnableCam(options = { noTerminateWhenError: true }) {
|
|
673
|
+
if (!this.session) {
|
|
674
|
+
throw new Error('No session established');
|
|
675
|
+
}
|
|
666
676
|
const extraHeaders = [headers_1.HEADER_ENABLE_MAIN_CAM];
|
|
667
|
-
return this.session
|
|
668
|
-
extraHeaders
|
|
677
|
+
return this.session
|
|
678
|
+
.sendInfo(headers_1.CONTENT_TYPE_MAIN_CAM, undefined, Object.assign(Object.assign({}, options), { extraHeaders }))
|
|
679
|
+
.catch((error) => {
|
|
680
|
+
if ((0, errors_1.hasDeclineResponseFromServer)(error)) {
|
|
681
|
+
throw error;
|
|
682
|
+
}
|
|
683
|
+
return;
|
|
669
684
|
});
|
|
670
685
|
}
|
|
671
|
-
askPermissionToEnableMic() {
|
|
686
|
+
askPermissionToEnableMic(options = { noTerminateWhenError: true }) {
|
|
687
|
+
if (!this.session) {
|
|
688
|
+
throw new Error('No session established');
|
|
689
|
+
}
|
|
672
690
|
const extraHeaders = [headers_1.HEADER_ENABLE_MIC];
|
|
673
|
-
return this.session
|
|
674
|
-
extraHeaders
|
|
691
|
+
return this.session
|
|
692
|
+
.sendInfo(headers_1.CONTENT_TYPE_MIC, undefined, Object.assign(Object.assign({}, options), { extraHeaders }))
|
|
693
|
+
.catch((error) => {
|
|
694
|
+
if ((0, errors_1.hasDeclineResponseFromServer)(error)) {
|
|
695
|
+
throw error;
|
|
696
|
+
}
|
|
697
|
+
return;
|
|
675
698
|
});
|
|
676
699
|
}
|
|
677
700
|
startPresentation(stream, { isNeedReinvite = true, isP2P = false, maxBitrate, } = {}) {
|
|
701
|
+
const session = this.establishedSession;
|
|
702
|
+
if (!session) {
|
|
703
|
+
return Promise.reject(new Error('No session established'));
|
|
704
|
+
}
|
|
678
705
|
this.isPendingPresentation = true;
|
|
679
706
|
const streamPresentationCurrent = (0, utils_1.prepareMediaStream)(stream);
|
|
680
707
|
this._streamPresentationCurrent = streamPresentationCurrent;
|
|
@@ -682,29 +709,28 @@ class SipConnector {
|
|
|
682
709
|
const preparatoryHeaders = isP2P
|
|
683
710
|
? [headers_1.HEADER_START_PRESENTATION_P2P]
|
|
684
711
|
: [headers_1.HEADER_START_PRESENTATION];
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
}
|
|
712
|
+
result = session
|
|
713
|
+
.sendInfo(headers_1.CONTENT_TYPE_SHARE_STATE, undefined, {
|
|
714
|
+
extraHeaders: preparatoryHeaders,
|
|
715
|
+
})
|
|
716
|
+
.then(() => {
|
|
717
|
+
return session.startPresentation(streamPresentationCurrent, isNeedReinvite);
|
|
718
|
+
})
|
|
719
|
+
.then(() => {
|
|
720
|
+
const { connection } = this;
|
|
721
|
+
if (!connection || maxBitrate === undefined) {
|
|
722
|
+
return undefined;
|
|
723
|
+
}
|
|
724
|
+
const senders = connection.getSenders();
|
|
725
|
+
return (0, scaleBitrate_1.default)(senders, stream, maxBitrate);
|
|
726
|
+
})
|
|
727
|
+
.then(() => {
|
|
728
|
+
return stream;
|
|
729
|
+
})
|
|
730
|
+
.catch((error) => {
|
|
731
|
+
this._sessionEvents.trigger(constants_1.PRESENTATION_FAILED, error);
|
|
732
|
+
throw error;
|
|
733
|
+
});
|
|
708
734
|
return result.finally(() => {
|
|
709
735
|
this.isPendingPresentation = false;
|
|
710
736
|
});
|
|
@@ -714,19 +740,21 @@ class SipConnector {
|
|
|
714
740
|
const streamPresentationPrev = this._streamPresentationCurrent;
|
|
715
741
|
let result = Promise.resolve();
|
|
716
742
|
const preparatoryHeaders = isP2P ? [headers_1.HEADER_STOP_PRESENTATION_P2P] : [headers_1.HEADER_STOP_PRESENTATION];
|
|
717
|
-
|
|
718
|
-
|
|
743
|
+
const session = this.establishedSession;
|
|
744
|
+
if (session && streamPresentationPrev) {
|
|
745
|
+
result = session
|
|
746
|
+
.sendInfo(headers_1.CONTENT_TYPE_SHARE_STATE, undefined, {
|
|
719
747
|
extraHeaders: preparatoryHeaders,
|
|
720
748
|
})
|
|
721
749
|
.then(() => {
|
|
722
|
-
return
|
|
750
|
+
return session.stopPresentation(streamPresentationPrev);
|
|
723
751
|
})
|
|
724
752
|
.catch((error) => {
|
|
725
753
|
this._sessionEvents.trigger(constants_1.PRESENTATION_FAILED, error);
|
|
726
754
|
throw error;
|
|
727
755
|
});
|
|
728
756
|
}
|
|
729
|
-
if (!
|
|
757
|
+
if (!session && streamPresentationPrev) {
|
|
730
758
|
this._sessionEvents.trigger(constants_1.PRESENTATION_ENDED, streamPresentationPrev);
|
|
731
759
|
}
|
|
732
760
|
return result.finally(() => {
|
|
@@ -761,18 +789,6 @@ class SipConnector {
|
|
|
761
789
|
offSession(eventName, handler) {
|
|
762
790
|
this._sessionEvents.off(eventName, handler);
|
|
763
791
|
}
|
|
764
|
-
isMutedVideo() {
|
|
765
|
-
if (!this.session) {
|
|
766
|
-
return undefined;
|
|
767
|
-
}
|
|
768
|
-
return this.session.isMuted().video;
|
|
769
|
-
}
|
|
770
|
-
isMutedAudio() {
|
|
771
|
-
if (!this.session) {
|
|
772
|
-
return undefined;
|
|
773
|
-
}
|
|
774
|
-
return this.session.isMuted().audio;
|
|
775
|
-
}
|
|
776
792
|
isConfigured() {
|
|
777
793
|
return !!this.ua;
|
|
778
794
|
}
|
|
@@ -815,8 +831,8 @@ class SipConnector {
|
|
|
815
831
|
this._cancelableCall.requested ||
|
|
816
832
|
this._cancelableAnswer.requested);
|
|
817
833
|
}
|
|
818
|
-
get
|
|
819
|
-
return this.session && this.session.isEstablished();
|
|
834
|
+
get establishedSession() {
|
|
835
|
+
return this.session && this.session.isEstablished() ? this.session : undefined;
|
|
820
836
|
}
|
|
821
837
|
get isRegistered() {
|
|
822
838
|
return !!this.ua && this.ua.isRegistered();
|
|
@@ -894,6 +910,9 @@ class SipConnector {
|
|
|
894
910
|
return this.waitSession(constants_1.CHANNELS);
|
|
895
911
|
}
|
|
896
912
|
sendChannels({ inputChannels, outputChannels }) {
|
|
913
|
+
if (!this.session) {
|
|
914
|
+
throw new Error('No session established');
|
|
915
|
+
}
|
|
897
916
|
const headerInputChannels = `${headers_1.HEADER_INPUT_CHANNELS}: ${inputChannels}`;
|
|
898
917
|
const headerOutputChannels = `${headers_1.HEADER_OUTPUT_CHANNELS}: ${outputChannels}`;
|
|
899
918
|
const extraHeaders = [
|
|
@@ -902,7 +921,10 @@ class SipConnector {
|
|
|
902
921
|
];
|
|
903
922
|
this.session.sendInfo(headers_1.CONTENT_TYPE_CHANNELS, undefined, { extraHeaders });
|
|
904
923
|
}
|
|
905
|
-
sendMediaState({ cam, mic }) {
|
|
924
|
+
sendMediaState({ cam, mic }, options = { noTerminateWhenError: true }) {
|
|
925
|
+
if (!this.session) {
|
|
926
|
+
throw new Error('No session established');
|
|
927
|
+
}
|
|
906
928
|
const headerMediaState = `${headers_1.HEADER_MEDIA_STATE}: currentstate`;
|
|
907
929
|
const headerCam = `${headers_1.HEADER_MAIN_CAM_STATE}: ${+cam}`;
|
|
908
930
|
const headerMic = `${headers_1.HEADER_MIC_STATE}: ${+mic}`;
|
|
@@ -911,7 +933,7 @@ class SipConnector {
|
|
|
911
933
|
headerCam,
|
|
912
934
|
headerMic,
|
|
913
935
|
];
|
|
914
|
-
this.session.sendInfo(headers_1.CONTENT_TYPE_MEDIA_STATE, undefined, { extraHeaders });
|
|
936
|
+
this.session.sendInfo(headers_1.CONTENT_TYPE_MEDIA_STATE, undefined, Object.assign(Object.assign({}, options), { extraHeaders }));
|
|
915
937
|
}
|
|
916
938
|
}
|
|
917
939
|
exports.default = SipConnector;
|