I'd start by looking at peer to peer WCF services:
http://msdn.microsoft.com/en-us/library/cc297274.aspx[
^]
I think you should reconsider you architecture: it will have scalability problems as the traffic goes through the server. I better solution, depending upon what you need,
might be
- When client "logs in" the machine is resistered at the central server
- When one client calls another it gets the information it needs to connect from the central server
- The client creates a peer-to-peer connection with the called client. .
This way the central server is not involved with the conversation. The main drawback with this set up is that it is more complicated to develop.