in functions/source/publish-call-metadata/lambda_function.py [0:0]
def insert_into_table(receivedEventAt,transactionId,fromNumber,toNumber,streamingStatus,date_,time_,count):
'''
Publish transaction details and extraction results to dynamodb
'''
if streamingStatus == 'STARTED' and count==0:
entities={"MemberInfo": [], "ProviderInfo": []}
publish_to_websocket(transactionId,fromNumber,toNumber,streamingStatus,date_,entities)
table.put_item(
Item = {
'TransactionId': transactionId,
'LoggedEventOn': receivedEventAt,
'CallStartTime': time_,
'FromNumber': fromNumber,
'ToNumber': toNumber,
'StreamingStatus': streamingStatus,
'Date': date_
}
)
if streamingStatus == 'ENDED':
entities={"memberInfo": [], "providerInfo": []}
time.sleep(4)
member_name,member_ID,phone_number,dob=custom_entity_extraction(transactionId)
member_info = {}
provider_info = {}
member_info["memberName"]=member_name
member_info["memberIDNumber"]=member_ID
member_info["callbackPhoneNumber"]=phone_number
member_info["DOB"]=dob
entities["memberInfo"].append(member_info)
entities["providerInfo"].append(provider_info)
publish_to_websocket(transactionId,fromNumber,toNumber,streamingStatus,date_,entities)
table.update_item(
Key={'TransactionId': transactionId},
UpdateExpression = 'SET StreamingStatus = :value1, customEntities = :value2',
ExpressionAttributeValues = {
':value1': streamingStatus,
':value2': entities
})
# time.sleep(2)
prefix = f'voiceConnectorToKVS_{transactionId}_'
keys=get_s3_keys(os.environ['SINGLE_FILES_S3_BUCKET'], prefix)
s3_path=merge_audios(os.environ['SINGLE_FILES_S3_BUCKET'],keys[0],keys[1])
update_table_with_merged_s3_path(s3_path,transactionId)
else:
return