This is a comment, but formatting comments is hard so I'm using the answer box. It is much easier to read the input using read:
while IFS=\| read Date time duration callee caller calleeLocation callerLocation
do
...
done < input-file
will do all the assignments for you and you can avoid the parsing that you are doing.