This would be purly based on the features you have avalible in your telephone system so you would have to look at the features of your pbx.
Or you could use a virtual number, for example in the uk BT have just released some clever stuff using virtual numbers
http://web21c.bt.com/services
Where you can control the call and call web services to authenticate users.