- create an ACK request for a final response
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:
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:
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: