onToolbarInteractionCommand
Fusionアプリケーションでコールを受信すると、Fusionアプリケーションはアクティブなコールを受け入れるか、拒否するか、または切断できます。
onToolbarInteractionCommandは、Fusionアプリケーションからこの情報(受入れ、拒否または切断)で起動されます。 これは制御可能なイベントです。 そのため、ユーザーがこのイベントを解決または拒否して制御する場合は、このイベント・コールバック関数の戻り値としてpromiseを渡す必要があります。 このイベント・サブスクリプションの通知時に、ユーザーはイベント・レスポンスでコマンドを確認できます。 サポートされているコマンドは、accept、disconnect、rejectおよびsetActiveです。
これらのコマンドは、Fusionアプリケーションでエージェントが行う切断操作の受入れに対応します。 ユーザーは、このイベント・レスポンスのコールバックで、これらのコマンドごとにロジックをワイヤー・アップできます。 イベント・サブスクリプションは、CTI統合のMCAコードの初期化中に1回のみ追加する必要があります。
使用例
CTIベンダーがコール・リクエストを行う場合は、UEFパブリッシュAPIを使用して、FusionアプリケーションへのNewCommActionリクエストを開始する必要があります。 これにより、コールの受入れまたは拒否を行うためのコール通知がFusionアプリケーションに表示されます。 現在、エージェントはこのコールを受け入れるか、このコールを拒否できます。 前述のエージェントからのアクションによると、CTIインテグレーションはapiを呼び出してエージェントによるコール受け入れアクションのコール接続を行うか、またはCTIインテグレーションはエージェントによるコール拒否アクションのコール・リクエスト全体を拒否する必要があります。
このシナリオでは、onToolbarAgentCommandは、エージェントの選択についてCTI統合アプリケーションに通知します。つまり、受入れまたは辞退のいずれかを行い、そのCTI統合に基づいて、UEF StartComm Apiをコールしてコール接続を有効にするか、UEF CloseComm apiをコールしてコールを完全に拒否するロジックをワイヤー・アップできます。
onToolbarInteractionCommandイベントのサブスクリプションを追加する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('onToolbarInteractionCommand') as IMcaEventRequest;
phoneContext.subscribe(request, (response: IEventResponse) => {
const dataUpdateResponse = response as IMcaOnToolbarInteractionCommandEventResponse;
const data: IMcaOnToolbarInteractionCommandDataResponse = dataUpdateResponse.getResponseData();
const command: string = data.getCommand();
return new Promise((resolve, reject) => {
switch (command) {
case "accept":
// publish startCommEvent action
break;
case "disconnect":
// publish closeCommEvent with proper reason
break;
case "reject":
// publish closeCommEvent with proper reason
break;
}
data.setResult('success');
resolve(data);
});
});
onToolbarInteractionCommandイベントのサブスクリプションを追加する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('onToolbarInteractionCommand');
phoneContext.subscribe(request, (response) => {
const dataUpdateResponse = response;
const data = dataUpdateResponse.getResponseData();
const command = data.getCommand();
return new Promise((resolve, reject) => {
switch (command) {
case "accept":
// publish startCommEvent action
break;
case "disconnect":
// publish closeCommEvent with proper reason
break;
case "reject":
// publish closeCommEvent with proper reason
break;
}
data.setResult('success');
resolve(data);
});
});