Now that you’ve had the user guide tour about how SIP works, let’s go a little deeper into the architecture and talk about the classes, modules, and threads that we implemented into our SIP stack.
Throughout this chapter, when we refer to a certain protocol stack, we’re referring to Vovida’s implementation of the standard that governs that stack.
If you don’t have a background in software development, you may find the remainder of this book’s content difficult to digest. You could help yourself by brushing up on the Unified Modeling Language (http://www.rational.com/uml/index.jsp), object-oriented design, C++, and data structure and theory, which, unfortunately, require a few years of schooling to understand.
Figure 8-1 shows how the major components of the SIP stack work together and with other protocol stacks.
Figure 8-1. SIP stack components
These processes are defined as follows:
Builds messages, either as brand-new requests or as reconstructions of received responses.
Encodes and decodes messages.
Encodes, decodes, and alters Session Description Protocol (SDP) bodies.
Includes five components, listed next. An intelligent structure, it matches requests with responses, and responses with acknowledgments.
Transmits messages over a transport layer -independent interface.