surflion-service 1.5.2 → 1.5.3
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 +17 -5
- package/dist/surflion.js +30093 -0
- package/{surflion.min.js → dist/surflion.min.js} +1 -1
- package/dist/types/surflion.d.ts +74 -0
- package/dist/types/surflion.d.ts.map +1 -0
- package/package.json +19 -3
- package/surflion.d.ts +178 -0
- package/surflion.js +21 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 通话信息接口
|
|
3
|
+
*/
|
|
4
|
+
interface CallInfo {
|
|
5
|
+
number?: string;
|
|
6
|
+
name?: string;
|
|
7
|
+
direction?: 'in' | 'out';
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* 媒体约束接口
|
|
12
|
+
*/
|
|
13
|
+
interface MediaConstraints {
|
|
14
|
+
audio: boolean;
|
|
15
|
+
video: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* SurfLion WebRTC 服务接口
|
|
19
|
+
*/
|
|
20
|
+
interface SurfLionInterface {
|
|
21
|
+
version: string;
|
|
22
|
+
showAll: boolean;
|
|
23
|
+
outgoingSession: any;
|
|
24
|
+
incomingSession: any;
|
|
25
|
+
currentSession: any;
|
|
26
|
+
vCallTimerId: number | null;
|
|
27
|
+
microphone: boolean;
|
|
28
|
+
outgoing: boolean;
|
|
29
|
+
ext_num: string;
|
|
30
|
+
constraints: MediaConstraints;
|
|
31
|
+
localStream: MediaStream | null;
|
|
32
|
+
ringtoneStream: MediaStream | null;
|
|
33
|
+
hangupStream: MediaStream | null;
|
|
34
|
+
userAgent: any;
|
|
35
|
+
debug: boolean;
|
|
36
|
+
agentStatus: boolean;
|
|
37
|
+
canIncoming: boolean;
|
|
38
|
+
phoneEnded: boolean;
|
|
39
|
+
userList: any[];
|
|
40
|
+
showPhoneNumber: string;
|
|
41
|
+
callID: string;
|
|
42
|
+
positionX: string;
|
|
43
|
+
positionY: string;
|
|
44
|
+
endReason: string;
|
|
45
|
+
sip_uri_: string;
|
|
46
|
+
sip_password_: string;
|
|
47
|
+
ws_uri_: string;
|
|
48
|
+
pageError: string;
|
|
49
|
+
phoneState: string;
|
|
50
|
+
callingState: string;
|
|
51
|
+
floatWindowState: boolean;
|
|
52
|
+
vPosition: number;
|
|
53
|
+
vDirection: boolean;
|
|
54
|
+
phoneToward: 'in' | 'out';
|
|
55
|
+
phoneCallingTime: string;
|
|
56
|
+
phoneResult: boolean;
|
|
57
|
+
worker: Worker | null;
|
|
58
|
+
onRegister: () => void;
|
|
59
|
+
onUnRegister: () => void;
|
|
60
|
+
onRegisterFail: () => void;
|
|
61
|
+
onCallBegin: () => void;
|
|
62
|
+
onCallAnswer: () => void;
|
|
63
|
+
onCallEnd: () => void;
|
|
64
|
+
onCallIn: (callInfo: CallInfo) => void;
|
|
65
|
+
closeVCalling: () => void;
|
|
66
|
+
createVCalling: (callInfo: CallInfo) => void;
|
|
67
|
+
[key: string]: any;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* SurfLion WebRTC 服务主对象
|
|
71
|
+
*/
|
|
72
|
+
declare const SurfLion: SurfLionInterface;
|
|
73
|
+
export default SurfLion;
|
|
74
|
+
//# sourceMappingURL=surflion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surflion.d.ts","sourceRoot":"","sources":["../../surflion.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,UAAU,QAAQ;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,UAAU,gBAAgB;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,iBAAiB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,GAAG,CAAC;IACrB,cAAc,EAAE,GAAG,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,IAAI,GAAG,KAAK,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAGtB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAGvC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC7C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,QAAA,MAAM,QAAQ,EAAE,iBAq0Df,CAAA;AAED,eAAe,QAAQ,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "surflion-service",
|
|
3
|
-
"version": "1.5.
|
|
4
|
-
"description": "SurfLion WebRTC
|
|
3
|
+
"version": "1.5.3",
|
|
4
|
+
"description": "SurfLion WebRTC Library",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"main": "surflion.js",
|
|
7
|
+
"module": "surflion.js",
|
|
8
|
+
"browser": "dist/surflion.min.js",
|
|
9
|
+
"unpkg": "dist/surflion.js",
|
|
10
|
+
"jsdelivr": "dist/surflion.js",
|
|
11
|
+
"types": "surflion.d.ts",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./surflion.d.ts",
|
|
15
|
+
"import": "./surflion.js",
|
|
16
|
+
"require": "./surflion.js",
|
|
17
|
+
"browser": "./dist/surflion.min.js",
|
|
18
|
+
"default": "./surflion.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
6
21
|
"files": [
|
|
7
22
|
"surflion.js",
|
|
8
|
-
"surflion.
|
|
23
|
+
"surflion.d.ts",
|
|
24
|
+
"dist/"
|
|
9
25
|
],
|
|
10
26
|
"keywords": [
|
|
11
27
|
"webrtc",
|
package/surflion.d.ts
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
// TypeScript declarations for SurfLion WebRTC Library
|
|
2
|
+
|
|
3
|
+
declare module 'surflion-service' {
|
|
4
|
+
export default SurfLion;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Call type enumeration
|
|
9
|
+
*/
|
|
10
|
+
export enum CallTypeEnum {
|
|
11
|
+
INIT = 0,
|
|
12
|
+
PREDICTIVE_OUTBOUND = 10,
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Call information interface
|
|
17
|
+
*/
|
|
18
|
+
export interface CallInfo {
|
|
19
|
+
CallNumber: string;
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* User list item interface
|
|
25
|
+
*/
|
|
26
|
+
export interface UserListItem {
|
|
27
|
+
value: string;
|
|
28
|
+
label: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Media constraints interface
|
|
33
|
+
*/
|
|
34
|
+
export interface MediaConstraints {
|
|
35
|
+
audio: boolean;
|
|
36
|
+
video: boolean;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Position configuration interface
|
|
41
|
+
*/
|
|
42
|
+
export interface PositionConfig {
|
|
43
|
+
position?: number;
|
|
44
|
+
positionX?: string;
|
|
45
|
+
positionY?: string;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Event handler function types
|
|
50
|
+
*/
|
|
51
|
+
export type EventHandler = () => void;
|
|
52
|
+
export type CallEventHandler = (callInfo: CallInfo) => void;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Main SurfLion interface
|
|
56
|
+
*/
|
|
57
|
+
export interface SurfLionInterface {
|
|
58
|
+
// Version and configuration
|
|
59
|
+
version: string;
|
|
60
|
+
showAll: boolean;
|
|
61
|
+
|
|
62
|
+
// Session management
|
|
63
|
+
outgoingSession: any | null;
|
|
64
|
+
incomingSession: any | null;
|
|
65
|
+
currentSession: any | null;
|
|
66
|
+
vCallTimerId: any | null;
|
|
67
|
+
|
|
68
|
+
// Audio/Video settings
|
|
69
|
+
microphone: boolean;
|
|
70
|
+
outgoing: boolean;
|
|
71
|
+
constraints: MediaConstraints;
|
|
72
|
+
localStream: HTMLAudioElement | null;
|
|
73
|
+
ringtoneStream: HTMLAudioElement | null;
|
|
74
|
+
hangupStream: HTMLAudioElement | null;
|
|
75
|
+
|
|
76
|
+
// SIP configuration
|
|
77
|
+
ext_num: string;
|
|
78
|
+
sip_uri_: string;
|
|
79
|
+
sip_password_: string;
|
|
80
|
+
ws_uri_: string;
|
|
81
|
+
userAgent: any | null;
|
|
82
|
+
|
|
83
|
+
// Status and state
|
|
84
|
+
debug: boolean;
|
|
85
|
+
agentStatus: boolean;
|
|
86
|
+
canIncoming: boolean;
|
|
87
|
+
phoneEnded: boolean;
|
|
88
|
+
phoneState: string;
|
|
89
|
+
callingState: string;
|
|
90
|
+
floatWindowState: boolean;
|
|
91
|
+
phoneToward: string;
|
|
92
|
+
phoneCallingTime: string;
|
|
93
|
+
phoneResult: boolean;
|
|
94
|
+
|
|
95
|
+
// UI positioning
|
|
96
|
+
vPosition: number;
|
|
97
|
+
vDirection: boolean;
|
|
98
|
+
positionX: string;
|
|
99
|
+
positionY: string;
|
|
100
|
+
|
|
101
|
+
// Data and identification
|
|
102
|
+
userList: UserListItem[];
|
|
103
|
+
showPhoneNumber: string;
|
|
104
|
+
callID: string;
|
|
105
|
+
endReason: string;
|
|
106
|
+
pageError: string;
|
|
107
|
+
CallType: number;
|
|
108
|
+
XUuid: string;
|
|
109
|
+
worker: any | null;
|
|
110
|
+
|
|
111
|
+
// Event handlers
|
|
112
|
+
onRegister: EventHandler;
|
|
113
|
+
onUnRegister: EventHandler;
|
|
114
|
+
onRegisterFail: EventHandler;
|
|
115
|
+
onCallBegin: EventHandler;
|
|
116
|
+
onCallAnswer: EventHandler;
|
|
117
|
+
onCallEnd: EventHandler;
|
|
118
|
+
onCallIn: CallEventHandler;
|
|
119
|
+
|
|
120
|
+
// UI management methods
|
|
121
|
+
closeVCalling(): void;
|
|
122
|
+
createVCalling(callInfo: CallInfo): void;
|
|
123
|
+
closeVAnswer(): void;
|
|
124
|
+
createVAnswer(callInfo: CallInfo): void;
|
|
125
|
+
createVError(position: number, positionX: string, positionY: string): void;
|
|
126
|
+
closeVError(): void;
|
|
127
|
+
createVEnd(): void;
|
|
128
|
+
closeVEnd(): void;
|
|
129
|
+
closeVCall(): void;
|
|
130
|
+
createVCall(): void;
|
|
131
|
+
closeVKeyboard(): void;
|
|
132
|
+
createVKeyboard(show: boolean): void;
|
|
133
|
+
|
|
134
|
+
// SIP methods
|
|
135
|
+
sipRegister(
|
|
136
|
+
sip_uri_: string,
|
|
137
|
+
sip_password_: string,
|
|
138
|
+
ws_uri_: string,
|
|
139
|
+
show: boolean,
|
|
140
|
+
ext_num: string,
|
|
141
|
+
direction: boolean,
|
|
142
|
+
floatWindowState: boolean,
|
|
143
|
+
position: number,
|
|
144
|
+
positionX: string,
|
|
145
|
+
positionY: string,
|
|
146
|
+
ringtoneStream?: string,
|
|
147
|
+
hangupStream?: string
|
|
148
|
+
): void;
|
|
149
|
+
|
|
150
|
+
sipUnRegister(): void;
|
|
151
|
+
sipCall(sip_phone_number_: string): void;
|
|
152
|
+
sipAnswer(): void;
|
|
153
|
+
sipHangUp(): void;
|
|
154
|
+
|
|
155
|
+
// Utility methods
|
|
156
|
+
findName(value: string): string;
|
|
157
|
+
sipInitAddress(list: UserListItem[]): void;
|
|
158
|
+
sipMute(): void;
|
|
159
|
+
sipUnmute(): void;
|
|
160
|
+
sipMuteAudio(): void;
|
|
161
|
+
sipUnmuteAudio(): void;
|
|
162
|
+
sipLogout(): void;
|
|
163
|
+
sipShowHidden(): void;
|
|
164
|
+
sipCloseFloat(): void;
|
|
165
|
+
|
|
166
|
+
// SharedWorker methods
|
|
167
|
+
initSharework(address: string): void;
|
|
168
|
+
visibilityListen(address: string): void;
|
|
169
|
+
closeShareWork(): void;
|
|
170
|
+
closeAllPage(state: boolean): void;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Main SurfLion object
|
|
175
|
+
*/
|
|
176
|
+
declare const SurfLion: SurfLionInterface;
|
|
177
|
+
|
|
178
|
+
export default SurfLion;
|
package/surflion.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import JsSIP from 'jssip'
|
|
2
|
+
|
|
3
|
+
var CallTypeEnum = {
|
|
4
|
+
INIT: 0,
|
|
5
|
+
PREDICTIVE_OUTBOUND: 10,
|
|
6
|
+
};
|
|
7
|
+
|
|
2
8
|
var SurfLion = {
|
|
3
9
|
version: process.env.PACKAGE_VERSION,
|
|
4
10
|
showAll: true,
|
|
@@ -40,6 +46,8 @@ var SurfLion = {
|
|
|
40
46
|
phoneCallingTime: '0',
|
|
41
47
|
phoneResult: false,
|
|
42
48
|
worker: null,
|
|
49
|
+
CallType: CallTypeEnum.INIT,
|
|
50
|
+
XUuid: '',
|
|
43
51
|
onRegister: function () {
|
|
44
52
|
},
|
|
45
53
|
onUnRegister: function () {
|
|
@@ -1353,7 +1361,6 @@ var SurfLion = {
|
|
|
1353
1361
|
CallNumber : e.request.from._display_name
|
|
1354
1362
|
}
|
|
1355
1363
|
|
|
1356
|
-
|
|
1357
1364
|
if(SurfLion.ext_num == e.request.from._display_name) {
|
|
1358
1365
|
SurfLion.endReason = 'Cannot call oneself '
|
|
1359
1366
|
SurfLion.sipHangUp()
|
|
@@ -1363,6 +1370,15 @@ var SurfLion = {
|
|
|
1363
1370
|
SurfLion.createVAnswer(callInfo)
|
|
1364
1371
|
}
|
|
1365
1372
|
|
|
1373
|
+
const CallType = e.request.getHeader('Call-Type');
|
|
1374
|
+
if (CallType) {
|
|
1375
|
+
SurfLion.CallType = +CallType || 0;
|
|
1376
|
+
}
|
|
1377
|
+
const XUuid = e.request.getHeader('X-Uuid');
|
|
1378
|
+
if (XUuid) {
|
|
1379
|
+
SurfLion.XUuid = XUuid;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1366
1382
|
window.localStorage.setItem("surflion_registered", '3');
|
|
1367
1383
|
const event = new Event('localStorageSurflionChange');
|
|
1368
1384
|
window.dispatchEvent(event);
|
|
@@ -1435,6 +1451,10 @@ var SurfLion = {
|
|
|
1435
1451
|
|
|
1436
1452
|
SurfLion.microphone = true
|
|
1437
1453
|
SurfLion.outgoing = true
|
|
1454
|
+
|
|
1455
|
+
SurfLion.CallType = CallTypeEnum.INIT;
|
|
1456
|
+
SurfLion.XUuid = '';
|
|
1457
|
+
|
|
1438
1458
|
window.localStorage.setItem("surflion_registered", '1');
|
|
1439
1459
|
const event = new Event('localStorageSurflionChange');
|
|
1440
1460
|
window.localStorage.setItem("localStorageSurflionCall", '0');
|