I'm taking over an existing Install of Unity 4.0(5), CCM 4.1(3). Licenses for 32 ports.
What's interesting about this install is all 32 ports are configured to Answer Calls AND do MWIs, Dialouts, and Traps.
In the other installs I did, I would usually allocate the last 2 or 3 ports just to handle outbounds calls such as MWIs.
Is there a right or wrong way to allocate the ports?
Couple reason to separate ports out, you're on the right track. And like Rob alluded to these are mostly risks on busy systems:
1) Ports that are enabled for both outdials (MWIs, TRaP, notifications) and answering calls are at risk for collisions between incoming and outgoing calls. We have gone a long way to resolve these collision issues, but it's a tricky timing scenario so can still happen and can result in dropped calls or even locked ports.
2) On busy systems, you might find you need dedicated ports for MWIs/notifications and incoming calls to ensure MWIs are being lit in a timely fashion. For example, if you allow inbound calls on all ports, and all ports are being used by incoming calls at a given time, MWIs will queue up until a port is free. This scenario will also increase the chance of running into a collision, mentioned above.
3) If you do an MWI resynch on a system where all ports are MWI capable, the MWI requests will use up more of the available ports, and you again have increased chance of collisions.
As far as allocation, like Rob refers to, we used to recommend something like 75/25 (answer/outgoing), but removed the recommendation from the docs because it really depends on the usage pattern on the system so we leave it to the admin to decide. For instance, a site with 5000 users that regularly does a system-wide MWI resynch will probably want more than 2-3 ports available for MWIs or else it will take a long time to finish the resynch. A site that uses TRaP or message notifications heavily will also want more than 2-3 ports to make sure outdials always have an available port. Just a couple examples.