Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
cc [ flag ... ] file ... -lsip [ library ... ] #include <sip.h> int sip_create_OKack(sip_msg_t response, sip_msg_t ack_msg, char *transport, char *sent_by, int sent_by_port, char *via_params);
The sip_create_OKack() function constructs an ACK request in ack_msg for the final 2XX SIP response. The request line is created using the URI in the CONTACT header from the response. The SIP-Version in the request line is "2.0". The VIA header for the ACK request is created using transport, sent_by, sent_by_port (if non-zero), and via_params (if non-null). The following headers are copied to ack_msg from response:
FROM
TO
CALL-ID
MAX_FORWARDS
The CSEQ header is created using the method as ACK and the sequence number from the CSEQ header in response.
The sip_create_OKack() function returns 0 on success and the appropriate error value in case of failure.
The value of errno is not changed by these calls in the event of an error.
On failure, the sip_create_OKack() function could return one of the following errors: EINVAL
If mandatory input is not provided or if the input is invalid. The sip_create_OKack() function can return this error if it does not find a CONTACT header or if it is unable to obtain the URI from the CONTACT header for the request line.
If the input SIP message cannot be modified.
If memory allocation fails when creating the request/response line or when creating headers in the ACK request.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE ATTRIBUTE VALUE |
Interface Stability Committed |
MT-Level MT-Safe |
libsip(3LIB)