HsVoipSDK - Audio streaming SDK in C/C++ for Windows

Overview

HsVoipSDK is an audio streaming / voice over IP SDK in C / C++. HsVoipSDK is shipped with full C source code and includes the following components:

  • HsSound C source library: Audio library for Windows
  • HsRtp C source library: RTP protocol library
  • HsSock C source library: Socket interface library
  • audio.c: Audio streaming / Voice over IP application for Windows (uses the above components)

HsVoipSDK is designed for use from C/C++ applications on Windows platforms

HsVoipSDK is Royalty Free.



HsVoipSDK source code can be used to develop Voice over IP audio streaming or voice chat applications in C / C++

Features of Audio Library (HsSound)

  • Detection of installed audio devices
  • Recording audio buffers from audio input devices
  • Playback of audio buffers to audio output devices
  • Single and dual frequency tone buffer synthethis / generation in software
  • Operations on WAVE files (reading writing audio to/from WAVE files)
  • Supported audio formats: Linear PCM, GSM 6.10, G.711 a-law and u-law
  • Recording to wave file
  • Recording to memory buffers
  • Playback from wave file
  • Playback from memory buffers
  • Simultaneous playback and recording
  • Anti-jitter buffering
  • Configurable sampling rate and audio format / codec


RTP Library (HsRtp)

HsRtp library implements RTP protocol (Real Time Transport Protocol) according to RFC 3550 and RFC 4571

HsRtp supports operation over UDP or over TCP as described in RFC 4571.

HsRtp performs protocol encapsulation and de-capsulation, packet building and parsing functions

HsRtp by itself does not provide transmission or reception functions

In HsVoipSDK, the transmission and reception is done with HsSock library



Socket Interface Library (HsSock)

HsSock is a C source code library for interfacing to Windows and Unix network sockets layer.

HS Sockets hides the complexity of low level socket api from user application, enabling the programmer to considerably reduce development time.

HS Sockets is designed for light server and client side TCP and UDP applications. HS Sockets supports multiple network connections concurrently - up to 64 sessions at the same time.

HS Sockets allows a programmer to create:

  • TCP server and client applications
  • UDP applications
  • Mixed TCP server, client and UDP applications


Sample Audio Streaming / Voice over IP chat application (Audio.c)

HsVoipSDK is supplied with sample audio streaming application to demonstrate the use of the HsVoipSDK libraries

When running this application on 2 PCs equipped with audio input and output devices it is possible to test voice over IP audio chat capabilities of HsVoipSDK using various options, such as different audio encodings, sampling rates and protocol encapsulation modes (audio over UDP/RTP, audio over TCP/RTP, audio over raw UDP or TCP)


API Summary


HsSound Library
 
HsSock Library
 
HsRtp Library
 
HsSoundInit
HsSoundCleanup
HsSoundOpenInput
HsSoundStartInput
HsSoundReadInputBuffer
HsSoundFreeInputBuffer
HsSoundStopInput
HsSoundCloseInput
HsSoundOpenOutput
HsSoundStartOutput
HsSoundWriteOutputBuffer
HsSoundStopOutput
HsSoundCloseOutput
HsSoundGenerateToneBuffer
HsSoundSetOuptutVolume
HsSockInit
HsSockCleanUp
HsSockTcpConnect
HsSockTcpListen
HsSockUdpOpen
HsSockTcpSend
HsSockUdpSendto
HsSockRead
HsSockClose
HsRtpInit
HsRtpCleanUp
HsRtpAlloc
HsRtpFree
HsRtpBuildPacket
HsRtpReceiveRTPoverUDP
HsRtpReceiveRTPoverTCP

Customization

Hillstone Software provides additional services for customization, porting and integration of the library code to better suit the needs of your products