Introduction
sk400vop is a signaling stack for smart VoIP clients. A compute and memory optimized implementation provides a fast route towards developing compact VoIP clients for smart devices.
Objectives
This document serves as a reference for developers using sk400vop stack for developing VoIP or in general, MoIP applications. Itprovides detailed description of stack API along with application examples.
sk400vop Architecture
As mentioned earlier, sk400vop comprises optimized implementation of SIP signaling protocols. sk400vop has been designed tobe portable and customizable while not compromising memory footprint and performance.
sk400vop Interfaces

As shown in the above figure, the stack provides three interfaces to be implemented in application:
-
API
-
Event Interface (as callbacks, to be implemented by application)
-
Network Interface (as callbacks, to be implemented by application)
-
Media Interface (as callbacks, to be implemented by application)
These interfaces are described in the next sections.
API
The interface comprises function calls to initialize sk400vop.
Event interface
This interface comprises two types of event handlers. The one implementedin application intercepts and responds to signaling event. The one implemented in signaling component is used by the application totrigger response events. The originating context is always reported to the application so that response events can be triggered back to the originator of the event.
Network interface
Network interface is a user-supplied set of callbacks invoked by signalingmodule to create network endpoints and communicate information overthese endpoints. Internally, a Berkley Sockets compatible API anddata structures are assumed and user implementation should create compatible wrappers. The wrappers should interpret all interface dataas Berkley Sockets compatible data.
Media interface
Media interface is a user-supplied set of callbacks invoked by signaling module to create media context and report/demand media packets. User implementation is responsible forencoding/decoding/capturing/rendering the data.