If you have a group of agents who need 100% voice recording, then you purchase enough VM ports to match the number of agent seats you have (not the number of agents... e.g. 5 seats filled by 25 agents on shifts only needs 5 ports). Reserve these ports for voice recording.
Then add ports for AA's, VM access, and announcements for queues... FWIW, if you are going to permit DTMF in queues, then you must turn announcement synchronization off, which drives VM port usage up (port is no longer shared between people hearing the queued/still-queued messages).
If other words, the only HARD number you can calculate is the ports required for recording. Everything else is a bit of a guess.
Another way to calculate it is to look at the maximum number of lines you have. If you have 10 lines, you could never record more than ten calls, or have ten people listening to the AA, or announcements etc. The only unknown would be people internal to the business accessing VM to retrieve messages. So 10-12 ports would cover everything. But this would probably be overkill.
Key point:
voice recording is the killer when it comes to ports.
GB