HP-UX C SIP Stack Programmer's Guide (Novembery 2007)

20 HP-UX C SIP Stack Programmers Guide
Application Programming Interface (API)
TRANSACTION A SIP transaction involves all messages sent between a client and server for the
purpose of completing one signaling action, such as call establishment and call
termination. The call-leg to which each transaction belongs and an identifier
field called “CSeq” (command sequence) uniquely identifies the transaction.
In the SIP Stack, a transaction stores the transaction states and manages
transaction progress through the use of event handling and state machines. A
transaction can also be used outside the context of a specific call-leg to
accomplish User Agent signaling action.
SUBSCRIPTION A subscription object (subscription) manages SUBSCRIBE-initiated dialogs in
the SIP Stack as defined in RFC 3265 (SIP Specific Event Notification). Each
subscription handles the initial SUBSCRIBE request and any REFRESH
requests that follow. Subscriptions are also used to send Notifications (NOTIFY
requests—see below) as part of the Notifier-side functionality, and to inform of
incoming notifications as Subscriber-side functionality.
NOTIFICATION A notify object (notify) is used to send and receive NOTIFY requests in
accordance with RFC 3265 (SIP Specific Event Notification).
APPLICATION
P
ROGRAMMING
INTERFACE (API)
The SIP Stack provides an intuitive and object-oriented C API for the
development of SIP-enabled applications. The API includes a set of optional
callbacks that allow your application to intervene in different phases of object
establishment and termination. The SIP Stack can be made fully functional and
operational with a minimal amount of initialization and configuration.
API MODULES The SIP Stack APIs are divided into three layers, giving the user full control of
the functionality of messages and SIP Stack state machines. In addition, the
SIP Stack provides high level abstract APIs that handle protocol complexity and
provide an interface for building SIP applications with minimal coding effort.
Mid-level APIs enable sending and receiving messages from the primitive
(transaction) level interface. Low level APIs provide access to SIP messages and
enable the application to modify SIP Stack functionality. These APIs give the
user tight control over the SIP Stack functionality, enabling it to deploy non-
standard/unsupported functionality and to interwork with non-standard SIP
applications. These different levels of APIs may be used in parallel, as described
in more detail throughout this guide. The following sections describe the main
API modules.
S
TACK MANAGER API The Stack Manager API enables your application to perform the following:
Stack configuration