@snugdesk/avaya-ipo-widget 0.0.9 → 0.1.1

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.

Potentially problematic release.


This version of @snugdesk/avaya-ipo-widget might be problematic. Click here for more details.

package/index.d.ts CHANGED
@@ -33,8 +33,11 @@ interface CallMetadata {
33
33
  interface RecordingSession {
34
34
  audioContext: AudioContext;
35
35
  recordingStream: MediaStreamAudioDestinationNode;
36
- recorder: MediaRecorder;
36
+ recorder?: MediaRecorder | null;
37
37
  metadata: CallMetadata;
38
+ stopping: boolean;
39
+ chunkIndex: number;
40
+ chunkTimer?: number;
38
41
  }
39
42
  declare class RecordingManagerService {
40
43
  private http;
@@ -45,13 +48,15 @@ declare class RecordingManagerService {
45
48
  private readonly AUDIO_CONTEXT_CLOSE_DELAY_MS;
46
49
  private readonly CALL_HISTORY_API_URL;
47
50
  constructor(http: HttpClient);
48
- startRecording(localMediaStream: MediaStream, remoteMediaStream: MediaStream, metadata: RecordingSession['metadata']): RecordingSession | undefined;
51
+ startRecording(localMediaStream: MediaStream, remoteMediaStream: MediaStream, metadata: CallMetadata): RecordingSession | undefined;
49
52
  getSession(callId: string): RecordingSession | undefined;
50
53
  stopRecording(callId: string): void;
51
- private handleDataAvailable;
54
+ /** Start a new MediaRecorder for the next chunk so the blob has its own headers */
55
+ private startNextChunk;
52
56
  private uploadCallRecording;
53
57
  private convertBlobToBase64;
54
58
  private generateFilename;
59
+ private generateChunkFilename;
55
60
  static ɵfac: i0.ɵɵFactoryDeclaration<RecordingManagerService, never>;
56
61
  static ɵprov: i0.ɵɵInjectableDeclaration<RecordingManagerService>;
57
62
  }
@@ -86,6 +91,8 @@ declare class AvayaIPOService {
86
91
  private readonly CONFIG_TEMPLATE;
87
92
  private readonly agentStatusApiUrl;
88
93
  private readonly CALL_HISTORY_API_URL;
94
+ private prewarmedStream?;
95
+ private isSafari;
89
96
  private _rpcPatched;
90
97
  constructor(zone: NgZone, http: HttpClient);
91
98
  init(): void;
@@ -94,7 +101,7 @@ declare class AvayaIPOService {
94
101
  getAlternateServerConfig(): any;
95
102
  getDeviceList(): void;
96
103
  setDeviceIds(deviceIds: any): void;
97
- makeCall(destination: string): '1' | '2' | '3' | null;
104
+ makeCall(destination: string): Promise<'1' | '2' | '3' | null>;
98
105
  dropCall(): void;
99
106
  doMute(): void;
100
107
  doUnMute(): void;
@@ -127,19 +134,23 @@ declare class AvayaIPOService {
127
134
  getActiveCallId(): string | null;
128
135
  initLocalMic(): Promise<void>;
129
136
  private patchRpcForTransfers;
130
- makeCallWithCustomData(destination: string, dataToSend: string): '1' | '2' | '3' | null;
137
+ makeCallWithCustomData(destination: string, dataToSend: string): Promise<'1' | '2' | '3' | null>;
131
138
  transferCallWithTag(target: string, type: 'Attended' | 'Blind'): void;
132
139
  private _doPatch;
140
+ /** Pre-warm microphone so AWL always has a local stream when it tries addStream() */
141
+ prewarmMic(): Promise<MediaStream>;
133
142
  static ɵfac: i0.ɵɵFactoryDeclaration<AvayaIPOService, never>;
134
143
  static ɵprov: i0.ɵɵInjectableDeclaration<AvayaIPOService>;
135
144
  }
136
145
 
137
146
  declare class CallSocketService {
138
- private socket;
139
- readonly message$: BehaviorSubject<any>;
147
+ private sockets;
148
+ private subjects;
140
149
  open(metadata: CallMetadata): void;
141
- send(payload: object): void;
142
- close(): void;
150
+ messages$(callId: string): BehaviorSubject<any> | undefined;
151
+ send(callId: string, payload: object): void;
152
+ close(callId: string): void;
153
+ closeAll(): void;
143
154
  static ɵfac: i0.ɵɵFactoryDeclaration<CallSocketService, never>;
144
155
  static ɵprov: i0.ɵɵInjectableDeclaration<CallSocketService>;
145
156
  }
@@ -241,6 +252,33 @@ declare class AvayaIPOWidgetComponent implements OnInit, AfterViewInit, OnDestro
241
252
  showInitLoader: boolean;
242
253
  tenant: any;
243
254
  user: any;
255
+ internalContacts: {
256
+ id: number;
257
+ name: string;
258
+ phone: string;
259
+ role: string;
260
+ ext: string;
261
+ }[];
262
+ directoryContacts: {
263
+ id: number;
264
+ name: string;
265
+ phone: string;
266
+ rating: number;
267
+ }[];
268
+ private recognition;
269
+ transcriptText: string;
270
+ showTranscriptionPopup: boolean;
271
+ private recognitionKeepAlive;
272
+ transcriptHistory: string[];
273
+ private recognitionActive;
274
+ private transcriptSegments;
275
+ private transcriptStartedAt;
276
+ private transcriptEndedAt;
277
+ autoDownloadSummaryOnEnd: boolean;
278
+ summaryText: string;
279
+ displayCallingNumber: string;
280
+ redialnumber: string;
281
+ isTransferring: boolean;
244
282
  constructor(http: HttpClient, cdr: ChangeDetectorRef, zone: NgZone, formBuilder: FormBuilder, countryService: CountryService, phoneNumberLookupService: PhoneNumberLookupService, avayaIPOService: AvayaIPOService, recordingManagerService: RecordingManagerService, callSocket: CallSocketService, authenticationService: SnugdeskAuthenticationService, tenantService: TenantService, userService: UserService);
245
283
  ngOnInit(): Promise<void>;
246
284
  loadScript(src: string): Promise<void>;
@@ -286,6 +324,21 @@ declare class AvayaIPOWidgetComponent implements OnInit, AfterViewInit, OnDestro
286
324
  bottomSelectTab(tab: string): void;
287
325
  /** Central place to notify AvayaIPOService about current picks */
288
326
  handleDeviceSelection(event: any): void;
327
+ private createMixedStream;
328
+ private initTranscription;
329
+ private stopTranscription;
330
+ private generateAndDownloadSummary;
331
+ private buildExtractiveSummary;
332
+ private splitSentences;
333
+ private extractActionItems;
334
+ private extractKeyInfo;
335
+ private downloadBlobFile;
336
+ private fmtHMS;
337
+ transferToFromHistory(item: {
338
+ phoneNumber?: any;
339
+ lookupPhoneNumber?: any;
340
+ resolvedDialable?: any;
341
+ }): void;
289
342
  static ɵfac: i0.ɵɵFactoryDeclaration<AvayaIPOWidgetComponent, never>;
290
343
  static ɵcmp: i0.ɵɵComponentDeclaration<AvayaIPOWidgetComponent, "snugdesk-avaya-ipo-widget", never, { "tenantId": { "alias": "tenantId"; "required": false; }; "userId": { "alias": "userId"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; "containerHeightObservable": { "alias": "containerHeightObservable"; "required": false; }; "containerWidthObservable": { "alias": "containerWidthObservable"; "required": false; }; }, { "notificationEvent": "notificationEvent"; }, never, never, false, never>;
291
344
  }
@@ -294,7 +347,9 @@ declare class CallHistoryComponent implements OnInit {
294
347
  private http;
295
348
  private authenticationService;
296
349
  private cdr;
350
+ mode: 'dial' | 'transfer';
297
351
  makeCallEv: EventEmitter<string>;
352
+ transferEv: EventEmitter<any>;
298
353
  private readonly CALL_HISTORY_API_URL;
299
354
  showHistoryLoader: boolean;
300
355
  callHistory: any[];
@@ -305,13 +360,24 @@ declare class CallHistoryComponent implements OnInit {
305
360
  loadCallHistory(): Promise<void>;
306
361
  getCallHistory(tenantId: string, agentId: string): Promise<any>;
307
362
  makeCall(phoneNumber: string): void;
363
+ selectFromHistory(item: any): void;
364
+ private resolveDialable;
308
365
  static ɵfac: i0.ɵɵFactoryDeclaration<CallHistoryComponent, never>;
309
- static ɵcmp: i0.ɵɵComponentDeclaration<CallHistoryComponent, "app-call-history", never, {}, { "makeCallEv": "makeCallEv"; }, never, never, false, never>;
366
+ static ɵcmp: i0.ɵɵComponentDeclaration<CallHistoryComponent, "app-call-history", never, { "mode": { "alias": "mode"; "required": false; }; }, { "makeCallEv": "makeCallEv"; "transferEv": "transferEv"; }, never, never, false, never>;
310
367
  }
311
368
 
312
369
  declare class AuthenticationService {
370
+ private readonly jwtHelper;
313
371
  tenant$: BehaviorSubject<any>;
314
372
  user$: BehaviorSubject<any>;
373
+ isAuthenticated$: BehaviorSubject<boolean>;
374
+ isAuthenticated(): boolean;
375
+ getAuthSessionToken(): string | null;
376
+ getAuthDomainToken(): string | null;
377
+ getDecodedAuthDomainToken(): any;
378
+ getTenantId(): string;
379
+ getDecodedAuthSessionToken(): any;
380
+ getUserId(): string;
315
381
  static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationService, never>;
316
382
  static ɵprov: i0.ɵɵInjectableDeclaration<AuthenticationService>;
317
383
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@snugdesk/avaya-ipo-widget",
3
- "version": "0.0.9",
4
- "description": "Avaya IPO widget for Angular apps",
3
+ "version": "0.1.1",
4
+ "description": "Snugdesk - Avaya IPO widget for Angular",
5
5
  "peerDependencies": {
6
6
  "@angular/animations": ">=19.0.0",
7
7
  "@angular/common": ">=19.0.0",