Ozeki VoIP SIP SDK provides a first-rate technology for softphone development. Instead of wasting time for long development process...


Ozeki VoIP SIP SDK provides a first-rate technology for softphone development. Instead of wasting time for long development process on your own, you can take advantage on this decent software development kit. You will see how easy it is to create a softphone when you use Ozeki SIP SDK. A basic programming knowledge is enough, since Ozeki SIP SDK provides the base for the VoIP solution you are working on.

On the pages below you will find all the information you need to build your own softphone. You can learn how to develop softphones on basic and advanced level, how to handle calls with the implemented softphone, how to customize the softphone GUI, etc. The various codecs and clients are also explored. The journey to softphone development is starting right ahead.

This example demonstrates how to implement the sip invite method in c#. The INVITE SIP method indicates that a client is being invited to participate in a call session. To use this example, you need to have Ozeki VoIP SIP SDK installed, and a reference to ozeki.dll should be added to your visual studio project. It's also recommended to visit the SIP REGISTER article before you begin to study how to perform SIP INVITE.

What is a SIP INVITE method? When is it needed?

The INVITE is a SIP method that specifies the action that the requester (Calling Party) wants the server (Called Party) to take. The INVITE message contains a number of header fields. Header fields are named attributes that provide additional information about a message. The ones present in an INVITE include a unique identifier for the call, the destination address, Calling Party Address, information about supported codecs, and more information about the type of session that the requester wishes to establish with the server.

Sip invite is being explained by an example as well, as you can see on Figure 1; from Ozeki VoIP SIP SDK an INVITE request is being sent through a PBX, to a Softphone. A "101 Trying" message is being sent back, and if the request has reached the destination, a "180 Ringing" message is going to indicate that the softphone is ringing. When the session is being established, a "200 OK" message is being sent to the caller, which than sends back an "ACK" message to confirm it received the final response to the INVITE request.

How to implement SIP INVITE method using C#?

To perform the SIP INVITE task in C# using Ozeki VoIP SIP SDK, you need to implement the register process, than you need to use the IPhoneCall interface to create a call as an object, subscribe to its CallStateChanged and CallErrorOccured events to get notified about the call's state, and make the call by calling the object's Start() method (see sip invite example below).

Ring extension using SIP INVITE request in C#

