A contact center uses a service system to establish communication over a data network, such as the internet, between customer endpoint systems and the endpoint systems of customer service representatives, CSRs, of the contact center. The service system establishes communication between endpoint systems by joining them to an appropriate communication session with an associated transport mechanism that allows the exchange of data across the network between the joined endpoint systems. For each communication session, a respective service instance and session instance are created. The service instance provides service specific behaviour while the session instance provides generic operations for adding and removing endpoint systems to the communication session. By specifying different service-specific behaviors, a range of corresponding customer services can be offered.