Details, cool.
the dispo_epoch value (call end time) equals the talk_epoch value (call start time) for the majority of records where talk time is normally present. So, when the Cron task AST_cleanup_agent_log is executed, the difference between the two values (0) replaces the talk time and ends up in the wait time.
Is this for all records? Or some?
Have you determined why the dispo_epoch and talk_epoch are identical? Obviously those two epoch times should be different on any call that actually connected to the agent, by at least one second.
What is your asterisk version (literal, copy-paste! include punctuation if present!) from /etc/astguiclient.conf and from admin->servers for the server(s) in question.
How did you install your system (Full installer with Version and/or link to instruction set if you did not use a Vicibox .iso)?
Is it possible your AST_cleanup_agent_log script is the wrong version or has code it in expecting a different db_schema or asterisk version?
Can you try a single sample call to track these values and see why they are wrong? Trace it script by script ...