@wazo/sdk 0.37.33 → 0.37.36
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 +1 -0
- package/dist/wazo-sdk.js +2 -2
- package/esm/__tests__/api-client.test.js +17 -0
- package/esm/__tests__/web-rtc-client.test.js +18 -1
- package/esm/api/auth.js +5 -0
- package/esm/api/call-logd.js +6 -0
- package/esm/api/chatd.js +6 -0
- package/esm/api/confd.js +6 -0
- package/esm/api-client.js +17 -0
- package/esm/checker/Checker.js +18 -1
- package/esm/checker/checks/aor.js +17 -0
- package/esm/checker/checks/api.js +17 -0
- package/esm/checker/checks/index.js +18 -1
- package/esm/checker/checks/webrtc-transport.js +18 -1
- package/esm/checker/checks/webrtc.js +18 -1
- package/esm/domain/AdHocAPIConference.js +21 -0
- package/esm/domain/CallLog.js +6 -0
- package/esm/domain/CallSession.js +14 -0
- package/esm/domain/Features.js +17 -0
- package/esm/domain/Phone/CTIPhone.js +31 -0
- package/esm/domain/Phone/WebRTCPhone.js +65 -15
- package/esm/domain/Profile.js +6 -0
- package/esm/domain/__tests__/CallLog.test.js +10 -0
- package/esm/domain/__tests__/CallSession.test.js +14 -0
- package/esm/domain/__tests__/IndirectTransfer.test.js +14 -0
- package/esm/domain/__tests__/Profile.test.js +6 -0
- package/esm/domain/__tests__/Room.test.js +14 -0
- package/esm/domain/__tests__/Session.test.js +6 -0
- package/esm/index.js +93 -22
- package/esm/service/CallApi.js +17 -0
- package/esm/service/getApiClient.js +17 -0
- package/esm/simple/Auth.js +93 -22
- package/esm/simple/Configuration.js +93 -22
- package/esm/simple/Directory.js +17 -0
- package/esm/simple/Phone.js +93 -22
- package/esm/simple/index.js +93 -22
- package/esm/simple/room/LocalParticipant.js +93 -22
- package/esm/simple/room/Participant.js +93 -22
- package/esm/simple/room/RemoteParticipant.js +93 -22
- package/esm/simple/room/Room.js +93 -22
- package/esm/simple/room/SipRoom.js +93 -22
- package/esm/simple/room/Stream.js +93 -22
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +93 -22
- package/esm/simple/utils.js +93 -22
- package/esm/web-rtc-client.js +18 -1
- package/lib/__tests__/api-client.test.js +17 -0
- package/lib/__tests__/web-rtc-client.test.js +18 -1
- package/lib/api/auth.js +5 -0
- package/lib/api/call-logd.js +6 -0
- package/lib/api/chatd.js +6 -0
- package/lib/api/confd.js +6 -0
- package/lib/api-client.js +17 -0
- package/lib/checker/Checker.js +18 -1
- package/lib/checker/checks/aor.js +17 -0
- package/lib/checker/checks/api.js +17 -0
- package/lib/checker/checks/index.js +18 -1
- package/lib/checker/checks/webrtc-transport.js +18 -1
- package/lib/checker/checks/webrtc.js +18 -1
- package/lib/domain/AdHocAPIConference.js +21 -0
- package/lib/domain/CallLog.js +6 -0
- package/lib/domain/CallSession.js +14 -0
- package/lib/domain/Features.js +17 -0
- package/lib/domain/Phone/CTIPhone.js +31 -0
- package/lib/domain/Phone/WebRTCPhone.js +65 -15
- package/lib/domain/Profile.js +6 -0
- package/lib/domain/__tests__/CallLog.test.js +10 -0
- package/lib/domain/__tests__/CallSession.test.js +14 -0
- package/lib/domain/__tests__/IndirectTransfer.test.js +14 -0
- package/lib/domain/__tests__/Profile.test.js +6 -0
- package/lib/domain/__tests__/Room.test.js +14 -0
- package/lib/domain/__tests__/Session.test.js +6 -0
- package/lib/index.js +93 -22
- package/lib/service/CallApi.js +17 -0
- package/lib/service/getApiClient.js +17 -0
- package/lib/simple/Auth.js +93 -22
- package/lib/simple/Configuration.js +93 -22
- package/lib/simple/Directory.js +17 -0
- package/lib/simple/Phone.js +93 -22
- package/lib/simple/index.js +93 -22
- package/lib/simple/room/LocalParticipant.js +93 -22
- package/lib/simple/room/Participant.js +93 -22
- package/lib/simple/room/RemoteParticipant.js +93 -22
- package/lib/simple/room/Room.js +93 -22
- package/lib/simple/room/SipRoom.js +93 -22
- package/lib/simple/room/Stream.js +93 -22
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +93 -22
- package/lib/simple/utils.js +93 -22
- package/lib/web-rtc-client.js +18 -1
- package/package.json +1 -1
- package/src/api/auth.js +5 -0
- package/src/domain/AdHocAPIConference.js +4 -0
- package/src/domain/CallLog.js +6 -0
- package/src/domain/CallSession.js +14 -0
- package/src/domain/Phone/WebRTCPhone.js +51 -15
- package/src/domain/Profile.js +6 -0
- package/src/domain/__tests__/CallLog.test.js +4 -0
- package/src/simple/Phone.js +6 -6
- package/src/web-rtc-client.js +1 -1
|
@@ -1081,6 +1081,7 @@ const LINE_STATE = {
|
|
|
1081
1081
|
|
|
1082
1082
|
|
|
1083
1083
|
|
|
1084
|
+
|
|
1084
1085
|
|
|
1085
1086
|
|
|
1086
1087
|
|
|
@@ -1117,6 +1118,7 @@ const LINE_STATE = {
|
|
|
1117
1118
|
|
|
1118
1119
|
|
|
1119
1120
|
|
|
1121
|
+
|
|
1120
1122
|
|
|
1121
1123
|
|
|
1122
1124
|
|
|
@@ -1148,6 +1150,7 @@ class Profile {
|
|
|
1148
1150
|
|
|
1149
1151
|
|
|
1150
1152
|
|
|
1153
|
+
|
|
1151
1154
|
|
|
1152
1155
|
|
|
1153
1156
|
|
|
@@ -1164,6 +1167,7 @@ class Profile {
|
|
|
1164
1167
|
lines: plain.lines.map(line => Line.parse(line)),
|
|
1165
1168
|
username: plain.username,
|
|
1166
1169
|
mobileNumber: plain.mobile_phone_number || '',
|
|
1170
|
+
ringSeconds: plain.ring_seconds,
|
|
1167
1171
|
forwards: [
|
|
1168
1172
|
ForwardOption.parse(plain.forwards.unconditional, FORWARD_KEYS.UNCONDITIONAL),
|
|
1169
1173
|
ForwardOption.parse(plain.forwards.noanswer, FORWARD_KEYS.NO_ANSWER),
|
|
@@ -1200,6 +1204,7 @@ class Profile {
|
|
|
1200
1204
|
switchboards,
|
|
1201
1205
|
agent,
|
|
1202
1206
|
status,
|
|
1207
|
+
ringSeconds,
|
|
1203
1208
|
sipLines,
|
|
1204
1209
|
callPickupTargetUsers,
|
|
1205
1210
|
onlineCallRecordEnabled,
|
|
@@ -1221,6 +1226,7 @@ class Profile {
|
|
|
1221
1226
|
this.status = status;
|
|
1222
1227
|
this.callPickupTargetUsers = callPickupTargetUsers;
|
|
1223
1228
|
this.onlineCallRecordEnabled = onlineCallRecordEnabled;
|
|
1229
|
+
this.ringSeconds = ringSeconds;
|
|
1224
1230
|
|
|
1225
1231
|
this.sipLines = sipLines || [];
|
|
1226
1232
|
}
|
|
@@ -2226,6 +2232,7 @@ var authMethods = (client , baseUrl ) => ({
|
|
|
2226
2232
|
|
|
2227
2233
|
|
|
2228
2234
|
|
|
2235
|
+
|
|
2229
2236
|
) {
|
|
2230
2237
|
const body = {
|
|
2231
2238
|
backend: params.backend || DEFAULT_BACKEND_USER,
|
|
@@ -2245,6 +2252,10 @@ var authMethods = (client , baseUrl ) => ({
|
|
|
2245
2252
|
headers['Wazo-Session-Type'] = 'mobile';
|
|
2246
2253
|
}
|
|
2247
2254
|
|
|
2255
|
+
if (params.tenantId) {
|
|
2256
|
+
body.tenant_id = params.tenantId;
|
|
2257
|
+
}
|
|
2258
|
+
|
|
2248
2259
|
return client.post(`${baseUrl}/token`, body, headers).then(response => Session.parse(response));
|
|
2249
2260
|
},
|
|
2250
2261
|
|
|
@@ -3285,6 +3296,7 @@ var updateFrom = (instance , from ) => {
|
|
|
3285
3296
|
|
|
3286
3297
|
|
|
3287
3298
|
|
|
3299
|
+
|
|
3288
3300
|
|
|
3289
3301
|
|
|
3290
3302
|
class CallSession {
|
|
@@ -3347,6 +3359,8 @@ class CallSession {
|
|
|
3347
3359
|
|
|
3348
3360
|
|
|
3349
3361
|
|
|
3362
|
+
|
|
3363
|
+
|
|
3350
3364
|
|
|
3351
3365
|
|
|
3352
3366
|
|
|
@@ -3378,6 +3392,7 @@ class CallSession {
|
|
|
3378
3392
|
videoRemotelyDowngraded,
|
|
3379
3393
|
sipSession,
|
|
3380
3394
|
answerTime,
|
|
3395
|
+
conference,
|
|
3381
3396
|
} ) {
|
|
3382
3397
|
this.callId = callId;
|
|
3383
3398
|
this.sipCallId = sipCallId;
|
|
@@ -3406,6 +3421,7 @@ class CallSession {
|
|
|
3406
3421
|
this.videoRemotelyDowngraded = videoRemotelyDowngraded;
|
|
3407
3422
|
this.sipSession = sipSession;
|
|
3408
3423
|
this.answerTime = answerTime || this.answerTime;
|
|
3424
|
+
this.conference = conference;
|
|
3409
3425
|
|
|
3410
3426
|
// Useful to compare instead of instanceof with minified code
|
|
3411
3427
|
this.type = 'CallSession';
|
|
@@ -3463,6 +3479,10 @@ class CallSession {
|
|
|
3463
3479
|
this.screensharing = false;
|
|
3464
3480
|
}
|
|
3465
3481
|
|
|
3482
|
+
setIsConference(conference ) {
|
|
3483
|
+
this.conference = conference;
|
|
3484
|
+
}
|
|
3485
|
+
|
|
3466
3486
|
isIncoming() {
|
|
3467
3487
|
return !this.isCaller && !this.answered;
|
|
3468
3488
|
}
|
|
@@ -3539,6 +3559,10 @@ class CallSession {
|
|
|
3539
3559
|
return this.sipStatus === sessionState.SessionState.Terminated;
|
|
3540
3560
|
}
|
|
3541
3561
|
|
|
3562
|
+
isConference() {
|
|
3563
|
+
return this.conference;
|
|
3564
|
+
}
|
|
3565
|
+
|
|
3542
3566
|
getElapsedTimeInSeconds() {
|
|
3543
3567
|
if (!this.startTime) {
|
|
3544
3568
|
return 0;
|
|
@@ -3630,6 +3654,7 @@ class CallSession {
|
|
|
3630
3654
|
cameraEnabled: false,
|
|
3631
3655
|
dialedExtension: call.dialedExtension,
|
|
3632
3656
|
call,
|
|
3657
|
+
conference: false, // @FIXME?
|
|
3633
3658
|
});
|
|
3634
3659
|
}
|
|
3635
3660
|
}
|
|
@@ -3719,11 +3744,13 @@ class Recording {
|
|
|
3719
3744
|
|
|
3720
3745
|
|
|
3721
3746
|
|
|
3747
|
+
|
|
3722
3748
|
|
|
3723
3749
|
|
|
3724
3750
|
|
|
3725
3751
|
|
|
3726
3752
|
|
|
3753
|
+
|
|
3727
3754
|
|
|
3728
3755
|
|
|
3729
3756
|
|
|
@@ -3744,10 +3771,12 @@ class Recording {
|
|
|
3744
3771
|
|
|
3745
3772
|
|
|
3746
3773
|
|
|
3774
|
+
|
|
3747
3775
|
|
|
3748
3776
|
|
|
3749
3777
|
|
|
3750
3778
|
|
|
3779
|
+
|
|
3751
3780
|
|
|
3752
3781
|
|
|
3753
3782
|
|
|
@@ -3809,10 +3838,12 @@ class CallLog {
|
|
|
3809
3838
|
|| plain.destination_extension
|
|
3810
3839
|
|| `meeting-${plain.requested_name || plain.destination_name || ''}`,
|
|
3811
3840
|
name: plain.requested_name || plain.destination_name || '',
|
|
3841
|
+
uuid: plain.destination_user_uuid,
|
|
3812
3842
|
},
|
|
3813
3843
|
source: {
|
|
3814
3844
|
extension: plain.source_extension,
|
|
3815
3845
|
name: plain.source_name,
|
|
3846
|
+
uuid: plain.source_user_uuid,
|
|
3816
3847
|
},
|
|
3817
3848
|
id: plain.id,
|
|
3818
3849
|
duration: (plain.duration || 0) * 1000, // duration is in seconds
|
|
@@ -5919,6 +5950,10 @@ class AdHocAPIConference {
|
|
|
5919
5950
|
this.conferenceId = conferenceId || '';
|
|
5920
5951
|
this.muted = muted || false;
|
|
5921
5952
|
this.paused = paused || false;
|
|
5953
|
+
|
|
5954
|
+
if (this.host) {
|
|
5955
|
+
this.host.setIsConference(true);
|
|
5956
|
+
}
|
|
5922
5957
|
}
|
|
5923
5958
|
|
|
5924
5959
|
async start() {
|
|
@@ -6673,7 +6708,7 @@ const events$1 = [REGISTERED, UNREGISTERED, REGISTRATION_FAILED, INVITE];
|
|
|
6673
6708
|
const transportEvents = [CONNECTED, DISCONNECTED, TRANSPORT_ERROR, MESSAGE];
|
|
6674
6709
|
class CanceledCallError extends Error {}
|
|
6675
6710
|
|
|
6676
|
-
const MAX_REGISTER_TRIES =
|
|
6711
|
+
const MAX_REGISTER_TRIES = 5;
|
|
6677
6712
|
|
|
6678
6713
|
|
|
6679
6714
|
|
|
@@ -9628,7 +9663,11 @@ class WebRTCPhone extends Emitter {
|
|
|
9628
9663
|
accept(callSession , cameraEnabled ) {
|
|
9629
9664
|
logger$7.info('WebRTC phone - accept call', { id: callSession ? callSession.getId() : 'n/a', cameraEnabled });
|
|
9630
9665
|
if (this.currentSipSession) {
|
|
9631
|
-
this.holdSipSession(
|
|
9666
|
+
this.holdSipSession(
|
|
9667
|
+
this.currentSipSession,
|
|
9668
|
+
this.currentCallSession,
|
|
9669
|
+
true,
|
|
9670
|
+
);
|
|
9632
9671
|
}
|
|
9633
9672
|
|
|
9634
9673
|
if (!callSession) {
|
|
@@ -9636,6 +9675,12 @@ class WebRTCPhone extends Emitter {
|
|
|
9636
9675
|
return Promise.resolve(null);
|
|
9637
9676
|
}
|
|
9638
9677
|
|
|
9678
|
+
const sipSessionId = this.getSipSessionIdFromCallSession(callSession);
|
|
9679
|
+
if (sipSessionId && !(sipSessionId in this.callSessions)) {
|
|
9680
|
+
logger$7.warn('Call session already ended or not found, can\'t accept it.', { sipSessionId });
|
|
9681
|
+
return Promise.resolve(null);
|
|
9682
|
+
}
|
|
9683
|
+
|
|
9639
9684
|
if (callSession.getId() in this.acceptedSessions) {
|
|
9640
9685
|
logger$7.warn('CallSession already accepted.', { id: callSession ? callSession.getId() : 'n/a' });
|
|
9641
9686
|
return Promise.resolve(callSession.sipCallId);
|
|
@@ -9715,22 +9760,22 @@ class WebRTCPhone extends Emitter {
|
|
|
9715
9760
|
}
|
|
9716
9761
|
}
|
|
9717
9762
|
|
|
9718
|
-
hold(callSession , withEvent = true
|
|
9763
|
+
hold(callSession , withEvent = true) {
|
|
9719
9764
|
logger$7.info('WebRTC hold', { id: callSession.getId() });
|
|
9720
9765
|
|
|
9721
9766
|
const sipSession = this.findSipSession(callSession);
|
|
9722
9767
|
|
|
9723
|
-
return sipSession ? this.holdSipSession(sipSession, callSession, withEvent
|
|
9768
|
+
return sipSession ? this.holdSipSession(sipSession, callSession, withEvent) : null;
|
|
9724
9769
|
}
|
|
9725
9770
|
|
|
9726
9771
|
// @Deprecated
|
|
9727
|
-
unhold(callSession , withEvent = true
|
|
9772
|
+
unhold(callSession , withEvent = true) {
|
|
9728
9773
|
console.warn('Please note that `phone.unhold()` is being deprecated; `phone.resume()` is the preferred method');
|
|
9729
9774
|
|
|
9730
|
-
return this.resume(callSession,
|
|
9775
|
+
return this.resume(callSession, withEvent);
|
|
9731
9776
|
}
|
|
9732
9777
|
|
|
9733
|
-
resume(callSession ,
|
|
9778
|
+
resume(callSession , withEvent = true) {
|
|
9734
9779
|
logger$7.info('WebRTC resume called', { id: callSession ? callSession.getId() : null });
|
|
9735
9780
|
|
|
9736
9781
|
const sipSession = this.findSipSession(callSession);
|
|
@@ -9743,10 +9788,14 @@ class WebRTCPhone extends Emitter {
|
|
|
9743
9788
|
// Hold current session if different from the current one (we don't want 2 sessions active at the same time).
|
|
9744
9789
|
if (this.currentSipSession && this.currentSipSession.id !== sipSession.id) {
|
|
9745
9790
|
logger$7.info('WebRTC hold call after resume', { id: this.currentSipSession.id });
|
|
9746
|
-
this.holdSipSession(
|
|
9791
|
+
this.holdSipSession(
|
|
9792
|
+
this.currentSipSession,
|
|
9793
|
+
this.currentCallSession,
|
|
9794
|
+
withEvent,
|
|
9795
|
+
);
|
|
9747
9796
|
}
|
|
9748
9797
|
|
|
9749
|
-
const promise = this.unholdSipSession(sipSession, callSession, withEvent
|
|
9798
|
+
const promise = this.unholdSipSession(sipSession, callSession, withEvent);
|
|
9750
9799
|
this.currentSipSession = sipSession;
|
|
9751
9800
|
if (callSession) {
|
|
9752
9801
|
this.currentCallSession = callSession;
|
|
@@ -9759,7 +9808,6 @@ class WebRTCPhone extends Emitter {
|
|
|
9759
9808
|
sipSession ,
|
|
9760
9809
|
callSession ,
|
|
9761
9810
|
withEvent = true,
|
|
9762
|
-
isConference = false,
|
|
9763
9811
|
) {
|
|
9764
9812
|
if (!sipSession) {
|
|
9765
9813
|
return new Promise((resolve, reject) => reject(new Error('No session to hold')));
|
|
@@ -9780,6 +9828,8 @@ class WebRTCPhone extends Emitter {
|
|
|
9780
9828
|
await this.client.downgradeToAudio(sipSession);
|
|
9781
9829
|
}
|
|
9782
9830
|
|
|
9831
|
+
const isConference = !!callSession && callSession.isConference();
|
|
9832
|
+
|
|
9783
9833
|
const promise = this.client.hold(sipSession, isConference, hasVideo);
|
|
9784
9834
|
if (withEvent) {
|
|
9785
9835
|
this.eventEmitter.emit(ON_CALL_HELD, this._createCallSession(sipSession, callSession));
|
|
@@ -9792,11 +9842,13 @@ class WebRTCPhone extends Emitter {
|
|
|
9792
9842
|
sipSession ,
|
|
9793
9843
|
callSession ,
|
|
9794
9844
|
withEvent = true,
|
|
9795
|
-
isConference = false,
|
|
9796
9845
|
) {
|
|
9797
9846
|
if (!sipSession) {
|
|
9798
9847
|
return new Promise((resolve, reject) => reject(new Error('No session to unhold')));
|
|
9799
9848
|
}
|
|
9849
|
+
|
|
9850
|
+
const isConference = !!callSession && callSession.isConference();
|
|
9851
|
+
|
|
9800
9852
|
const sessionId = this.getSipSessionId(sipSession);
|
|
9801
9853
|
logger$7.info('WebRTC unhold sip session', { sessionId, isConference });
|
|
9802
9854
|
|
|
@@ -9938,7 +9990,11 @@ class WebRTCPhone extends Emitter {
|
|
|
9938
9990
|
await this.client.register();
|
|
9939
9991
|
}
|
|
9940
9992
|
if (this.currentSipSession) {
|
|
9941
|
-
this.holdSipSession(
|
|
9993
|
+
this.holdSipSession(
|
|
9994
|
+
this.currentSipSession,
|
|
9995
|
+
this.currentCallSession,
|
|
9996
|
+
true,
|
|
9997
|
+
).catch(e => {
|
|
9942
9998
|
logger$7.warn('Unable to hold current session when making another call', e);
|
|
9943
9999
|
});
|
|
9944
10000
|
}
|
|
@@ -9953,6 +10009,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9953
10009
|
return Promise.resolve(null);
|
|
9954
10010
|
}
|
|
9955
10011
|
const callSession = this._createOutgoingCallSession(sipSession, cameraEnabled || false);
|
|
10012
|
+
callSession.setIsConference(conference);
|
|
9956
10013
|
callSession.creationTime = new Date();
|
|
9957
10014
|
this._updateCallSession(callSession);
|
|
9958
10015
|
|
|
@@ -10260,9 +10317,17 @@ class WebRTCPhone extends Emitter {
|
|
|
10260
10317
|
});
|
|
10261
10318
|
|
|
10262
10319
|
this.client.on(this.client.ACCEPTED, (sipSession ) => {
|
|
10263
|
-
|
|
10320
|
+
const sessionId = this.getSipSessionId(sipSession);
|
|
10321
|
+
const hasSession = sessionId in this.callSessions;
|
|
10264
10322
|
|
|
10265
|
-
|
|
10323
|
+
logger$7.info('WebRTC call accepted', { sipId: sessionId, hasSession });
|
|
10324
|
+
|
|
10325
|
+
if (!hasSession) {
|
|
10326
|
+
logger$7.warn('Call accepted ignored, session is no longer present in the WebRtcPhone', { sessionId });
|
|
10327
|
+
return;
|
|
10328
|
+
}
|
|
10329
|
+
|
|
10330
|
+
this._onCallAccepted(sipSession, this.client.hasVideo(sessionId));
|
|
10266
10331
|
|
|
10267
10332
|
if (this.audioOutputDeviceId) {
|
|
10268
10333
|
this.client.changeAudioOutputDevice(this.audioOutputDeviceId);
|
|
@@ -10398,9 +10463,14 @@ class WebRTCPhone extends Emitter {
|
|
|
10398
10463
|
return this.client.getSipSessionId(sipSession);
|
|
10399
10464
|
}
|
|
10400
10465
|
|
|
10401
|
-
|
|
10466
|
+
getSipSessionIdFromCallSession(callSession ) {
|
|
10402
10467
|
const sipSession = this.findSipSession(callSession);
|
|
10403
|
-
|
|
10468
|
+
|
|
10469
|
+
return sipSession ? this.getSipSessionId(sipSession) : null;
|
|
10470
|
+
}
|
|
10471
|
+
|
|
10472
|
+
_updateCallSession(callSession ) {
|
|
10473
|
+
const sipSessionId = this.getSipSessionIdFromCallSession(callSession);
|
|
10404
10474
|
|
|
10405
10475
|
if (sipSessionId) {
|
|
10406
10476
|
this.callSessions[sipSessionId] = callSession;
|
|
@@ -10518,6 +10588,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10518
10588
|
recording: fromSession ? fromSession.isRecording() : false,
|
|
10519
10589
|
recordingPaused: false, // @TODO
|
|
10520
10590
|
sipSession,
|
|
10591
|
+
conference: !!fromSession && fromSession.isConference(),
|
|
10521
10592
|
...extra,
|
|
10522
10593
|
});
|
|
10523
10594
|
|
|
@@ -10774,16 +10845,16 @@ class Phone extends Emitter {
|
|
|
10774
10845
|
}
|
|
10775
10846
|
}
|
|
10776
10847
|
|
|
10777
|
-
hold(callSession
|
|
10778
|
-
return this.phone && this.phone.hold(callSession, true
|
|
10848
|
+
hold(callSession ) {
|
|
10849
|
+
return this.phone && this.phone.hold(callSession, true);
|
|
10779
10850
|
}
|
|
10780
10851
|
|
|
10781
|
-
unhold(callSession
|
|
10782
|
-
return this.phone && this.phone.unhold(callSession, true
|
|
10852
|
+
unhold(callSession ) {
|
|
10853
|
+
return this.phone && this.phone.unhold(callSession, true);
|
|
10783
10854
|
}
|
|
10784
10855
|
|
|
10785
|
-
resume(callSession
|
|
10786
|
-
return this.phone && this.phone.resume(callSession
|
|
10856
|
+
resume(callSession ) {
|
|
10857
|
+
return this.phone && this.phone.resume(callSession);
|
|
10787
10858
|
}
|
|
10788
10859
|
|
|
10789
10860
|
reject(callSession ) {
|