using System; using Ozeki.VoIP; namespace SIP_Invite { class Program { static ISoftPhone softphone; // softphone object static IPhoneLine phoneLine; // phoneline object static IPhoneCall call; private static void Main(string[] args) { // Create a softphone object with RTP port range 5000-10000 softphone = SoftPhoneFactory.CreateSoftPhone(5000, 10000); // SIP account registration data, (supplied by your VoIP service provider) var registrationRequired = true; var userName = "858"; var displayName = "858"; var authenticationId = "858"; var registerPassword = "858"; var domainHost = ""; var domainPort = 5060; var account = new SIPAccount(registrationRequired, displayName, userName, authenticationId, registerPassword, domainHost, domainPort); // Send SIP regitration request RegisterAccount(account); // Prevents the termination of the application Console.ReadLine(); } static void RegisterAccount(SIPAccount account) { try { phoneLine = softphone.CreatePhoneLine(account); phoneLine.RegistrationStateChanged += line_RegStateChanged; softphone.RegisterPhoneLine(phoneLine); } catch (Exception ex) { Console.WriteLine("Error during SIP registration: " + ex); } } static void line_RegStateChanged(object sender, RegistrationStateChangedArgs e) { if (e.State == RegState.NotRegistered || e.State == RegState.Error) Console.WriteLine("Registration failed!"); if (e.State == RegState.RegistrationSucceeded) { Console.WriteLine("Registration succeeded - Online!"); CreateCall(); } } private static void CreateCall() { var numberToDial = "853"; call = softphone.CreateCallObject(phoneLine, numberToDial); call.CallStateChanged += call_CallStateChanged; call.Start(); } static void call_CallStateChanged(object sender, CallStateChangedArgs e) { Console.WriteLine("Call state: {0}.", e.State); } } }

SIP INVITE PDU sent over the network

The SIP INVITE message is being sent when a party tries to call another. The PBX asks for authentication information. The softphone provides the authentication information, than the PBX indicates that it is trying to reach the called party. If the called party is being reached, it sends back the Ringing message.

This article is about to introduce how to create a softphone which is able to handle multiple incoming calls, and connect them together. To fully understand this guide, you might need to study the How to accept incoming call article first.

What is client mixed conference call?

Conference calling is a basic requirement for VoIP systems. This is because the spread of voice over IP technology increased the wish for digitizing more advanced communication forms like lectures or conferences.

Conference calls are basically made by using client mixing meaning that all the clients can hear anything any of the other clients tells (Figure 1).

How to implement conference call using C#?

The audio conferencing is supported by a special tool in the Ozeki VoIP SIP SDK called ConferenceRoom. It is a MediaHandler that makes all the background work and you only need to add the calls to it - and remove them, when needed.

All you have to do is to create a ConferenceRoom instance, and call its StartConferencing() method after the phone line has been successfully registered. Since now you have a conference room, when an incoming call occurs and that enters into Answered call state, you have to add the call to the conference room with the AddToConference() method, and if a call ends, you have to remove that with the RemoveFromConference() method.

The example softphone of this guide will only create the conference room for the callers, but you could also communicate them using this softphone through microphone and speaker by using the ConnectSender() and ConnectReceiver() methods.

Call Center Development

Learn just how easy it is to build a complex call center with the help of Ozeki VoIP SIP SDK. Ozeki SIP SDK opens the door for next generation VoIP solution development, while it has radically simplified the task of building complex call centers and further VoIP applications.

Due to its outstanding flexibility, Ozeki VoIP SIP SDK gives you the opportunity to build a call center that can be integrated easily with a wide range of hardware and software (IVR servers, media servers, CRM, HR database, etc.).

In order to start building your own call center, just follow the pages below. They share detailed information required for call center development. You will learn how to realize ACD, call management, handle operators, automation and further advanced features.

How to build a call center server

This guide provides you an easy-to-understand example project to demonstrate how to create a call center server. Learn more...

Automatic Call Distribution

This page presents all about the automatic call distribution techniques, and the rules and methods that can be used in call routing. Learn more...


Find out how to manage your call center by listening in the calls and monitoring the events and activites. Learn more...


This section provides you a brief introduction about the connection of the call center program and your user database. Learn more...


This example presents how to automate certain tasks in your call center to make your system more effective. Learn more...

Multi-site call center

Get more information about multi-site call centers that are usually seperated from each other and used for different purposes. Learn more...

Remote call center agents

Take a look at this guide to find out how to connect remote call center operators to your call center through the Internet. Learn more...

Secure tunneling

This guide explains how to connect remote call center client to the server through a secure connection. Learn more...

Facebook webphones

Learn how to implement a VoIP-based Facebook webphone to get into contact with your customers through the social media. Learn more...

Web page integration

Find out how to reach your call center from any website, such as Joomla, Drupal, Wordpress, HTML, etc. Learn more...

Ozeki VoIP SIP SDK is an excellent software development kit that allows you to establish VoIP calls from your application easily and quickly. You do not need to have expert programming skills, with the most basic programming knowledge you will be able to create extraordinary VoIP solutions with this tool. After download you just integrate Ozeki VoIP SIP SDK into your application and it is ready to make VoIP calls immediately.

This guide will show how you can start to use Ozeki VoIP SIP SDK and it will give you tips about the VoIP solutions you can write with the support of this SDK. After reading this article you will be familiar with your possibilities and you will be able to decide, which VoIP solution you need in order to make your company work more effective and profitable.

At first, you will get the basic information about the requirements and the configuration of the SDK, then the guide will give you a description about the VoIP solutions you can implement using this SDK. If any solution catches your attention, this guide shows which of the pages will give you more detailed information about the given topic.

First of all, you will need to know the exact environment you will need to set up for working with this SDK. You will learn about the requirements of the SDK in the next section.


Ozeki VoIP SIP SDK is basically a .NET solution so, you will need to have the development environment and background tools for .NET to be able to use the SDK. The basic developer requirements are shown in Figure 1.

The following list shows all the requirements you will need if you want to build a VoIP solution with Ozeki VoIP SIP SDK.

PC (Windows XP; Vista, 7, 2003, 2008 operating system)
.Net compatible development kit (e.g. Visual Studio 2010 / Visual C#)
Minimum .Net 3.5 SP1
Note that you may also need a SIP account from your service provider in case of some VoIP solutions. You can find more information about this topic in the sections and articles about the given solutions.

New feature (Font Size): When a text overlay is used above a video stream, the font size of the text and the position of the text can now be adjusted using attributes in a very easy way
Improvement (RTSP stream): If multiple network interfaces, such as VPN links, ethernet cards or wifi network adapters are present, the IP address of the IP camera stream is determined by the ip address assigned to the interface used for outbound traffic. This makes the RTSP stream work reliably on complex network setups

Additional Information