在Amazon Connect服务中,Concurrent Calling是指当有来电时,所有的坐席都应该同时响铃,以确保来电尽快得到响应,提高客户服务的质量和效率。实现该功能的代码示例如下:
const AWS = require('aws-sdk');
const connect = new AWS.Connect();
exports.handler = async (event, context) => {
try {
// 获取所有坐席的ARN
const agentsResponse = await connect.listUsers({
InstanceId: 'INSTANCE_ID',
UserTypes: ['AGENT']
}).promise();
const agentArns = agentsResponse.UserSummaryList.map(summary => summary.Arn);
// 将所有坐席加入队列
await connect.updateQueue({
InstanceId: 'INSTANCE_ID',
QueueId: 'QUEUE_ID',
Description: 'Queue for Concurrent Calling',
AgentArns: agentArns
}).promise();
// 监听队列中的来电事件
const eventStream = connect.getEventStream({
InstanceId: 'INSTANCE_ID',
AgentEventType: 'Ringing',
ContactFlowId: 'CONTACT_FLOW_ID',
QueueId:'QUEUE_ID',
ReadOnly:true,
});
// 当有来电时,同时让所有坐席响铃
eventStream.on('data', function (chunk) {
console.log('Event received:', chunk.toString());
agentArns.forEach(async (arn) => {
await connect.startOutboundVoiceContact({
InstanceId: 'INSTANCE_ID',
ContactFlowId: 'CONTACT_FLOW_ID',
DestinationPhoneNumber: 'CUSTOMER_PHONE_NUMBER',
SourcePhoneNumber: 'CALLER_ID_PHONE_NUMBER',
Attributes: {},
QueueId: 'QUEUE_ID',
UserId: arn.replace('user', 'agent')
}).promise();
});
});
// 停止监听
eventStream.on('error', function (error) {
console.error(error);
context.fail(error);
});
} catch (error) {
console.error(error);
context.fail(error);
}
}
以上代码演示了如何使用AWS SDK for Node.js来实现在Amazon Connect服务中同时让所有坐席响铃的功能。其中,根据实际情况,需要替换代码中的INSTANCE_ID、QUEUE_ID、CONTACT_FLOW_ID、CUSTOMER_PHONE_NUMBER、CALLER_ID_PHONE_NUMBER等参数。