How should I start using the Ozeki SIP SDK?

After downloading the latest version, please go to the Quick Start Guide to start using the SDK. According to your needs you can also browse the sample programs page where you can find source code explanation for the various solutions.

Where can I go for more help?

You can address all your questions and requests to us via email at info@voip-sip-sdk.com and we will provide you with all details. It is also possible to chat with one of our representative by using BeeWebphone. The click to call button of BeeWebphone can be found on the left side of this page.

Do you provide some sample programs with source code?

Yes, we do. You can find the list of the sample programs on the following webpage: SDK sample programs.

What are the prerequisites for the sample programs?

Developer environment:

  • Microsoft Visual Studio 2010
  • Microsoft .Net Framework 3.5 or 4.0
  • SIP account (or a SIP PBX)
  • Internet connection

Hardware requirements:

  • 1 GHz or faster processor
  • 1GB RAM (32-bit) || 2GB RAM (64-bit)

Which OS are supported? Does it work with Windows 7?

Yes, the SDK works with Windows 7. The following Operating Systems are supported:

  • Microsoft Windows 7
  • Microsoft Windows 8
  • Microsoft Windows 10
  • Microsoft Windows 11
  • Microsoft Windows Vista
  • Microsoft Windows Server 2008
  • Microsoft Windows Server 2003
  • Microsoft Windows XP

What functions/features are provided by the SDK?

You can check the features of Ozeki VoIP SIP SDK on the Feature list page. This page also includes a downloadable list of the supported functions.

I need some extra functions. Could you do them for me?

There is a great chance for efficient cooperation. All you need to do is to write the requested extra functions to us (info@voip-sip-sdk.com). You will receive the response email soon with our answers and time schedule in case of cooperation.

How can I get to know the latest improvements?

You can always be up-to-date regarding the latest improvements for the SDK by checking the changelog on the Download page. There are new releases of the SDK continuously in order to ensure higher user experience.

Which PBX do you recommend? Does it work with Asterisk PBX?

Ozeki VoIP SIP SDK works with Asterisk PBX and all other SIP based server and service providers effectively.

You can check the list of the supported PBXs with configuration guides on the following webpage: VoIP PBX Compatibility.

In case you wish to use the SDK with a SIP account of a service provider, you can check the VoIP Service Provider compatibility page.

How to develop a softphone with your SDK?

You can develop your SIP based softphone and webphone with your own GUI and brand name very easily. Sample source codes for VB, VB.Net, C# are available on our website.

On the following webpages you can find some sample programs with source code based on Ozeki VoIP SIP SDK on how to setup a softphone:

You can also check some of the softphone GUIs you can create with Ozeki VoIP SIP SDK on the following webpage: Softphone GUI customization page.

How can I make VoIP calls? What are the connection possibilities?

