Enable Live Transcripts During a Phone Call
To enable the live transcript feature, you must subscribe to onToolbarAgentCommand event and during getActiveInteractionCommands, create a response object as follows.
Here's an example of the Response object structure for the transcriptEnabled flag:
{
'supportedCommands': [],
'supportedFeatures': [ // Add feature 'transcriptEnabled' and set isEnabled to true
{
'name': 'transcriptEnabled',
'isEnabled': true
}
]
}
Once this feature is enabled, the Notes field in the Fusion Engagement panel is replaced with a transcript component and the messages, "agent joined the call" and "customer joined the call" are shown in the Engagement panel along with a Call Details button. Agents can enter notes during a call by clicking the Call Details button.
Here's a Typescript example:
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const mcaContext: IMultiChannelAdaptorContext = await frameworkProvider.getMultiChannelAdaptorContext();
const phoneContext: IPhoneContext = await mcaContext.getCommunicationChannelContext('PHONE') as IPhoneContext;
const request = frameworkProvider.requestHelper.createSubscriptionRequest('onToolbarAgentCommand');
phoneContext.subscribe(request, (response) => {
const agentCommandResponse: IMcaOnToolbarAgentCommandEventResponse = response as IMcaOnToolbarAgentCommandEventResponse;
return new Promise((resolve, reject) => {
const agentCommandResponseData: IMcaOnToolbarAgentCommandDataResponse = agentCommandResponse.getResponseData();
const commandObject: IMcaOnToolbarInteractionCommandData = agentCommandResponse.getResponseData().getData();
const command: string = agentCommandResponse.getResponseData().getCommand();
if (command === 'getActiveInteractionCommands') {
const outData = {
'supportedCommands': [],
'supportedFeatures': [
{
'name': 'transcriptEnabled',
'isEnabled': true
}
]
};
agentCommandResponseData.setOutdata(outData);
commandObject.result = 'success';
}
resolve(commandObject);
})
})
Here's a JavaScript example:
const provider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('test', 'v1');
const mcaContext = await provider.getMultiChannelAdaptorContext();
const phoneContext = await mcaContext.getCommunicationChannelContext('PHONE');
const request = provider.requestHelper.createSubscriptionRequest('onToolbarAgentCommand');
phoneContext.subscribe(request, (response) => {
const agentCommandResponse = response;
return new Promise((resolve, reject) => {
const agentCommandResponseData = agentCommandResponse.getResponseData();
const commandObject = agentCommandResponse.getResponseData().getData();
const command = agentCommandResponse.getResponseData().getCommand();
if (command === 'getActiveInteractionCommands') {
const outData = {
// For Enabling the features set isEnabled as true
'supportedFeatures': [
{
'name': 'transcriptEnabled',
'isEnabled': true
}
]
};
agentCommandResponseData.setOutdata(outData);
commandObject.result = 'success';
}
resolve(commandObject);
})
})