diff --git a/packages/adapter-ameyo/CHANGELOG.md b/packages/adapter-ameyo/CHANGELOG.md index 6422183..7e3d6bc 100644 --- a/packages/adapter-ameyo/CHANGELOG.md +++ b/packages/adapter-ameyo/CHANGELOG.md @@ -19,6 +19,39 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline +## 1.3.2 (2025-02-04) + +**Note:** Version bump only for package @universal-call-sdk/adapter-ameyo + + + + + + +## 1.3.1 (2025-01-30) + +**Note:** Version bump only for package @universal-call-sdk/adapter-ameyo + + + + + +## 1.2.6 (2025-01-29) + +**Note:** Version bump only for package @universal-call-sdk/adapter-ameyo + + + + + +## 1.2.3 (2025-01-28) + +**Note:** Version bump only for package @universal-call-sdk/adapter-ameyo + + + + + ## 1.1.36 (2025-01-23) **Note:** Version bump only for package @universal-call-sdk/adapter-ameyo diff --git a/packages/adapter-ameyo/lib/callStateManager.ts b/packages/adapter-ameyo/lib/callStateManager.ts index 67c37e1..a0dca20 100644 --- a/packages/adapter-ameyo/lib/callStateManager.ts +++ b/packages/adapter-ameyo/lib/callStateManager.ts @@ -96,6 +96,9 @@ class CallStateManager { data: this.state.customerInfo }); break; + case 'connected': + this.sendConnectedMessage(); + break; case 'hungup': this.handleCallDisconnect(); break; diff --git a/packages/adapter-ameyo/lib/main.ts b/packages/adapter-ameyo/lib/main.ts index 4330b17..4a84948 100644 --- a/packages/adapter-ameyo/lib/main.ts +++ b/packages/adapter-ameyo/lib/main.ts @@ -37,8 +37,8 @@ import registerEventProcessor from "./eventsProcessor"; import MetricsProcessor from "@universal-call-sdk/common/lib/utils/metricsProcessor"; import ClickStreamProcessor from "@universal-call-sdk/common/lib/utils/clickStreamProcessor"; import {tagManager} from "./htmlTagManager"; -import {callStateManager} from "./callStateManager.ts"; import MessagingType from "../types/MessagingType.ts"; +import { checkAllPermissions } from "@universal-call-sdk/common/lib/utils/getPermissions.ts"; class AmeyoAdapter implements IAdapter { private callbacks: CallbackFunctions; private currentCallState: CALL_STATES; @@ -95,7 +95,7 @@ class AmeyoAdapter implements IAdapter { } private validateInitializationOptions(options: AmeyoInitializationOptions): void { - if (!options.baseUrl || !options.eventListenerUrl || !options.userName || !options.password || !options.loginUrl) { + if (!options?.baseUrl || !options?.eventListenerUrl || !options?.loginUrl) { throw new Error('Missing required initialization options'); } } @@ -356,7 +356,6 @@ class AmeyoAdapter implements IAdapter { public acceptCall(): void { acceptSipCall(); - callStateManager.sendConnectedMessage(); } public rejectCall(): void { @@ -446,6 +445,10 @@ class AmeyoAdapter implements IAdapter { public registerOnCallTransferStatus(callback: (data: GenericObject) => void): void { this.callbacks.onCallTransferStatus = callback; } + + public async checkAllPermissions(): Promise { + return await checkAllPermissions(); + } } export default AmeyoAdapter; diff --git a/packages/adapter-ameyo/package.json b/packages/adapter-ameyo/package.json index 1cf86ea..a654521 100644 --- a/packages/adapter-ameyo/package.json +++ b/packages/adapter-ameyo/package.json @@ -1,6 +1,6 @@ { "name": "@universal-call-sdk/adapter-ameyo", - "version": "1.3.3", + "version": "1.3.2", "type": "module", "scripts": { "dev": "vite", @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "@universal-call-sdk/common": "^1.3.3", + "@universal-call-sdk/common": "^1.3.2", "uuid": "^11.0.3" }, "devDependencies": { diff --git a/packages/common/CHANGELOG.md b/packages/common/CHANGELOG.md index 270e7bb..f984129 100644 --- a/packages/common/CHANGELOG.md +++ b/packages/common/CHANGELOG.md @@ -19,6 +19,39 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline +## 1.3.2 (2025-02-04) + +**Note:** Version bump only for package @universal-call-sdk/common + + + + + + +## 1.3.1 (2025-01-30) + +**Note:** Version bump only for package @universal-call-sdk/common + + + + + +## 1.2.6 (2025-01-29) + +**Note:** Version bump only for package @universal-call-sdk/common + + + + + +## 1.2.4 (2025-01-28) + +**Note:** Version bump only for package @universal-call-sdk/common + + + + + ## 1.1.21 (2025-01-23) **Note:** Version bump only for package @universal-call-sdk/common diff --git a/packages/common/lib/Interfaces/IAdapter.ts b/packages/common/lib/Interfaces/IAdapter.ts index 1a49183..3357228 100644 --- a/packages/common/lib/Interfaces/IAdapter.ts +++ b/packages/common/lib/Interfaces/IAdapter.ts @@ -32,6 +32,7 @@ class IAdapter { getLatestCallState(): CALL_STATES {return CALL_STATES.IDLE} getAvailableAgentsForCallTransfer() {} transferCallToAgent(data: GenericObject) {console.log("transfer call", data)} + checkAllPermissions():Promise {return Promise.resolve(true)} } export default IAdapter; diff --git a/packages/common/lib/constants.ts b/packages/common/lib/constants.ts new file mode 100644 index 0000000..ef83e04 --- /dev/null +++ b/packages/common/lib/constants.ts @@ -0,0 +1,7 @@ +export enum PermissionState { + GRANTED = "granted", + PROMPT = "prompt", + DENIED = "denied" + } + +export const MICROPHONE = 'microphone' as PermissionName; \ No newline at end of file diff --git a/packages/common/lib/utils/getPermissions.ts b/packages/common/lib/utils/getPermissions.ts new file mode 100644 index 0000000..d645ea2 --- /dev/null +++ b/packages/common/lib/utils/getPermissions.ts @@ -0,0 +1,37 @@ +import { MICROPHONE, PermissionState } from "../constants"; + +export const checkPermission = async (permissionName: PermissionName, mediaType: MediaStreamConstraints): Promise => { + try { + if (!navigator.permissions) { + return false; + } + + const permission = await navigator.permissions.query({ name: permissionName }); + permission.onchange = () => { + location.reload(); + }; + + switch (permission.state) { + case PermissionState.GRANTED: + return true; + case PermissionState.PROMPT: + await navigator.mediaDevices.getUserMedia(mediaType); + return false; + case PermissionState.DENIED: + return false; + default: + return false; + } + } catch (error) { + return false; + } + }; + + export const checkMicrophonePermission = async (): Promise => { + return checkPermission(MICROPHONE, { audio: true }); + }; + + + export const checkAllPermissions = async (): Promise => { + return await checkMicrophonePermission(); + }; \ No newline at end of file diff --git a/packages/common/package.json b/packages/common/package.json index 5344bc7..38ae42b 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,6 +1,6 @@ { "name": "@universal-call-sdk/common", - "version": "1.3.3", + "version": "1.3.2", "type": "module", "scripts": { "dev": "vite", diff --git a/packages/core/lib/useCallSdk.ts b/packages/core/lib/useCallSdk.ts index 2cf95b9..cab7293 100644 --- a/packages/core/lib/useCallSdk.ts +++ b/packages/core/lib/useCallSdk.ts @@ -197,6 +197,10 @@ function UseCallSdk({AdapterClass, adapterOptions, metricsConfig, clickStreamCon adapter.transferCallToAgent(data); } + function checkAllPermissions(): Promise { + return adapter.checkAllPermissions(); + } + return { callState, registerOnCallIncoming, @@ -220,7 +224,8 @@ function UseCallSdk({AdapterClass, adapterOptions, metricsConfig, clickStreamCon registerOnAdapterReady, getAgentAvailability, getAvailableAgentsForCallTransfer, - transferCallToAgent + transferCallToAgent, + checkAllPermissions } } diff --git a/packages/core/package.json b/packages/core/package.json index d3e3dbf..d080112 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@universal-call-sdk/core", - "version": "1.3.3", + "version": "1.3.2", "type": "module", "scripts": { "dev": "vite",