Read up on Asterisk and you will find that it can do just about anything a regular PABX can do. It does have a learning curve, though.
If you are competent in Linux I recommend that you put the latest Asterisk CVS onto the non-X core of your choice. If that last sentence doesn't really make sense to you, then I recommend downloading Asterisk@Home for a smooth entry into the world of Asterisk.
Either way, I would start at
www.asterisk.org and continue from there.