agentStateEvent
This operation notifies the Fusion application of a change in the user's signed in or availability status for the specified channel. This API should be called immediately after the initialization to make agent available for calls, even though the operation name includes "event".
Here's a Typescript example calling the agentStateEvent operation.
/// <reference path="uiEventsFramework.d.ts"/>
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext: IMultiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext: IPhoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE') as IPhoneContext;
const requestObject: IMcaAgentStateEventActionRequest = uiEventsFrameworkInstance.requestHelper.createPublishRequest('agentStateEventOperation') as IMcaAgentStateEventActionRequest;
const state: boolean = true;
requestObject.setEventId('1');
requestObject.setIsAvailable(state); /* true or false */
requestObject.setIsLoggedIn(true); /* true or false */
requestObject.setState(state ? 'AVAILABLE' : 'UNAVAILABLE'); /*'AVAILABLE' : 'UNAVAILABLE'*/
requestObject.setStateDisplayString(state ? 'Idle' : 'On Break. Lunch break'); /* 'Idle' : 'On Break. Lunch break'*/
requestObject.setReason(null as any);
requestObject.setReasonDisplayString(state ? 'Idle' : 'On Break'); /* 'Idle' : 'On Break' */
requestObject.setInData({ 'phoneLineId': '1' }); /* { 'phoneLineId': '1' } */
phoneContext.publish(requestObject).then((operationResponse: IOperationResponse) => {
const mcaAgentStateEventActionResponseData: IMcaAgentStateEventActionResponseData = (operationResponse as IMcaAgentStateEventActionResponse).getResponseData();
mcaAgentStateEventActionResponseData.isSuccess()
}).catch((error) => {
console.log(error);
});
Here's a JavaScript example calling the agentStateEvent operation.
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE');
const requestObject = uiEventsFrameworkInstance.requestHelper.createPublishRequest('agentStateEventOperation');
const state = true;
requestObject.setEventId('1');
requestObject.setIsAvailable(state); /* true or false */
requestObject.setIsLoggedIn(true); /* true or false */
requestObject.setState(state ? 'AVAILABLE' : 'UNAVAILABLE'); /*'AVAILABLE' : 'UNAVAILABLE'*/
requestObject.setStateDisplayString(state ? 'Idle' : 'On Break. Lunch break'); /* 'Idle' : 'On Break. Lunch break'*/
requestObject.setReason(null);
requestObject.setReasonDisplayString(state ? 'Idle' : 'On Break'); /* 'Idle' : 'On Break' */
requestObject.setInData({ 'phoneLineId': '1' }); /* { 'phoneLineId': '1' } */
phoneContext.publish(requestObject).then((operationResponse) => {
const mcaAgentStateEventActionResponseData = operationResponse.getResponseData();
mcaAgentStateEventActionResponseData.isSuccess()
}).catch((error) => {
console.log(error);
});