@wazo/sdk 1.0.0-alpha.2 → 1.0.0-alpha.4
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/wazo-sdk.js +2 -2
- package/esm/__tests__/__voice__/call.test.js +1 -0
- package/esm/domain/Phone/CTIPhone.js +2 -2
- package/esm/index.js +3 -1
- package/esm/service/CallApi.js +4 -4
- package/esm/simple/index.js +2 -1
- package/esm/state-machine/call-state-machine.js +1 -1
- package/esm/types/domain/Phone/CTIPhone.d.ts.map +1 -1
- package/esm/types/index.d.ts +3 -1
- package/esm/types/index.d.ts.map +1 -1
- package/esm/types/service/CallApi.d.ts +5 -5
- package/esm/types/service/CallApi.d.ts.map +1 -1
- package/esm/types/simple/index.d.ts +3 -1
- package/esm/types/simple/index.d.ts.map +1 -1
- package/esm/types/state-machine/softphone-state-machine.d.ts +1 -1
- package/esm/types/voice/call.d.ts +10 -2
- package/esm/types/voice/call.d.ts.map +1 -1
- package/esm/types/voice/softphone.d.ts +4 -0
- package/esm/types/voice/softphone.d.ts.map +1 -1
- package/esm/voice/call.js +33 -8
- package/esm/voice/softphone.js +11 -2
- package/lib/__tests__/__voice__/call.test.js +1 -0
- package/lib/domain/Phone/CTIPhone.js +2 -2
- package/lib/index.js +7 -3
- package/lib/service/CallApi.js +2 -2
- package/lib/simple/index.js +2 -1
- package/lib/state-machine/call-state-machine.js +1 -1
- package/lib/types/domain/Phone/CTIPhone.d.ts.map +1 -1
- package/lib/types/index.d.ts +3 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/service/CallApi.d.ts +5 -5
- package/lib/types/service/CallApi.d.ts.map +1 -1
- package/lib/types/simple/index.d.ts +3 -1
- package/lib/types/simple/index.d.ts.map +1 -1
- package/lib/types/state-machine/softphone-state-machine.d.ts +1 -1
- package/lib/types/voice/call.d.ts +10 -2
- package/lib/types/voice/call.d.ts.map +1 -1
- package/lib/types/voice/softphone.d.ts +4 -0
- package/lib/types/voice/softphone.d.ts.map +1 -1
- package/lib/voice/call.js +35 -9
- package/lib/voice/softphone.js +14 -2
- package/package.json +1 -1
- package/src/__tests__/__voice__/call.test.ts +1 -0
- package/src/domain/Phone/CTIPhone.ts +3 -2
- package/src/index.ts +4 -1
- package/src/service/CallApi.ts +7 -7
- package/src/simple/index.ts +2 -1
- package/src/state-machine/call-state-machine.ts +1 -1
- package/src/voice/call.ts +42 -10
- package/src/voice/softphone.ts +15 -2
package/lib/types/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export { default as ServerError } from './domain/ServerError';
|
|
|
6
6
|
export { default as InvalidStateTransition } from './domain/InvalidStateTransition';
|
|
7
7
|
export { default as InvalidState } from './domain/InvalidState';
|
|
8
8
|
export { default as SFUNotAvailableError } from './domain/SFUNotAvailableError';
|
|
9
|
-
export { default as
|
|
9
|
+
export { default as ApiCall } from './domain/Call';
|
|
10
10
|
export { default as CallLog } from './domain/CallLog';
|
|
11
11
|
export { default as Recording } from './domain/Recording';
|
|
12
12
|
export { default as ChatMessage } from './domain/ChatMessage';
|
|
@@ -52,6 +52,8 @@ export { default as WazoApiClient } from './api-client';
|
|
|
52
52
|
export { default as Agent, AgentResponse, AgentArguments } from './domain/Agent';
|
|
53
53
|
export { default as ExternalApp } from './domain/ExternalApp';
|
|
54
54
|
export { default as SessionDescriptionHandler } from './lib/WazoSessionDescriptionHandler';
|
|
55
|
+
export { default as Call } from './voice/call';
|
|
56
|
+
export { Softphone } from './voice/softphone';
|
|
55
57
|
export * from './types/WebSocketMessage';
|
|
56
58
|
export * from './utils/PhoneNumberUtil';
|
|
57
59
|
export * from './utils/string';
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAElC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import
|
|
1
|
+
import ApiCall from '../domain/Call';
|
|
2
|
+
import Call from '../voice/call';
|
|
2
3
|
import CallLog from '../domain/CallLog';
|
|
3
4
|
import Line from '../domain/Line';
|
|
4
5
|
import Session from '../domain/Session';
|
|
5
6
|
import Relocation from '../domain/Relocation';
|
|
6
|
-
import CallSession from '../domain/CallSession';
|
|
7
7
|
import Transfer from '../domain/IndirectTransfer';
|
|
8
8
|
export default class CallApi {
|
|
9
9
|
static fetchCallLogs(offset: number, limit?: number): Promise<CallLog[]>;
|
|
10
10
|
static fetchDistinctCallLogs(offset: number, limit: number, distinct?: string): Promise<CallLog[]>;
|
|
11
|
-
static fetchActiveCalls(): Promise<
|
|
11
|
+
static fetchActiveCalls(): Promise<ApiCall[]>;
|
|
12
12
|
static fetchCallLogsFromDate(from: Date, number: string): Promise<CallLog[]>;
|
|
13
13
|
static search(query: string, limit?: number): Promise<CallLog[]>;
|
|
14
14
|
static searchBy(field: string, value: string, limit?: number): Promise<CallLog[]>;
|
|
15
15
|
static fetchSIP(session: Session, line: Line | null | undefined): Promise<any>;
|
|
16
|
-
static cancelCall(
|
|
17
|
-
static makeCall(callFromLine: Line, extension: string, isMobile?: boolean, callbackAllLines?: boolean): Promise<
|
|
16
|
+
static cancelCall(call: Call): Promise<boolean>;
|
|
17
|
+
static makeCall(callFromLine: Line, extension: string, isMobile?: boolean, callbackAllLines?: boolean): Promise<ApiCall | null | undefined>;
|
|
18
18
|
static relocateCall(callId: string, line: number, contactIdentifier?: string): Promise<Relocation>;
|
|
19
19
|
static hold(callId: string): Promise<boolean>;
|
|
20
20
|
static resume(callId: string): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallApi.d.ts","sourceRoot":"","sources":["../../../src/service/CallApi.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"CallApi.d.ts","sourceRoot":"","sources":["../../../src/service/CallApi.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,IAAI,MAAM,eAAe,CAAC;AACjC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAE9C,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,OAAO;WACb,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAIjE,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAe,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAIjG,gBAAgB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;WAItC,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAIrE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAIzD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAI1E,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;WAKvE,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;WAIxC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,UAAQ,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;WAMhI,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;WAI3F,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAItC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAIxC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAItC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAI1D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAIxC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;WAI7E,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAIxD,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAIvE"}
|
|
@@ -30,6 +30,7 @@ import IndirectTransfer from '../domain/IndirectTransfer';
|
|
|
30
30
|
import SwitchboardCall from '../domain/SwitchboardCall';
|
|
31
31
|
import Meeting from '../domain/Meeting';
|
|
32
32
|
import Checker from '../checker/Checker';
|
|
33
|
+
import { Softphone as SoftphoneClass } from '../voice/softphone';
|
|
33
34
|
import Call from '../voice/call';
|
|
34
35
|
declare const Wazo: {
|
|
35
36
|
Auth: import("./Auth").Auth;
|
|
@@ -107,7 +108,7 @@ declare const Wazo: {
|
|
|
107
108
|
};
|
|
108
109
|
Checker: typeof Checker;
|
|
109
110
|
Voice: {
|
|
110
|
-
Softphone:
|
|
111
|
+
Softphone: SoftphoneClass;
|
|
111
112
|
Call: typeof Call;
|
|
112
113
|
};
|
|
113
114
|
domain: {
|
|
@@ -133,6 +134,7 @@ declare const Wazo: {
|
|
|
133
134
|
SwitchboardCall: typeof SwitchboardCall;
|
|
134
135
|
WebRTCPhone: typeof WebRTCPhone;
|
|
135
136
|
Meeting: typeof Meeting;
|
|
137
|
+
SoftphoneClass: typeof SoftphoneClass;
|
|
136
138
|
};
|
|
137
139
|
readonly api: import("..").WazoApiClient;
|
|
138
140
|
readonly agentd: import("../api/agentd").AgentD;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/simple/index.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGhJ,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AACzD,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,MAAM,MAAM,eAAe,CAAC;AAKnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,oBAAoB,MAAM,gCAAgC,CAAC;AAClE,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,WAAW,MAAM,6BAA6B,CAAC;AACtD,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAChD,OAAO,gBAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAGxD,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,OAAO,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/simple/index.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGhJ,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AACzD,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,MAAM,MAAM,eAAe,CAAC;AAKnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,oBAAoB,MAAM,gCAAgC,CAAC;AAClE,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,WAAW,MAAM,6BAA6B,CAAC;AACtD,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAChD,OAAO,gBAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAGxD,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAEzC,OAAkB,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,IAAI,MAAM,eAAe,CAAC;AAEjC,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwGT,CAAC;AAUF,eAAe,IAAI,CAAC"}
|
|
@@ -13,7 +13,7 @@ export declare const Actions: {
|
|
|
13
13
|
readonly TRANSPORT_CLOSED: "transportClosed";
|
|
14
14
|
};
|
|
15
15
|
export type ActionTypes = typeof Actions[keyof typeof Actions];
|
|
16
|
-
declare const softphoneMachine: import("xstate").StateMachine<import("xstate").MachineContext, import("xstate").AnyEventObject, {}, never, never, never, never, "
|
|
16
|
+
declare const softphoneMachine: import("xstate").StateMachine<import("xstate").MachineContext, import("xstate").AnyEventObject, {}, never, never, never, never, "unregistered" | "registering" | "registered", string, import("xstate").NonReducibleUnknown, import("xstate").NonReducibleUnknown, import("xstate").EventObject, import("xstate").MetaObject, import("xstate").ResolveTypegenMeta<import("xstate").TypegenDisabled, import("xstate").AnyEventObject, never, never, never, never, string, import("xstate").EventObject>>;
|
|
17
17
|
export type SoftphoneActorRef = ActorRefFrom<typeof softphoneMachine>;
|
|
18
18
|
export default softphoneMachine;
|
|
19
19
|
//# sourceMappingURL=softphone-state-machine.d.ts.map
|
|
@@ -15,7 +15,8 @@ export type ReinviteOptions = {
|
|
|
15
15
|
audioOnly?: boolean;
|
|
16
16
|
iceRestart?: boolean;
|
|
17
17
|
};
|
|
18
|
-
export declare const
|
|
18
|
+
export declare const EVENT_CALL_REMOTLY_ACCEPTED = "remotelyAccepted";
|
|
19
|
+
export declare const EVENT_CALL_LOCALLY_ACCEPTED = "locallyAccepted";
|
|
19
20
|
export declare const EVENT_CALL_CANCELED = "canceled";
|
|
20
21
|
export declare const EVENT_PROGRESS = "progress";
|
|
21
22
|
export declare const EVENT_EARLY_MEDIA = "earlyMedia";
|
|
@@ -55,6 +56,7 @@ declare class Call extends EventEmitter {
|
|
|
55
56
|
displayName: string | null;
|
|
56
57
|
number: string | null;
|
|
57
58
|
currentScreenShare: Record<string, any> | null;
|
|
59
|
+
static newFrom(call: Call): any;
|
|
58
60
|
static parseCall(apiCall: ApiCall): Call;
|
|
59
61
|
constructor(sipCall: SipCall, phone: Softphone);
|
|
60
62
|
accept(options?: AcceptOptions): Promise<string | null>;
|
|
@@ -71,7 +73,11 @@ declare class Call extends EventEmitter {
|
|
|
71
73
|
isMuted(): boolean;
|
|
72
74
|
isCameraMuted(): boolean;
|
|
73
75
|
isHeld(): boolean;
|
|
76
|
+
isEstablishing(): boolean;
|
|
74
77
|
isEstablished(): boolean;
|
|
78
|
+
isRinging(): boolean;
|
|
79
|
+
isOutgoing(): boolean;
|
|
80
|
+
isIncoming(): boolean;
|
|
75
81
|
isConference(): boolean;
|
|
76
82
|
transfer(target: string): void;
|
|
77
83
|
atxfer(): Record<string, any> | null | undefined;
|
|
@@ -102,8 +108,10 @@ declare class Call extends EventEmitter {
|
|
|
102
108
|
getLocalVideoStream(): MediaStream | null | undefined;
|
|
103
109
|
hasALocalVideoTrack(): boolean;
|
|
104
110
|
isVideoRemotelyHeld(): boolean;
|
|
105
|
-
isRinging(): boolean;
|
|
106
111
|
onReinvite(request: IncomingRequestMessage, updatedCalleeName: string, updatedNumber: string, hadRemoteVideo: boolean): void;
|
|
112
|
+
updateFrom(call: Call): void;
|
|
113
|
+
is(otherCall: Call): boolean | "";
|
|
114
|
+
shouldAutoAnswer(): boolean;
|
|
107
115
|
get id(): string;
|
|
108
116
|
get state(): StateTypes | Record<StateTypes, EstablishedStateTypes>;
|
|
109
117
|
private _hasEstablishedState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../src/voice/call.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAEhG,OAAyB,EAAsF,KAAK,UAAU,EAAqB,KAAK,qBAAqB,EAAE,KAAK,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAC9O,OAAO,EAAE,OAAO,EAAkB,MAAM,iBAAiB,CAAC;AAC1D,OAAO,OAAO,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../src/voice/call.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ export type CallOptions = {
|
|
|
30
30
|
withCamera?: boolean;
|
|
31
31
|
audioOnly?: boolean;
|
|
32
32
|
conference?: boolean;
|
|
33
|
+
extraHeaders?: Record<string, any>;
|
|
33
34
|
};
|
|
34
35
|
export declare class Softphone extends EventEmitter {
|
|
35
36
|
audioOutputDeviceId?: string;
|
|
@@ -46,6 +47,7 @@ export declare class Softphone extends EventEmitter {
|
|
|
46
47
|
ringingEnabled: boolean;
|
|
47
48
|
constructor();
|
|
48
49
|
connect(options?: Partial<WebRtcConfig>): Promise<void>;
|
|
50
|
+
hangupAllCalls(): Promise<boolean[]>;
|
|
49
51
|
disconnect(): Promise<void | null>;
|
|
50
52
|
getPrimaryWebRtcLine(): SipLine | null;
|
|
51
53
|
connectWithCredentials(server: string, sipLine: SipLine, displayName: string, rawOptions?: Partial<WebRtcConfig>): Promise<void>;
|
|
@@ -67,8 +69,10 @@ export declare class Softphone extends EventEmitter {
|
|
|
67
69
|
changeAudioVolume(volume: number): void;
|
|
68
70
|
changeRingVolume(volume: number): void;
|
|
69
71
|
getCurrentCall(): Call | undefined;
|
|
72
|
+
getActiveCalls(): Call[];
|
|
70
73
|
getIncomingCalls(): Call[];
|
|
71
74
|
get state(): StateTypes;
|
|
75
|
+
get user(): string | undefined;
|
|
72
76
|
getUserAgent(): string;
|
|
73
77
|
isRegistered(): boolean;
|
|
74
78
|
_bindEvents(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"softphone.d.ts","sourceRoot":"","sources":["../../../src/voice/softphone.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAI7C,OAA8B,EAAE,KAAK,iBAAiB,EAAW,KAAK,UAAU,EAAuB,MAAM,0CAA0C,CAAC;AACxJ,OAAO,EAAE,YAAY,EAAW,MAAM,iBAAiB,CAAC;AACxD,OAAO,gBAAgB,MAAM,mBAAmB,CAAC;AAGjD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAG1B,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAC1D,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AACtD,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AACzD,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AACrD,eAAO,MAAM,6BAA6B,yBAAyB,CAAC;AACpE,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"softphone.d.ts","sourceRoot":"","sources":["../../../src/voice/softphone.ts"],"names":[],"mappings":"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"}
|
package/lib/voice/call.js
CHANGED
|
@@ -35,13 +35,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.MESSAGE_TRACK_UPDATED = exports.MESSAGE_TYPE_SIGNAL = exports.MESSAGE_TYPE_CHAT = exports.EVENT_CAMERA_DISABLED = exports.EVENT_CAMERA_RESUMED = exports.EVENT_WEB_RTC_STATS = exports.EVENT_SHARE_SCREEN_ENDED = exports.EVENT_SHARE_SCREEN_STARTED = exports.EVENT_SHARE_SCREEN_ENDING = exports.EVENT_REMOVE_STREAM = exports.EVENT_VIDEO_STREAM = exports.EVENT_AUDIO_STREAM = exports.EVENT_TRACK = exports.EVENT_REINVITE = exports.EVENT_CALL_RESUMED = exports.EVENT_CALL_HELD = exports.EVENT_CALL_UN_MUTED = exports.EVENT_CALL_MUTED = exports.EVENT_CALL_ENDED = exports.EVENT_CALL_TERMINATING = exports.EVENT_CALL_REJECTED = exports.EVENT_CALL_ERROR = exports.EVENT_EARLY_MEDIA = exports.EVENT_PROGRESS = exports.EVENT_CALL_CANCELED = exports.
|
|
38
|
+
exports.MESSAGE_TRACK_UPDATED = exports.MESSAGE_TYPE_SIGNAL = exports.MESSAGE_TYPE_CHAT = exports.EVENT_CAMERA_DISABLED = exports.EVENT_CAMERA_RESUMED = exports.EVENT_WEB_RTC_STATS = exports.EVENT_SHARE_SCREEN_ENDED = exports.EVENT_SHARE_SCREEN_STARTED = exports.EVENT_SHARE_SCREEN_ENDING = exports.EVENT_REMOVE_STREAM = exports.EVENT_VIDEO_STREAM = exports.EVENT_AUDIO_STREAM = exports.EVENT_TRACK = exports.EVENT_REINVITE = exports.EVENT_CALL_RESUMED = exports.EVENT_CALL_HELD = exports.EVENT_CALL_UN_MUTED = exports.EVENT_CALL_MUTED = exports.EVENT_CALL_ENDED = exports.EVENT_CALL_TERMINATING = exports.EVENT_CALL_REJECTED = exports.EVENT_CALL_ERROR = exports.EVENT_EARLY_MEDIA = exports.EVENT_PROGRESS = exports.EVENT_CALL_CANCELED = exports.EVENT_CALL_LOCALLY_ACCEPTED = exports.EVENT_CALL_REMOTLY_ACCEPTED = void 0;
|
|
39
39
|
/* eslint-disable no-underscore-dangle */
|
|
40
40
|
const events_1 = require("events");
|
|
41
41
|
const xstate_1 = require("xstate");
|
|
42
42
|
const invitation_1 = require("sip.js/lib/api/invitation");
|
|
43
43
|
const session_state_1 = require("sip.js/lib/api/session-state");
|
|
44
44
|
const call_state_machine_1 = __importStar(require("../state-machine/call-state-machine"));
|
|
45
|
+
const new_from_1 = __importDefault(require("../utils/new-from"));
|
|
46
|
+
const update_from_1 = __importDefault(require("../utils/update-from"));
|
|
45
47
|
const IssueReporter_1 = __importDefault(require("../service/IssueReporter"));
|
|
46
48
|
const softphone_1 = __importStar(require("./softphone"));
|
|
47
49
|
const sdp_1 = require("../utils/sdp");
|
|
@@ -49,7 +51,8 @@ const utils_1 = require("../state-machine/utils");
|
|
|
49
51
|
const webrtc_1 = require("../utils/webrtc");
|
|
50
52
|
const logger = IssueReporter_1.default.loggerFor('call');
|
|
51
53
|
// Events
|
|
52
|
-
exports.
|
|
54
|
+
exports.EVENT_CALL_REMOTLY_ACCEPTED = 'remotelyAccepted';
|
|
55
|
+
exports.EVENT_CALL_LOCALLY_ACCEPTED = 'locallyAccepted';
|
|
53
56
|
exports.EVENT_CALL_CANCELED = 'canceled';
|
|
54
57
|
exports.EVENT_PROGRESS = 'progress';
|
|
55
58
|
exports.EVENT_EARLY_MEDIA = 'earlyMedia';
|
|
@@ -76,6 +79,9 @@ exports.MESSAGE_TYPE_CHAT = 'message/TYPE_CHAT';
|
|
|
76
79
|
exports.MESSAGE_TYPE_SIGNAL = 'message/TYPE_SIGNAL';
|
|
77
80
|
exports.MESSAGE_TRACK_UPDATED = 'onTrackUpdated';
|
|
78
81
|
class Call extends events_1.EventEmitter {
|
|
82
|
+
static newFrom(call) {
|
|
83
|
+
return (0, new_from_1.default)(call, Call);
|
|
84
|
+
}
|
|
79
85
|
static parseCall(apiCall) {
|
|
80
86
|
const sipCall = {
|
|
81
87
|
id: apiCall.sipCallId,
|
|
@@ -141,6 +147,7 @@ class Call extends events_1.EventEmitter {
|
|
|
141
147
|
this.answerTime = new Date();
|
|
142
148
|
return this.phone.client.answer(this.sipCall, options.withCamera).then(() => {
|
|
143
149
|
logger.info('call - accepted', Object.assign({ id: this.id }, options));
|
|
150
|
+
this.emit(exports.EVENT_CALL_LOCALLY_ACCEPTED, this);
|
|
144
151
|
return this.id;
|
|
145
152
|
}).catch(e => {
|
|
146
153
|
logger.error(e);
|
|
@@ -279,9 +286,21 @@ class Call extends events_1.EventEmitter {
|
|
|
279
286
|
isHeld() {
|
|
280
287
|
return this._hasEstablishedState(call_state_machine_1.EstablishedStates.HELD);
|
|
281
288
|
}
|
|
289
|
+
isEstablishing() {
|
|
290
|
+
return this.sipCall.state === session_state_1.SessionState.Establishing;
|
|
291
|
+
}
|
|
282
292
|
isEstablished() {
|
|
283
293
|
return call_state_machine_1.States.ESTABLISHED in this.state;
|
|
284
294
|
}
|
|
295
|
+
isRinging() {
|
|
296
|
+
return this.state === call_state_machine_1.States.RINGING;
|
|
297
|
+
}
|
|
298
|
+
isOutgoing() {
|
|
299
|
+
return this.sipCall instanceof invitation_1.Invitation;
|
|
300
|
+
}
|
|
301
|
+
isIncoming() {
|
|
302
|
+
return !this.isOutgoing();
|
|
303
|
+
}
|
|
285
304
|
isConference() {
|
|
286
305
|
var _a;
|
|
287
306
|
return (_a = (0, webrtc_1.getPeerConnection)(this.sipCall)) === null || _a === void 0 ? void 0 : _a.sfu;
|
|
@@ -289,7 +308,7 @@ class Call extends events_1.EventEmitter {
|
|
|
289
308
|
transfer(target) {
|
|
290
309
|
(0, utils_1.assertState)(this.callActor, call_state_machine_1.States.ESTABLISHED);
|
|
291
310
|
logger.info('call - transfer', { id: this.id, target });
|
|
292
|
-
this.phone.client.transfer(this.sipCall, target);
|
|
311
|
+
return this.phone.client.transfer(this.sipCall, target);
|
|
293
312
|
}
|
|
294
313
|
atxfer() {
|
|
295
314
|
(0, utils_1.assertState)(this.callActor, call_state_machine_1.States.ESTABLISHED);
|
|
@@ -429,7 +448,7 @@ class Call extends events_1.EventEmitter {
|
|
|
429
448
|
}
|
|
430
449
|
onAccepted() {
|
|
431
450
|
this._sendAction(call_state_machine_1.Actions.REMOTLY_ACCEPTED);
|
|
432
|
-
this.emit(exports.
|
|
451
|
+
this.emit(exports.EVENT_CALL_REMOTLY_ACCEPTED);
|
|
433
452
|
}
|
|
434
453
|
onProgress() {
|
|
435
454
|
this.emit(exports.EVENT_PROGRESS);
|
|
@@ -478,12 +497,18 @@ class Call extends events_1.EventEmitter {
|
|
|
478
497
|
isVideoRemotelyHeld() {
|
|
479
498
|
return (0, webrtc_1.isVideoRemotelyHeld)(this.sipCall);
|
|
480
499
|
}
|
|
481
|
-
isRinging() {
|
|
482
|
-
return this.state === call_state_machine_1.States.RINGING;
|
|
483
|
-
}
|
|
484
500
|
onReinvite(request, updatedCalleeName, updatedNumber, hadRemoteVideo) {
|
|
485
501
|
this.emit(exports.EVENT_REINVITE, request, updatedCalleeName, updatedNumber, hadRemoteVideo);
|
|
486
502
|
}
|
|
503
|
+
updateFrom(call) {
|
|
504
|
+
(0, update_from_1.default)(this, call);
|
|
505
|
+
}
|
|
506
|
+
is(otherCall) {
|
|
507
|
+
return otherCall && this.id && this.id === otherCall.id;
|
|
508
|
+
}
|
|
509
|
+
shouldAutoAnswer() {
|
|
510
|
+
return !!this.sipCall.request.getHeader('alert-info');
|
|
511
|
+
}
|
|
487
512
|
get id() {
|
|
488
513
|
return (0, sdp_1.getSipSessionId)(this.sipCall);
|
|
489
514
|
}
|
|
@@ -492,9 +517,10 @@ class Call extends events_1.EventEmitter {
|
|
|
492
517
|
}
|
|
493
518
|
_hasEstablishedState(establishedState) {
|
|
494
519
|
const state = this.state;
|
|
495
|
-
return call_state_machine_1.States.ESTABLISHED in state && state[call_state_machine_1.States.ESTABLISHED] === establishedState;
|
|
520
|
+
return typeof state === 'object' && call_state_machine_1.States.ESTABLISHED in state && state[call_state_machine_1.States.ESTABLISHED] === establishedState;
|
|
496
521
|
}
|
|
497
522
|
_bindEvents() {
|
|
523
|
+
var _a, _b;
|
|
498
524
|
if (this.sipCall instanceof invitation_1.Invitation) {
|
|
499
525
|
// Monkey patch to know when canceled with the CANCEL message
|
|
500
526
|
const onCancel = this.sipCall._onCancel.bind(this.sipCall);
|
|
@@ -505,7 +531,7 @@ class Call extends events_1.EventEmitter {
|
|
|
505
531
|
this.emit(exports.EVENT_CALL_CANCELED, elsewhere);
|
|
506
532
|
};
|
|
507
533
|
}
|
|
508
|
-
this.sipCall.stateChange.addListener((newState) => {
|
|
534
|
+
(_b = (_a = this.sipCall) === null || _a === void 0 ? void 0 : _a.stateChange) === null || _b === void 0 ? void 0 : _b.addListener((newState) => {
|
|
509
535
|
switch (newState) {
|
|
510
536
|
case session_state_1.SessionState.Terminating:
|
|
511
537
|
logger.info('call - terminating', { id: this.id });
|
package/lib/voice/softphone.js
CHANGED
|
@@ -91,6 +91,11 @@ class Softphone extends events_1.EventEmitter {
|
|
|
91
91
|
this.options.userUuid = session.uuid || '';
|
|
92
92
|
return this.connectWithCredentials(server, this.sipLine, session.displayName(), options);
|
|
93
93
|
}
|
|
94
|
+
hangupAllCalls() {
|
|
95
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
return Promise.all(this.calls.map(call => call.hangup()));
|
|
97
|
+
});
|
|
98
|
+
}
|
|
94
99
|
disconnect() {
|
|
95
100
|
return __awaiter(this, void 0, void 0, function* () {
|
|
96
101
|
(0, utils_1.assertCan)(this.softphoneActor, softphone_state_machine_1.Actions.UNREGISTER);
|
|
@@ -98,7 +103,7 @@ class Softphone extends events_1.EventEmitter {
|
|
|
98
103
|
return null;
|
|
99
104
|
}
|
|
100
105
|
// Terminate all calls
|
|
101
|
-
yield
|
|
106
|
+
yield this.hangupAllCalls();
|
|
102
107
|
return this.client.unregister();
|
|
103
108
|
});
|
|
104
109
|
}
|
|
@@ -275,7 +280,10 @@ class Softphone extends events_1.EventEmitter {
|
|
|
275
280
|
this.audioRingVolume = volume;
|
|
276
281
|
}
|
|
277
282
|
getCurrentCall() {
|
|
278
|
-
return this.
|
|
283
|
+
return this.getActiveCalls()[0];
|
|
284
|
+
}
|
|
285
|
+
getActiveCalls() {
|
|
286
|
+
return this.calls.filter(call => call.isEstablished());
|
|
279
287
|
}
|
|
280
288
|
getIncomingCalls() {
|
|
281
289
|
return this.calls.filter(call => call.isRinging());
|
|
@@ -283,6 +291,10 @@ class Softphone extends events_1.EventEmitter {
|
|
|
283
291
|
get state() {
|
|
284
292
|
return (0, utils_1.getState)(this.softphoneActor);
|
|
285
293
|
}
|
|
294
|
+
get user() {
|
|
295
|
+
var _a, _b, _c, _d;
|
|
296
|
+
return (_d = (_c = (_b = (_a = this.client) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.contact) === null || _c === void 0 ? void 0 : _c.uri) === null || _d === void 0 ? void 0 : _d.user;
|
|
297
|
+
}
|
|
286
298
|
getUserAgent() {
|
|
287
299
|
var _a, _b;
|
|
288
300
|
return ((_b = (_a = this.client) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.userAgentString) || 'softphone';
|
package/package.json
CHANGED
|
@@ -79,6 +79,7 @@ describe('Call', () => {
|
|
|
79
79
|
expect(call.answerTime).toStrictEqual(apiCall.startingTime);
|
|
80
80
|
expect(call.isMuted()).toBeTruthy();
|
|
81
81
|
expect(call.state).toStrictEqual({ [States.ESTABLISHED]: EstablishedStates.MUTED });
|
|
82
|
+
expect(call.isEstablished()).toBeTruthy();
|
|
82
83
|
});
|
|
83
84
|
});
|
|
84
85
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Session from '../Session';
|
|
2
2
|
import Call from '../Call';
|
|
3
|
+
import SoftphoneCall from '../../voice/call';
|
|
3
4
|
import Line from '../Line';
|
|
4
5
|
import CallSession from '../CallSession';
|
|
5
6
|
import type { Phone, AvailablePhoneOptions } from './Phone';
|
|
@@ -141,7 +142,7 @@ export default class CTIPhone extends Emitter implements Phone {
|
|
|
141
142
|
});
|
|
142
143
|
|
|
143
144
|
try {
|
|
144
|
-
await CallApi.cancelCall(callSession);
|
|
145
|
+
await CallApi.cancelCall({ apiId: callSession.getId() } as SoftphoneCall);
|
|
145
146
|
|
|
146
147
|
if (this.currentCall && callSession.callId === this.currentCall.id) {
|
|
147
148
|
this.endCurrentCall(callSession);
|
|
@@ -167,7 +168,7 @@ export default class CTIPhone extends Emitter implements Phone {
|
|
|
167
168
|
callId: callSession.getId(),
|
|
168
169
|
number: callSession.number,
|
|
169
170
|
});
|
|
170
|
-
await CallApi.cancelCall(callSession);
|
|
171
|
+
await CallApi.cancelCall({ id: callSession.getId() } as SoftphoneCall);
|
|
171
172
|
this.eventEmitter.emit('onCallEnded', callSession);
|
|
172
173
|
}
|
|
173
174
|
|
package/src/index.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { default as ServerError } from './domain/ServerError';
|
|
|
7
7
|
export { default as InvalidStateTransition } from './domain/InvalidStateTransition';
|
|
8
8
|
export { default as InvalidState } from './domain/InvalidState';
|
|
9
9
|
export { default as SFUNotAvailableError } from './domain/SFUNotAvailableError';
|
|
10
|
-
export { default as
|
|
10
|
+
export { default as ApiCall } from './domain/Call';
|
|
11
11
|
export { default as CallLog } from './domain/CallLog';
|
|
12
12
|
export { default as Recording } from './domain/Recording';
|
|
13
13
|
export { default as ChatMessage } from './domain/ChatMessage';
|
|
@@ -53,6 +53,9 @@ export { default as WazoApiClient } from './api-client';
|
|
|
53
53
|
export { default as Agent, AgentResponse, AgentArguments } from './domain/Agent';
|
|
54
54
|
export { default as ExternalApp } from './domain/ExternalApp';
|
|
55
55
|
export { default as SessionDescriptionHandler } from './lib/WazoSessionDescriptionHandler';
|
|
56
|
+
export { default as Call } from './voice/call';
|
|
57
|
+
export { Softphone } from './voice/softphone';
|
|
58
|
+
|
|
56
59
|
export * from './types/WebSocketMessage';
|
|
57
60
|
export * from './utils/PhoneNumberUtil';
|
|
58
61
|
export * from './utils/string';
|
package/src/service/CallApi.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import ApiCall from '../domain/Call';
|
|
2
|
+
import Call from '../voice/call';
|
|
2
3
|
import CallLog from '../domain/CallLog';
|
|
3
4
|
import Line from '../domain/Line';
|
|
4
5
|
import Session from '../domain/Session';
|
|
5
6
|
import Relocation from '../domain/Relocation';
|
|
6
|
-
import CallSession from '../domain/CallSession';
|
|
7
7
|
import getApiClient from './getApiClient';
|
|
8
8
|
import Transfer from '../domain/IndirectTransfer';
|
|
9
9
|
|
|
@@ -16,7 +16,7 @@ export default class CallApi {
|
|
|
16
16
|
return getApiClient().callLogd.listDistinctCallLogs(offset, limit, distinct);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
static async fetchActiveCalls(): Promise<
|
|
19
|
+
static async fetchActiveCalls(): Promise<ApiCall[]> {
|
|
20
20
|
return getApiClient().calld.listCalls();
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -37,14 +37,14 @@ export default class CallApi {
|
|
|
37
37
|
return getApiClient().confd.getUserLineSip(session.uuid as string, lineToUse ? <unknown>lineToUse.id as string : '');
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
static async cancelCall(
|
|
41
|
-
return getApiClient().calld.cancelCall(
|
|
40
|
+
static async cancelCall(call: Call): Promise<boolean> {
|
|
41
|
+
return getApiClient().calld.cancelCall(call.apiId || '');
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
static async makeCall(callFromLine: Line, extension: string, isMobile = false, callbackAllLines = false): Promise<
|
|
44
|
+
static async makeCall(callFromLine: Line, extension: string, isMobile = false, callbackAllLines = false): Promise<ApiCall | null | undefined> {
|
|
45
45
|
const lineId = callFromLine ? callFromLine.id : null;
|
|
46
46
|
const response = await getApiClient().calld.makeCall(extension, isMobile, lineId, callbackAllLines);
|
|
47
|
-
return
|
|
47
|
+
return ApiCall.parse(response);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
static async relocateCall(callId: string, line: number, contactIdentifier?: string): Promise<Relocation> {
|
package/src/simple/index.ts
CHANGED
|
@@ -41,7 +41,7 @@ import Features from '../domain/Features';
|
|
|
41
41
|
import Meeting from '../domain/Meeting';
|
|
42
42
|
import Checker from '../checker/Checker';
|
|
43
43
|
|
|
44
|
-
import Softphone from '../voice/softphone';
|
|
44
|
+
import Softphone, { Softphone as SoftphoneClass } from '../voice/softphone';
|
|
45
45
|
import Call from '../voice/call';
|
|
46
46
|
|
|
47
47
|
const Wazo = {
|
|
@@ -91,6 +91,7 @@ const Wazo = {
|
|
|
91
91
|
SwitchboardCall,
|
|
92
92
|
WebRTCPhone,
|
|
93
93
|
Meeting,
|
|
94
|
+
SoftphoneClass,
|
|
94
95
|
},
|
|
95
96
|
|
|
96
97
|
// Api
|