That sounds like a classic case of firewall blocking traffic.
Do a packet trace and see what end is sending the BYE packet, that will give an idea of what end is not seeing traffic and work it from there.
Chances are one end or other is not seeing traffic so thinks call has terminated.
Robert Wilensky:
We've all heard that a million monkeys banging on a million typewriters will eventually reproduce the entire works of Shakespeare. Now, thanks to the Internet, we know this is not true.