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.
@@ -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.2",
4
- "description": "SurfLion WebRTC Service Library with integrated JsSIP for real-time communication",
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.min.js"
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');