onToolbarAgentCommand
このイベント・サブスクリプションは、CTIアプリケーションでのMCA統合の初期化の一部として追加する必要があります。
このイベントは、相互作用コマンドをCTIからアプリケーションに渡すために使用されます。 これは制御可能なイベントです。 そのため、ユーザーがこのイベントを解決または拒否して制御する場合は、このイベント・コールバック関数の戻り値としてpromiseを渡す必要があります。 このイベント・サブスクリプションの通知時に、ユーザーはイベント・レスポンスでコマンド(たとえば、getActiveInteractionCommands)を確認し、そのoutDataでpromiseを解決することにより、そのコマンドのoutDataを渡すことができます。 イベント・サブスクリプションは、CTI統合のMCAコードの初期化中に1回のみ追加する必要があります。
ノート: ユーザーは、このイベント通知をセッションに対して1回のみ取得します。
onToolbarAgentCommandイベントのサブスクリプションを追加するTypescriptの例を次に示します。
/// <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 request: IMcaEventRequest = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('onToolbarAgentCommand') as IMcaEventRequest;
phoneContext.subscribe(request, (response: IEventResponse) => {
const dataUpdateResponse = response as IMcaOnToolbarAgentCommandEventResponse;
const data: IMcaOnToolbarAgentCommandDataResponse = dataUpdateResponse.getResponseData();
const command: string = data.getCommand();
return new Promise((resolve, reject) => {
switch (command) {
case "makeAvailable":
break;
case "makeUnavailable":
break;
case "getActiveInteractionCommands":
const outData = {
'channel': 'PHONE',
'supportedCommands': [{
'name': "hold", 'toggleCommand': "unhold", 'defaultEnabled': true,
'defaultVisible': true, 'displayName': "Hold", 'position': 1, 'icon': ""
},
{
'name': "unhold", 'toggleCommand': "hold", 'defaultEnabled': false,
'defaultVisible': false, 'displayName': "Off Hold", 'position': 1, 'icon': ""
},
{
'name': "mute", 'toggleCommand': "unmute", 'defaultEnabled': true,
'defaultVisible': true, 'displayeName': "Mute", 'position': 2, 'icon': ""
},
{
'name': "unmute", 'toggleCommand': "mute", 'defaultEnabled': false,
'defaultVisible': false, 'displayName': "Unmute", 'position': 2, 'icon': ""
},
{
'name': "record", 'toggleCommand': "stopRecord", 'defaultEnabled': true,
'defaultVisible': true, 'displayName': "Record", 'position': 3, 'icon': ""
},
{
'name': "stopRecord", 'toggleCommand': "record", 'defaultEnabled': false,
'defaultVisible': false, 'displayName': "Stop Recording", 'position': 3, 'icon': ""
},
{
'name': "transfer", 'toggleCommand': null, 'defaultEnabled': true,
'defaultVisible': true, 'displayName': "Transfer", 'position': 4, 'icon': ""
},
{
'name': "disconnect", 'toggleCommand': null, 'defaultEnabled': true,
'defaultVisible': true, 'displayName': "Hang Up", 'position': 5, 'icon': ""
}]
};
data.setOutdata(outData);
break;
}
data.setResult('success');
resolve(data);
});
});
onToolbarAgentCommandイベントのサブスクリプションを追加するJavaScriptの例を次に示します。
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE');
const request = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('onToolbarAgentCommand');
phoneContext.subscribe(request, (response) => {
const dataUpdateResponse = response;
const data = dataUpdateResponse.getResponseData();
const command = data.getCommand();
return new Promise((resolve, reject) => {
switch (command) {
case "makeAvailable":
break;
case "makeUnavailable":
break;
case "getActiveInteractionCommands":
const outData = {
'channel': 'PHONE',
'supportedCommands': [{
'name': "hold", 'toggleCommand': "unhold", 'defaultEnabled': true,
'defaultVisible': true, 'displayName': "Hold", 'position': 1, 'icon': ""
},
{
'name': "unhold", 'toggleCommand': "hold", 'defaultEnabled': false,
'defaultVisible': false, 'displayName': "Off Hold", 'position': 1, 'icon': ""
},
{
'name': "mute", 'toggleCommand': "unmute", 'defaultEnabled': true,
'defaultVisible': true, 'displayeName': "Mute", 'position': 2, 'icon': ""
},
{
'name': "unmute", 'toggleCommand': "mute", 'defaultEnabled': false,
'defaultVisible': false, 'displayName': "Unmute", 'position': 2, 'icon': ""
},
{
'name': "record", 'toggleCommand': "stopRecord", 'defaultEnabled': true,
'defaultVisible': true, 'displayName': "Record", 'position': 3, 'icon': ""
},
{
'name': "stopRecord", 'toggleCommand': "record", 'defaultEnabled': false,
'defaultVisible': false, 'displayName': "Stop Recording", 'position': 3, 'icon': ""
},
{
'name': "transfer", 'toggleCommand': null, 'defaultEnabled': true,
'defaultVisible': true, 'displayName': "Transfer", 'position': 4, 'icon': ""
},
{
'name': "disconnect", 'toggleCommand': null, 'defaultEnabled': true,
'defaultVisible': true, 'displayName': "Hang Up", 'position': 5, 'icon': ""
}]
};
data.setOutdata(outData);
break;
}
data.setResult('success');
resolve(data);
});
});