The customer's setup is from CUCM to a Cisco 4331 router (R1) to another Cisco 4331 T1 PRI router (R2)to a 3rd party SIP application. I named the routers R1 and R2 for naming sakes.
The 3rd party SIP application registers with the R2 router just up stream from it. 99% of the time, calls work just fine. In the 1% case, we are seeing a SIP BYE getting sent to the 3rd party application to hang the call up with cause=102 [Recovery on timer expiry]. This is the dropped call issue.
Here's a screenshot of the wireshark capture from the Windows machine the 3rd party SIP application is running on:
10.162.97.33 - Cisco 4331 Router (R2)

Everything I can find on that cause code 102 is during the SIP call setup phase. In this case, the call was up for over 10 minutes before it dropped. Audio was passing both ways completely fine.
Any information or debugging knowledge anyone can provide would be helpful.