For 40 Users you need multiple servers to run it
1 Database Server
Intel QuadCore 3.0 or higher Processor
Intel Motherboard (gigabit LAN port)
8 GB RAM DDR 800 or higher MHZ much better
160 GB Veloci Raptor 15,000 RPM SATA (the use of SATA or SAS drives are preferred)
Ubuntu 8.0.4.2 / Open Suse 10.3 or 11.0 64 bit Operating System
Recommended since it works well with RAM thats above 2 GB
2 Asterisk Servers (20 to 25 agents per asterisk server, load balanced)
Intel Core2 Duo Processor 2.5 ghz
Intel Motherboard (gigabit LAN port)
4 GB DDR 800 mhz or higher mhz much better
160 GB Western Digital Veloci Raptor 15,000 RPM SATA (SAS / SCSI Drives are preferred )
Ubuntu 8.0.4.2 / Open Suse 10.3 or 11.0 64 (x_64) bit operating system recommended since it works well with RAM thats above 2 GB
1 Web Server / Recording Archive
Intel Core2Duo Processor 2.5 GHZ
Intel Motherboard
2 GB DDR 800 or higher mhz much better
500 GB SATA Hard Drive (bigger space the better since this will contain your recordings)
Ubuntu 8.0.4.2 / Open Suse 10.3 or 11.0 64 (x_64) bit operating system recommended
Eaccelerator package must be compiled and installed for better server performance.
Its much better if you install vicidial by hand, the auto installer will only install on a single server scenario which means that the database / web / asterisk will just be on one server which is only good for a couple of seats but as you scale up this is not the kind of setup your looking for. As per rule of thumb you can stick up to 25 agents per asterisk server as to keep things normal.
Heres a diagram of the multi server structure:
* Agents login through the web server, web server communicates with mysql database in displaying their leads etc
* Agents uses soft or hardphones that are connected to the asterisk servers, when an agent logs in through the web interface, the asterisk server calls their softphone and put them in a meetme conference
* The asterisk server will dial the numbers or the leads that are loaded in the mysql database, loading of leads is done via the web interface
* Once a call is connected the asterisk server passes to a meetme conference where an agent is waiting, agent then gets a live call, an indication of that would be the LIVE CALL image would turn green on the agent screen
* Vicidial Uses up meetme and agi scripts which are resource hogs thats why as you scale up its advisable to separate the other resource hog components namely mysql for one and apache to reach desired performance, lesser mysterious errors