CPU requirements can often be a challenge. The ideal scenario will be to have a dualcore CPU, wherein the entire system is bound to one of the cores (processor affinity mask), and the operating system and other non-real-time applications use the other core. In this scenario, the operating system will use one core whenever possible. (Virtualization is also an option.)
When determining hardware requirements, you need to factor in the number of parallel calls, the number of registrations that will be kept alive on the system, and transcoding issues (i.e., will the CPU need to translate the codecs?). If the CPU only has to pass the packets through, the CPU performance is practically limited by the I/O-subsystem.
Hard Disk Requirements
Hard disk space is also dependent on whether you will be recording calls and the length of time those recordings will be kept on the system. At minimum, 100 MB will be needed, but call volume and other variables will determine whether 100 MB is really sufficient.
Although the hard disk requirement for the installation is minimal (less than 20 MB), it is essential that you keep an eye on the system once it has been in production for a while. Additional languages, recorded calls, and log files can fill the disk quickly.