Skip to main content

SK400VOP Developer Documentation

SK400VOP is a compact signaling stack for embedded SIP/VoIP clients. Its architecture separates SIP signaling from platform-specific networking and media handling so the stack can be integrated into different embedded operating environments.

For product capabilities and licensing information, see the SK400VOP product page.

Documentation scope​

This documentation is intended for developers integrating SK400VOP into VoIP and other media-over-IP applications. It covers:

  • initialization and application-facing signaling APIs;
  • asynchronous signaling events and call contexts;
  • platform-supplied network callbacks;
  • application-supplied media callbacks;
  • a representative integration sequence for a new application.

Version note: the ippapi.h and related headers supplied with your licensed SK400VOP release are authoritative for exact declarations, enum values, structures and return codes. These pages explain the integration model and correct several inconsistencies that existed in older copies of the reference documentation.

Architecture​

SK400VOP contains an optimized implementation of SIP signaling protocols designed for portability and customization without unnecessarily increasing memory footprint.

SK400VOP architecture and application interfaces

Application interfaces​

The stack exposes four principal integration surfaces:

  • Signaling API — application calls used to initialize the stack, configure media capabilities and trigger signaling actions.
  • Event interface — callbacks implemented by the application to receive signaling events and an event interface used for follow-on actions.
  • Network interface — callbacks used by SK400VOP to create endpoints, resolve addresses and exchange signaling data through the target network stack.
  • Media interface — callbacks used to create media contexts, apply negotiated media formats, capture/encode media and decode/render received media.

API conventions​

Return values​

Functions returning UInt32 use SK400VOP/OS status constants defined by the supplied headers. Check every non-void return value rather than assuming initialization or call setup succeeded.

Call contexts​

Call-related asynchronous events carry a context value. Treat this context as opaque: store it with the application's call state and pass it back through the documented interface for subsequent operations on the same call.

Address byte order​

Socket addresses and port fields must use the byte order expected by the specific API or configuration field. For standard socket fields that require network byte order, convert host literals with functions such as htons()/htonl() rather than the reverse conversions.

Callback ownership​

The application owns the platform-specific implementation behind network and media callbacks. SK400VOP invokes those callbacks according to the interface contract but does not prescribe a particular operating system, socket library, codec package or audio-device API.

  1. Signaling API
  2. Event Handlers
  3. Network Callbacks
  4. Media Callbacks
  5. Writing a VoIP Application