@vgroup/dialbox 0.0.26 → 0.0.28
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/esm2020/lib/components/call-progress/call-progress.component.mjs +13 -8
- package/esm2020/lib/components/call-progress/incoming-call/incoming-call.component.mjs +3 -22
- package/esm2020/lib/service/twilio.service.mjs +20 -37
- package/esm2020/public-api.mjs +1 -3
- package/fesm2015/vgroup-dialbox.mjs +41 -135
- package/fesm2015/vgroup-dialbox.mjs.map +1 -1
- package/fesm2020/vgroup-dialbox.mjs +36 -129
- package/fesm2020/vgroup-dialbox.mjs.map +1 -1
- package/lib/components/call-progress/incoming-call/incoming-call.component.d.ts +0 -1
- package/lib/service/twilio.service.d.ts +2 -2
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/esm2020/lib/service/twilio-init.service.mjs +0 -66
- package/lib/service/twilio-init.service.d.ts +0 -16
|
@@ -24,7 +24,6 @@ export declare class IncomingCallComponent implements OnInit {
|
|
|
24
24
|
incomingCallsNewList: EventEmitter<any>;
|
|
25
25
|
selectedIncomingCallInfo: EventEmitter<any>;
|
|
26
26
|
isMute?: boolean;
|
|
27
|
-
disbaleEndCallBtn?: boolean;
|
|
28
27
|
constructor(extensionService: ExtensionService, twilioService: TwilioService);
|
|
29
28
|
ngOnInit(): void;
|
|
30
29
|
acceptCallFromList(data?: any): void;
|
|
@@ -31,8 +31,8 @@ export declare class TwilioService {
|
|
|
31
31
|
callerIdList: BehaviorSubject<any[]>;
|
|
32
32
|
triggerSMSReload: BehaviorSubject<boolean>;
|
|
33
33
|
constructor(http: HttpClient);
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
onIncomingCall(): void;
|
|
35
|
+
private dispatchIncomingCallEvent;
|
|
36
36
|
saveContact(payload: any): Observable<[]>;
|
|
37
37
|
updateContact(payload: any): Observable<[]>;
|
|
38
38
|
deleteContact(id: string): Observable<[]>;
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -3,4 +3,3 @@ export * from './lib/dialbox.module';
|
|
|
3
3
|
export * from './lib/components/call-progress/call-progress.component';
|
|
4
4
|
export * from './lib/components/call-progress/incoming-call/incoming-call.component';
|
|
5
5
|
export * from './lib/components/caller-id-dialog/caller-id-dialog.component';
|
|
6
|
-
export * from './lib/service/twilio-init.service';
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "./twilio.service";
|
|
4
|
-
import * as i2 from "./extension.service";
|
|
5
|
-
export class TwilioInitService {
|
|
6
|
-
constructor(twilioService, extensionService) {
|
|
7
|
-
this.twilioService = twilioService;
|
|
8
|
-
this.extensionService = extensionService;
|
|
9
|
-
}
|
|
10
|
-
// Call this method when your application starts (e.g., in app.component.ts)
|
|
11
|
-
async initializeTwilio() {
|
|
12
|
-
try {
|
|
13
|
-
// 1. Get a token from your backend
|
|
14
|
-
const token = await this.getTwilioToken();
|
|
15
|
-
if (!token) {
|
|
16
|
-
console.error('Failed to get Twilio token');
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
// 2. Initialize the Twilio device with the token
|
|
20
|
-
this.twilioService.initializeTwilioDevice(token);
|
|
21
|
-
// 3. Set up token refresh (optional, but recommended)
|
|
22
|
-
this.setupTokenRefresh();
|
|
23
|
-
}
|
|
24
|
-
catch (error) {
|
|
25
|
-
console.error('Error initializing Twilio:', error);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
async getTwilioToken() {
|
|
29
|
-
// Replace this with your actual token retrieval logic
|
|
30
|
-
// Example:
|
|
31
|
-
// return this.extensionService.getTwilioToken().toPromise();
|
|
32
|
-
// For now, we'll get it from localStorage if it exists
|
|
33
|
-
const token = localStorage.getItem('twilio_token');
|
|
34
|
-
if (!token) {
|
|
35
|
-
throw new Error('Twilio token not found');
|
|
36
|
-
}
|
|
37
|
-
return token;
|
|
38
|
-
}
|
|
39
|
-
setupTokenRefresh() {
|
|
40
|
-
// Refresh token every 30 minutes (Twilio tokens typically expire after 1 hour)
|
|
41
|
-
this.tokenRefreshInterval = setInterval(async () => {
|
|
42
|
-
try {
|
|
43
|
-
const newToken = await this.getTwilioToken();
|
|
44
|
-
this.twilioService.updateToken(newToken);
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
console.error('Error refreshing Twilio token:', error);
|
|
48
|
-
}
|
|
49
|
-
}, 30 * 60 * 1000); // 30 minutes
|
|
50
|
-
}
|
|
51
|
-
ngOnDestroy() {
|
|
52
|
-
// Clean up the interval when the service is destroyed
|
|
53
|
-
if (this.tokenRefreshInterval) {
|
|
54
|
-
clearInterval(this.tokenRefreshInterval);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
TwilioInitService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TwilioInitService, deps: [{ token: i1.TwilioService }, { token: i2.ExtensionService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
59
|
-
TwilioInitService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TwilioInitService, providedIn: 'root' });
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TwilioInitService, decorators: [{
|
|
61
|
-
type: Injectable,
|
|
62
|
-
args: [{
|
|
63
|
-
providedIn: 'root'
|
|
64
|
-
}]
|
|
65
|
-
}], ctorParameters: function () { return [{ type: i1.TwilioService }, { type: i2.ExtensionService }]; } });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpbGlvLWluaXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RpYWxib3gvc3JjL2xpYi9zZXJ2aWNlL3R3aWxpby1pbml0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQzs7OztBQU90RCxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQ1UsYUFBNEIsRUFDNUIsZ0JBQWtDO1FBRGxDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDekMsQ0FBQztJQUVKLDRFQUE0RTtJQUM1RSxLQUFLLENBQUMsZ0JBQWdCO1FBQ3BCLElBQUk7WUFDRixtQ0FBbUM7WUFDbkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFMUMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7Z0JBQzVDLE9BQU87YUFDUjtZQUVELGlEQUFpRDtZQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpELHNEQUFzRDtZQUN0RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUUxQjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsY0FBYztRQUMxQixzREFBc0Q7UUFDdEQsV0FBVztRQUNYLDZEQUE2RDtRQUU3RCx1REFBdUQ7UUFDdkQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLCtFQUErRTtRQUMvRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2pELElBQUk7Z0JBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzFDO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUN4RDtRQUNILENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYTtJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNULHNEQUFzRDtRQUN0RCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixhQUFhLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDOzsrR0E1RFUsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUd2lsaW9TZXJ2aWNlIH0gZnJvbSAnLi90d2lsaW8uc2VydmljZSc7XG5pbXBvcnQgeyBFeHRlbnNpb25TZXJ2aWNlIH0gZnJvbSAnLi9leHRlbnNpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFR3aWxpb0luaXRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSB0b2tlblJlZnJlc2hJbnRlcnZhbDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHdpbGlvU2VydmljZTogVHdpbGlvU2VydmljZSxcbiAgICBwcml2YXRlIGV4dGVuc2lvblNlcnZpY2U6IEV4dGVuc2lvblNlcnZpY2VcbiAgKSB7fVxuXG4gIC8vIENhbGwgdGhpcyBtZXRob2Qgd2hlbiB5b3VyIGFwcGxpY2F0aW9uIHN0YXJ0cyAoZS5nLiwgaW4gYXBwLmNvbXBvbmVudC50cylcbiAgYXN5bmMgaW5pdGlhbGl6ZVR3aWxpbygpIHtcbiAgICB0cnkge1xuICAgICAgLy8gMS4gR2V0IGEgdG9rZW4gZnJvbSB5b3VyIGJhY2tlbmRcbiAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgdGhpcy5nZXRUd2lsaW9Ub2tlbigpO1xuICAgICAgXG4gICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBnZXQgVHdpbGlvIHRva2VuJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gMi4gSW5pdGlhbGl6ZSB0aGUgVHdpbGlvIGRldmljZSB3aXRoIHRoZSB0b2tlblxuICAgICAgdGhpcy50d2lsaW9TZXJ2aWNlLmluaXRpYWxpemVUd2lsaW9EZXZpY2UodG9rZW4pO1xuICAgICAgXG4gICAgICAvLyAzLiBTZXQgdXAgdG9rZW4gcmVmcmVzaCAob3B0aW9uYWwsIGJ1dCByZWNvbW1lbmRlZClcbiAgICAgIHRoaXMuc2V0dXBUb2tlblJlZnJlc2goKTtcbiAgICAgIFxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbml0aWFsaXppbmcgVHdpbGlvOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFR3aWxpb1Rva2VuKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgLy8gUmVwbGFjZSB0aGlzIHdpdGggeW91ciBhY3R1YWwgdG9rZW4gcmV0cmlldmFsIGxvZ2ljXG4gICAgLy8gRXhhbXBsZTpcbiAgICAvLyByZXR1cm4gdGhpcy5leHRlbnNpb25TZXJ2aWNlLmdldFR3aWxpb1Rva2VuKCkudG9Qcm9taXNlKCk7XG4gICAgXG4gICAgLy8gRm9yIG5vdywgd2UnbGwgZ2V0IGl0IGZyb20gbG9jYWxTdG9yYWdlIGlmIGl0IGV4aXN0c1xuICAgIGNvbnN0IHRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3R3aWxpb190b2tlbicpO1xuICAgIGlmICghdG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVHdpbGlvIHRva2VuIG5vdCBmb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICBwcml2YXRlIHNldHVwVG9rZW5SZWZyZXNoKCkge1xuICAgIC8vIFJlZnJlc2ggdG9rZW4gZXZlcnkgMzAgbWludXRlcyAoVHdpbGlvIHRva2VucyB0eXBpY2FsbHkgZXhwaXJlIGFmdGVyIDEgaG91cilcbiAgICB0aGlzLnRva2VuUmVmcmVzaEludGVydmFsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgbmV3VG9rZW4gPSBhd2FpdCB0aGlzLmdldFR3aWxpb1Rva2VuKCk7XG4gICAgICAgIHRoaXMudHdpbGlvU2VydmljZS51cGRhdGVUb2tlbihuZXdUb2tlbik7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciByZWZyZXNoaW5nIFR3aWxpbyB0b2tlbjonLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSwgMzAgKiA2MCAqIDEwMDApOyAvLyAzMCBtaW51dGVzXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBDbGVhbiB1cCB0aGUgaW50ZXJ2YWwgd2hlbiB0aGUgc2VydmljZSBpcyBkZXN0cm95ZWRcbiAgICBpZiAodGhpcy50b2tlblJlZnJlc2hJbnRlcnZhbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRva2VuUmVmcmVzaEludGVydmFsKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import { TwilioService } from './twilio.service';
|
|
3
|
-
import { ExtensionService } from './extension.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class TwilioInitService implements OnDestroy {
|
|
6
|
-
private twilioService;
|
|
7
|
-
private extensionService;
|
|
8
|
-
private tokenRefreshInterval;
|
|
9
|
-
constructor(twilioService: TwilioService, extensionService: ExtensionService);
|
|
10
|
-
initializeTwilio(): Promise<void>;
|
|
11
|
-
private getTwilioToken;
|
|
12
|
-
private setupTokenRefresh;
|
|
13
|
-
ngOnDestroy(): void;
|
|
14
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TwilioInitService, never>;
|
|
15
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<TwilioInitService>;
|
|
16
|
-
}
|