Voicemail does not detect disconnect

^^ Probably this. You can test by making an inbound call, answering on a local extension and only hang up at the far end. You will probably see that the line remains open for as long as you have the local extension off hook. You need to config disconnect supervision properly on your ATA.

This came up recently in this thread Hangup doesn't work - #9 by marcoelledi