SIP API Developer's Guide

Connection Manager

The connection manager provides input/output functionality. The connection manager is not a part of the SIP library, but interacts with the library by using well defined interfaces. A connection is identified by two endpoints, one local and one remote, as well as by the transport protocol that the connection uses. A connection is represented within the stack by a connection object. The stack requires that the first member of the connection object be a void pointer. The stack uses this first member to store data that is related to the connection object. The application must initialize the connection object. The application is responsible for the following functions:

Compliance with RFC 3263

The library expects the application to supply the address of the next recipient of the SIP message and to handle network errors. The application must follow the procedures defined in RFC 3263 for locating SIP servers.

Sent-By and Received parameters

Section 18.1.1 of RFC 3261 states that the transport layer must add a “sent-by” parameter to the topmost VIA header in every request. The application must include this information when constructing the VIA header. The application must register all values it could use for the sent-by parameter with the stack to enable the stack to validate incoming responses as required by section 18.1.2 of RFC 3261. Section 18.2.1 of RFC 3261 lists the conditions under which the transport layer must add a “received” parameter to the top VIA header of incoming messages. This “received” header must indicate the source of the message. The stack does not add a “received” parameter.

TTL and maddr parameters

The application should add the TTL and maddr parameters in the VIA header when required.