"call contact": do you want to call those clients (using you own PBX) or do you want clients call you using locally available resources such as Skype installed on their desktops?
If you will call those clients, then install PBX that can be controlled via network. Most modern hardware PBX has such interface, but there is also software PBX: asterisk that can be controlled via network, or via filesystem. All I had to do to make call with Asterisk is to create "call file" and move it to directory Asterisk is watching for such files. In my case it is done via simple CGI script that also "normalize" phone numbers (remove spaces and other special characters, add prefix).
If clients will call you then it is not easy. They will have various environments. The only solution come to my mind is to make you available via Skype and publish your SkypeID on the web pages.