Confire Asterisk as hosted server

We need to configure an Asterisk server to support multiple companies. Some of the companies will use this server as PBX others will run their call center on top (we plan to use vicidail).

Wonder if there are some general guidelines how this should be done in terms of dialplan, using asterisk or asteriskNOW etc.

The customers will be adding/removing exts/seats dynamically after the system is up and running. Wonder if we need to use asterisj realtime feature for this.