機械翻訳について

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);
    });
});