in amplify/backend/function/ConnectDialerJS/src/index.js [127:178]
async function callOutbound(phoneNumbers){
// Start outbound call for each entry and update entry in DB
//const promises = [];
await phoneNumbers.forEach(async (item) => {
var formatted = item['telephoneNumber'];
console.log(`Attempting Call: ${formatted}`);
let connectParams = {
DestinationPhoneNumber: formatted,
ContactFlowId: cFlowID,
InstanceId: cID,
SourcePhoneNumber: sNum
};
try {
var response = await connect.startOutboundVoiceContact(connectParams).promise();
console.log(response);
console.log(`Call success for: ${response}`);
} catch (error) {
console.error(error);
}
//publishCWMetric()
// Now Datetime
var now = new Date();
var nowseconds = Math.round(now.getTime() / 1000);
var nowisostring = now.toISOString();
let dynamoParams = {
TableName: storageContactsStoreName,
Key: {
"telephoneNumber": item["telephoneNumber"]
},
UpdateExpression: "set contactAttempts = contactAttempts + :val, lastAttempt=:la, lastAttemptDateTime=:ladt",
ExpressionAttributeValues: {
':val': 1,
':la': nowseconds,
':ladt': nowisostring
}
};
console.log(`update DDB params: ${JSON.stringify(dynamoParams)}`);
try {
var result = await docClient.update(dynamoParams).promise();
} catch (error) {
console.error(error);
}
console.log(`queryDDB result: ${result}`);
});
}