SIP API Developer's Guide

Connection Object Functions

int sip_conn_send(const sip_conn_object_t conn_obj, char *msg, int msglen);

The sip_conn_send() function is an interface that the application registers. This function sends out the message in the *msg parameter with a length defined by the msglen parameter over the connection that is represented by the conn_obj parameter. The stack invokes this function to send the message to the peer after processing.

void sip_hold_conn_object(sip_conn_object_t conn_obj);

The sip_hold_conn_object() function is an interface that the application registers. The stack invokes this interface to increment the reference count on the connection object referenced by the conn_obj parameter. The stack invokes this function when it caches the connection object. The application cannot free the connection object if the object has any existing references.

void sip_rel_conn_object(sip_conn_object_t conn_obj);

The sip_rel_conn_object() function is an interface that the application registers. The stack invokes this interface to release a reference to a connection object referenced by the conn_obj parameter. The stack invokes this function after removing any cached connection object. The application can free connection objects that have no references.

boolean_t sip_conn_is_reliable(sip_conn_object_t conn_obj);

The sip_conn_is_reliable() function is an interface that the application registers. The stack invokes this interface to query whether or not the transport protocol for the connection object referenced by the conn_obj parameter is reliable. Reliable transport protocols include TCP and SCTP. UDP is an unreliable protocol.

boolean_t sip_conn_is_stream(sip_conn_object_t conn_obj);

The sip_conn_is_stream() function is an interface that the application registers. The stack invokes this interface to query whether or not is byte-stream oriented. TCP is a byte-stream protocol. SCTP and UDP are message-oriented protocols.

int sip_conn_remote_address(sip_conn_object_t conn_obj, struct sockaddr *name, socklen_t *namelen);

The sip_conn_remote_address() function provides the remote address in the sockaddr structure provided in the name parameter. On invocation, the namelen parameter contains the length of the address that the calling thread provides to this function. When this function returns from the call, the len parameter contains the actual length of the address.

int sip_conn_local_address(sip_conn_object_t conn_obj, struct sockaddr *name, socklen_t *namelen);

The sip_conn_local_address() function provides the local address in the sockaddr structure provided in the name parameter. On invocation, the namelen parameter contains the length of the address that the calling thread provides to this function. When this function returns from the call, the len parameter contains the actual length of the address.

int sip_conn_transport(const sip_conn_object_t conn_obj);

The sip_conn_transport() function returns the transport protocol that is associated with the connection object that is specified in the conn_obj parameter.

int sip_conn_timer1(const sip_conn_object_t conn_obj);

An application can register the sip_conn_timer1() function to provide a timer value for the T1 timer that is specific to the connection object that is defined in the conn_obj parameter. If the application does not register this function, the stack uses the default value of 500 msec. Timer T1 is the round trip time (RTT) estimate.

int sip_conn_timer2(const sip_conn_object_t conn_obj);

An application can register the sip_conn_timer2() function to provide a timer value for the T2 timer that is specific to the connection object that is defined in the conn_obj parameter. If the application does not register this function, the stack uses the default value of 4 seconds. Timer T2 is the maximum retransmit interval for non-INVITE requests and INVITE responses.

int sip_conn_timer4(const sip_conn_object_t conn_obj);

An application can register the sip_conn_timer4() function to provide a timer value for the T4 timer that is specific to the connection object that is defined in the conn_obj parameter. If the application does not register this function, the stack uses the default value of 5 seconds. Timer T4 is the maximum duration that a message will remain in the network.

int sip_conn_timerd(const sip_conn_object_t conn_obj);

An application can register the sip_conn_timerd() function to provide a timer value for the TD timer that is specific to the connection object that is defined in the conn_obj parameter. If the application does not register this function, the stack uses the default value of 32 seconds. Timer TD is the wait time for response retransmits.