Fake Supervision
If your telco does not provide far end disconnect supervision or if they just dont do it well you may need to “fake” supervision in order for your lines to disconnect properly. You may fake supervision by adding a few lines to your zapata.conf .
Add the following to your /etc/asterisk/zapata.conf
callprogress=yes
busydetect=yes
After doing this restart asterisk. There may still be a disconnect delay but it will be reduced.