diff --git a/packages/adapter-ameyo/CHANGELOG.md b/packages/adapter-ameyo/CHANGELOG.md index 2be797c..a2fcc85 100644 --- a/packages/adapter-ameyo/CHANGELOG.md +++ b/packages/adapter-ameyo/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## 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 diff --git a/packages/adapter-ameyo/lib/main.ts b/packages/adapter-ameyo/lib/main.ts index 7cdf338..612c480 100644 --- a/packages/adapter-ameyo/lib/main.ts +++ b/packages/adapter-ameyo/lib/main.ts @@ -39,6 +39,7 @@ import ClickStreamProcessor from "@universal-call-sdk/common/lib/utils/clickStre 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; @@ -446,6 +447,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 db5bf8b..d259699 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.2.6", + "version": "1.3.1", "type": "module", "scripts": { "dev": "vite", @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "@universal-call-sdk/common": "^1.2.6", + "@universal-call-sdk/common": "^1.3.1", "uuid": "^11.0.3" }, "devDependencies": { diff --git a/packages/common/CHANGELOG.md b/packages/common/CHANGELOG.md index 22b30f3..a6bff71 100644 --- a/packages/common/CHANGELOG.md +++ b/packages/common/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## 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 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 aa0ad99..a38c026 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,6 +1,6 @@ { "name": "@universal-call-sdk/common", - "version": "1.2.6", + "version": "1.3.1", "type": "module", "scripts": { "dev": "vite", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index cce76fd..b3d5ba6 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## 1.3.1 (2025-01-30) + +**Note:** Version bump only for package @universal-call-sdk/core + + + + + ## 1.2.6 (2025-01-29) **Note:** Version bump only for package @universal-call-sdk/core 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 aad9c1e..19037ae 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@universal-call-sdk/core", - "version": "1.2.6", + "version": "1.3.1", "type": "module", "scripts": { "dev": "vite",