How to build a simple call center server

Due to its outstanding flexibility and reliability, Ozeki VoIP SIP SDK also allows to build call center servers. This article introduces call center servers briefly, so you will be fully familiar with all the essential terms concerning the topic. Then you can go to the source code pages.


Call centers are company communication systems that contain a server and more client applications. The main purpose of these systems is to serve a great amount of customers at the same time.

Call center server is a software that receives the incoming call from the customers and routes it to one of the call center agents. It usually operates with an IVR (interactive voice response) system that navigates the customers through a tree-structured menu and only transfers the call to a human operator if it is needed.

voip call center server
Figure 1 - VoIP call center server

Call center servers are usually the first entry points of a company's communication system, therefore they have to fulfill the usual requirements of a VoIP end-point, but at the same time, they need to be able to transfer the incoming calls to the call center clients, where the call center agents can answer the customers' questions.

Call center server implementation in C#

For building a call center server you need to have an SDK license that supports multiple calls as the call centers usually receives many simultaneous calls. When you have a suitable license, you need to specify what functions you will want to implement in the server solution.

The call center server can be extended from a simple softphone server or even an IVR server solution can be used for this purpose. When implementing a simple call center server, you need to extend your softphone solution with a list of available call center agent to whom the incoming calls can be transferred to. You will also need a List of the busy operators. These lists will be handled so that when a call is transferred to an operator, the operator is removed from the available list and is put in the busy list.

Operator operator = AvailableOperators.First();
Code 1 - A customer call is transferred to an available operator

When a call is ended, the operator will be available again and they need to be put back into the AvailableOperators list. For this purpose you need be able to notify the call center server that a call was ended. For this purpose you can define an event in the Operator class that will be invoked when the operator has ended the call.


This article introduced you the basic knowledge about call center servers and showed how Ozeki VoIP SIP SDK can help you to fulfill your wishes about this topic. If you have read through this page carefully, you already have all the knowledge you need to start on your own solution.

As you are now familiar with all the terms concerning this topic, now it is time to take a step further and explore what other extraordinary solution Ozeki VoIP SIP SDK can provide to you.

If you have any questions or need assistance, please contact us at

Related Pages

More information