Voicemail calls not hanging up

I’ve been dealing with this problem for a while now and hoping I can find a fix for it. I have a problem with voicemail calls hanging and asterisk not actually delivering the vm to the end user until I reboot the phone server. In some cases it will hang for a month and I wouldnt know about it until the end user comes to me about a voicemail they just received from a month ago, despite checking that vm box everyday. So it appears that the actual recording of the voicemail works, but asterisk cant deliver the vm until the call is terminated at the phone server.
Reviewing the “sip show channelstats” command and the active channels section of the asterisk cli section in freepbx, I can see that the calls are hung (some calls for a long time) and that there’s a lot of sent packet loss. The logs are below.

Has anyone else experienced this? More importantly, does anyone know how to fix this?

sip show channelstats:
Peer— Call ID--------- Duration- Recv pkt:— Lost pkt:---- %------- Jitter- Send pkt:----- Lost pkt:— %---------- Jitter
X.X.X.X BW084527359 01:29:06 0000049036 0000000002 ( 0.00%) 012334 0000000267K 0014947626 (5597.19%) 000000
X.X.X.X BW133844846 140:35:4 0000021209 0000000002 ( 0.01%) 012334 0000025306K 0009966889 (39.38%) 000000
X.X.X.X BW081905413 121:54:4 0000049551 0000000000 ( 0.00%) 012334 0000021945K 0002823466 (12.87%) 000001

active channels in freepbx:
SIP/bwas1-vir.atl0.c s-NOANSWER@macro-vm: Up VoiceMail(199@default,su)
SIP/bwas1-vir.atl0.c s-NOANSWER@macro-vm: Up VoiceMail(199@default,su)
SIP/anonymous.invali s-BUSY@macro-vm:3 Up VoiceMail(199@default,sb)