Download Ozeki SDK v1.9.12 + License

Ozeki SDK v1.9.12

Ozeki SDK v1.9.12
Ozeki SDK v1.9.12


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 = "192.168.115.100";
            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

inShare
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...

Manager

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

Operator

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

Automation

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.

Requirements

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
Ozeki VoIP SIP SDK
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.

Changes:
New feature (Camera / Browser camera supprot): Browsre camera support was developed to support HTML5 access to the camera
Improvement (Camera / MJPEG Streaming): The MJPEG streaming capabilities has been improved greatly. Now it allows switching resolution during streaming, and the resource usage is reduced.
Improvement (VoIP / relayed calls): Voice calls work well even if all parties are behind firewalls. Now the caller, the callee, and the pbx can operate behind NAT using private IP addresses. In the previous versions the relay calls did not work reliably if all parties were behind firewalls, because some SIP clients (e.g. Bria softphone on Android) were not able to provide appropriate IP address information. This situation is no fixed, the PBX can determines its own public ip using STUN, or this address can be entered manually on the config form, and the PBX can determine the IP addresses of the SIP clients if neccessary using the source adddress of the incoming packets instead of the often unreliable information provided in the SDP data.
Improvement (Alphanumeric SIP addressing): The PBX can operate using alphanumeric addresses instead of simply numbers. You can setup extensions using phone number and/or names if you develop a PBX
Improvement (Alphanumeric SIP dial plans): If you build a VoIP PBX, you may setup call routing using alphanumeric addressing.
Bug fixes: several bugs have been fixed, the list would be long to detail


Only for V.I.P
Warning! You are not allowed to view this text.