To make voice calls you need to connect your system to the telephone network. This can be done in three ways:

  • Option #1: You can use a VoIP telephone adapter.
    A VoIP telephone adapter is a hardware device that can be connected to your ethernet LAN or to your computer. It makes it possible to dial telephone calls. There are VoIP telephone adapters for GSM lines, for standard analog telephone lines and for ISDN lines. (If you don't have a VoIP telephone adapter, you can order one directly from us). When you put this hardware on your Ethernet LAN, it will receive an IP address. You need to configure this IP address in Ozeki VoIP SIP SDK to be able to make voice telephone calls through the device.

  • Option #2: You can use a SIP Account provided by Internet based VoIP telephone provider.
    VoIP telephone service providers offer a telephone service over the Internet. They can forward calls to traditional telephone networks and to Internet users signed up to their network. There are many VoIP telephone service providers out there. When you sign up for their service, you will receive a SIP account (an IP address, a username and a password, plus some other details). To make voice calls, you need to configure the SIP account details in Ozeki VoIP SIP SDK.

  • Option #3: You can use your existing office PBX if it is a VoIP system.
    If your office has an IP telephone system, you can connect Ozeki VoIP SIP SDK to it through the office LAN. Ozeki VoIP SIP SDK can log in with a SIP account to the PBX and it can make telephone calls just like any other office desktop phone would. This is a good choice if you have already invested in IP telephony, because in this case you don't need to have a dedicated telephone line for outbound voice telephone calls made with Ozeki VoIP SIP SDK.

The download link is not working

Please contact us and we will provide you with all details.

My trial has expired

You can use the software in trial mode for a period of 20 days. If this time has expired, you need to purchase a licensed software in order to use it for unlimited time. When you purchase Ozeki VoIP SIP SDK you will receive a registration code which helps you to activate the software.

Is there any features-wise difference between trial and registered versions?

In case of having a trial version:

  • You can register max. two accounts at once for testing.
  • You can make max four calls at once for testing.
  • Randomly there is a voice during the conversations saying it is a trial version.
When you purchase a licensed version of Ozeki VoIP SIP SDK these limitations are canceled.

How to install Ozeki VoIP SIP SDK on my machine?

You can get to know everything about the installation process of Ozeki VoIP SIP SDK on the Quick Start Guide page.

How do I use the SDK?

Ozeki VoIP SIP SDK can be used to create a C# softphone or a VB.net softphone in minutes or you can build SIP VoIP call services easily and quickly. After download you can customize the SDK to provide seamless and efficient VoIP services. Without spending time with learning SIP basics you can instantly start your project and boost the benefits of VoIP technology in your application.

Where can I find additional information on how to develop an application using this SDK?

On our Sample programs page you can find sample programs with source code based on Ozeki VoIP SIP SDK.

I want to develop a VOIP application on Window phone Mango.

Mobile platforms (Windows, Android, etc.) are in progress. They will be supported soon. For information about their availability please contact us.

I cannot reach port 5060

I suggest you to check the availability of the 5060 port, because another softphone installed on your computer might already use it.

How can I detect the callers number?

If you use Ozekiphone or the Demo Application, in case of an incoming call the softphone will get and display the caller's number.

There is voice in only one direction

It occurs because the SDK is behind double NAT while the PBX and the 3CX phone are behind simple NAT. When the SDK registers to the PBX, it notices that they are not on the same network. That is why, it turns to the STUN server. Since the STUN server is on public net, it returns the public IP address of the client to the SDK, this way, the SDK forwards this public IP address to the PBX.
To overcome this issue, please try one of the following options:

  1. The network connection of the virtual machine should be bridged instead of NAT (This is the simpler option).
  2. Install a STUN server to the network on which the PBX is installed, and set this STUN server for the SDK.

Sound is played slowly

If the sound is played slower, that seems like a convert problem. For example: A 44kHz sound is played on 8 kHz, the result will be a slow and lengthen sound. This can happen when the microphone records sound in 22 kHz format but the PCMU codec (for the call) uses 8 kHz. To solve the issue out, it is necessary for the codec to convert the 22 kHz sound data into 8 kHz sound data. If you use MediaConnector and PhoneCallMediaSender classes (the SDK includes them), then this procedure is automatic.

I am unable to hear anything when using WPF Softphone

Please check if all PBX registration credentials are correct in the WPF example.
Try to change the NAT settings from:
sorbansoftPhone.ChangeNATSettings(NATTraversalMethodType.ICE, "", "", "");
softPhone.ChangeNATSettings(NATTraversalMethodType.NONE, "", "", "");
Also, a certain port range should be opened on the firewall for the RTP packages to come through.

I want to get the decoded audio packets (on RTP receipt, in real time) directly for my own processing. I do not want to send them to the audio device for playing, but I need to stream them to a custom application.

Yes, your idea can be realized with Ozeki VoIP SIP SDK efficiently.
You only need to hook up to the event 'MediaDataReceived' in the PhoneCall class of the SDK. (MediaDataReceived is the event of receiving an incoming audio packet.)

Is it possible not to save the DTMF signal with the WaveFileWriter class?

If the DTMF signal comes via the RTP stream or via SIP INFO method then the saved conversation won't contain the DTMF sound.
But if the DTMF signal is mixed into the audio stream then filtering is not possible. (e.g. in case of an analog system or if a land-line phone is on the receiver's end)

How do I know which wav format is compatible (for playback) with the connected phone? Is there a common procedure for detecting which wav format is compatible? I must be sure that it works for different brands.

When the SDK talks with various PBX systems, it uses the SIP protocol for signaling and the RTP protocol for sending/receiving audio. In the RTP stream, the audio is tansferred using VoIP codecs, such as G711, G722, etc. These codecs are supported by all VoIP PBX systems (all brands).
When you play a wav file into a phone call, the wav file is first decoded to raw audio, then it is encoded according to the codec required by the RTP connection. In other words wav is the input for the SDK and a G711 encoded RTP stream is the output.
Ozeki VoIP SIP SDK supports uncompressed PCM wav files for input. It converts these wav files to the appropriate format when it talks with VoIP PBX systems, VoIP service providers or VoIP telephones.
So if you use plain PCM wav as input it will be compatible with all brands.

Can G.729 codec be used in Ozeki VoIP SIP SDK? How can I enable and disable the codecs?

Yes, G.729 can be used in your application made with Ozeki VoIP SIP SDK. You can enable or diasble a codec using the EnableCodec() or DisableCodec() methods. You should use the payload number of the codecs and use it in the following way:

  • - softPhone.DisableCodec(18);
  • - softPhone.EnableCodec(18);

Why is the audio choppy?

It is possible that you do not use AudioMixer in your source code. If you want to connect more MediaHandler object to the speaker or PhoneCallAudioSender, you need to use an AudioMixer that can connect more object together to get better sound quality. For example in the following code a microphone and a wavPlayer are connected to an audiomixer that is connected to the phoneCallAudioSender object.

MediaConnector.Connect(microphone, audioMixer);
MediaConnector.Connect(wavePlayer, audioMixer);
MediaConnector.Connect(audioMixer, phoneCallAudioSender);

I'm trying to do call recording. It is working ok except that the WaveStreamRecorder does not close the file after it is finished, so I cannot access the file. How can I force close it?

It is possible that you did not stop and dispose your WaveStreamRecorder object. We suggest you to see 00_OzekiDemoSoftphoneWPF example about how to record your calls.

Which programming languages can be used to develop VoIP applications? Can I use Visual Basic 6?

No, you cannot use Visual Basic 6. You can develop VoIP applications with C#, VB.NET or Visual C++.

I have a license and I use it in my code, but I cannot use G.729 codec. What can be the problem? Could you help me?

In order to use G.729 codec, it is not enough to activate your application, you also need to enable the codecs. You can enable it using the enableCodec() method.

Licensing FAQ >>>>

More information