diff --git a/packages/adapter-ameyo/lib/api.ts b/packages/adapter-ameyo/lib/api.ts index 4d4865d..2b87658 100644 --- a/packages/adapter-ameyo/lib/api.ts +++ b/packages/adapter-ameyo/lib/api.ts @@ -1,5 +1,5 @@ import getResponseWithoutCors from "@universal-call-sdk/common/lib/utils/getResponseWithoutCors.ts"; -import {GenericObject, RequestKeys} from "./types"; +import {CallTransferData, GenericObject, RequestKeys} from "./types"; import RequestType from "@universal-call-sdk/common/lib/types/RequestType.ts"; @@ -207,7 +207,7 @@ export const getAllAgentsForTransferCall = (sessionId: string) => { } -export const transferCallToAgent = (data: GenericObject, sessionId: string, crtObjectId: string, userCRTObjectId: string, campaignId: string) => { +export const transferCallToAgent = (data: CallTransferData, sessionId: string, crtObjectId: string, userCRTObjectId: string, campaignId: string) => { return getResponseWithoutCors({ url: `${window.BASE_AMEYO_URL}/ameyorestapi/voice/transferToUserInDifferentCampaign`, method: 'POST', diff --git a/packages/adapter-ameyo/lib/assets/js/ajaxClient.ts b/packages/adapter-ameyo/lib/assets/js/ajaxClient.ts index adb0862..4546289 100644 --- a/packages/adapter-ameyo/lib/assets/js/ajaxClient.ts +++ b/packages/adapter-ameyo/lib/assets/js/ajaxClient.ts @@ -96,8 +96,9 @@ function extractUserCallModelUpdatedPush(rawResponse) { } if (jsonData?.pushType === pushResponseTypes.UserCallMemberUpdatedPush) { const payload = jsonData?.data; + const validStatuses = ["ringing", "connected", "hungup"]; // handle for transfer call - if (payload?.associationType === 'transfer.association' && ['ringing', 'connected', 'hungup'].includes(payload?.status)) { + if (payload?.associationType === 'transfer.association' && validStatuses.includes(payload?.status)) { window.postMessage({ type: MessagingType.ON_AMEYO_CALL_TRANSFER, data: payload diff --git a/packages/adapter-ameyo/lib/main.ts b/packages/adapter-ameyo/lib/main.ts index 45075b2..699f96d 100644 --- a/packages/adapter-ameyo/lib/main.ts +++ b/packages/adapter-ameyo/lib/main.ts @@ -1,6 +1,13 @@ import IAdapter from "@universal-call-sdk/common/lib/Interfaces/IAdapter.ts"; import GenericObject from "@universal-call-sdk/common/lib/types/GenericObject.ts"; -import {AmeyoInitializationOptions, CALL_STATES, RequestKeys, SipAccountInfo, StateType} from "./types.ts"; +import { + AmeyoInitializationOptions, + CALL_STATES, + CallTransferData, + RequestKeys, + SipAccountInfo, + StateType +} from "./types.ts"; import MessagingType from "../types/MessagingType.ts"; import { ameyoHangupUser, @@ -33,7 +40,7 @@ class AmeyoAdapter implements IAdapter { onAgentAvailabilityChange: (isAgentAvailable: boolean) => void onForcedLogout: () => void onAgentsForCallTransfer: (data: GenericObject) => void - onCallTransfer: (data: GenericObject) => void; + onCallTransferStatus: (data: GenericObject) => void; }; private currentCallState: string; private eventListenerUrl: string; @@ -73,7 +80,7 @@ class AmeyoAdapter implements IAdapter { }, onAgentsForCallTransfer: () => { }, - onCallTransfer: () => { + onCallTransferStatus: () => { } }; this.sessionId = ''; @@ -198,7 +205,7 @@ class AmeyoAdapter implements IAdapter { this.callbacks.onForcedLogout() } if(data?.type === MessagingType.ON_AMEYO_CALL_TRANSFER){ - this.callbacks.onCallTransfer(data?.data); + this.callbacks.onCallTransferStatus(data?.data); } }; @@ -237,8 +244,8 @@ class AmeyoAdapter implements IAdapter { this.callbacks.onAgentsForCallTransfer = callback; } - registerOnCallTransfer(callback: (data: GenericObject) => void) { - this.callbacks.onCallTransfer = callback; + registerOnCallTransferStatus(callback: (data: GenericObject) => void) { + this.callbacks.onCallTransferStatus = callback; } acceptCall() { @@ -287,7 +294,7 @@ class AmeyoAdapter implements IAdapter { getAllAgentsForTransferCall(this.sessionId); } - transferCallToAgent(data: GenericObject) { + transferCallToAgent(data: CallTransferData) { transferCallToAgent(data, this.sessionId, this.currentCallMetadata?.crtObjectId, diff --git a/packages/adapter-ameyo/lib/types.ts b/packages/adapter-ameyo/lib/types.ts index 2ebfbb7..2617abf 100644 --- a/packages/adapter-ameyo/lib/types.ts +++ b/packages/adapter-ameyo/lib/types.ts @@ -66,3 +66,8 @@ export enum CALL_STATES { CALL_DISCONNECTED = 'CALL_DISCONNECTED', IDLE = 'IDLE', } + +export type CallTransferData = { + campaignId : string, + targetCRTObjectId: string +} diff --git a/packages/common/lib/Interfaces/IAdapter.ts b/packages/common/lib/Interfaces/IAdapter.ts index e748c36..f7c03c6 100644 --- a/packages/common/lib/Interfaces/IAdapter.ts +++ b/packages/common/lib/Interfaces/IAdapter.ts @@ -8,7 +8,7 @@ class IAdapter { registerOnAgentAvailabilityChange(callback: (isAgentAvailable: boolean) => void) {callback(false)} registerOnForcedLogoutListener(callback:()=>void) {callback()} registerOnAgentsForCallTransfer(callback: (data : GenericObject) => void) {callback({})} - registerOnCallTransfer(callback: (data: GenericObject) => void) {callback({})} + registerOnCallTransferStatus(callback: (data: GenericObject) => void) {callback({})} acceptCall() {} rejectCall() {} muteCall() {} diff --git a/packages/core/lib/useCallSdk.ts b/packages/core/lib/useCallSdk.ts index 281f1f1..9f6b069 100644 --- a/packages/core/lib/useCallSdk.ts +++ b/packages/core/lib/useCallSdk.ts @@ -112,8 +112,8 @@ function UseCallSdk({AdapterClass, adapterOptions}: { adapter.registerOnAgentsForCallTransfer(callback); } - function registerOnCallTransfer(callback: (data: GenericObject) => void) { - adapter.registerOnCallTransfer(callback); + function registerOnCallTransferStatus(callback: (data: GenericObject) => void) { + adapter.registerOnCallTransferStatus(callback); } function acceptCall() { @@ -173,7 +173,7 @@ function UseCallSdk({AdapterClass, adapterOptions}: { registerOnAgentAvailabilityChange, registerOnForcedLogoutListener, registerOnAgentsForCallTransfer, - registerOnCallTransfer, + registerOnCallTransferStatus, acceptCall, rejectCall, disposeCall,