'\" te .\" 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] .TH SIP_GET_REQUEST_METHOD 3SIP "November 22, 2021" .SH NAME sip_get_request_method, sip_get_response_code, sip_get_response_phrase, sip_get_sip_version \- obtain attributes from the start line in a SIP message .SH SYNOPSIS .nf \fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-lsip\fR [ \fIlibrary\fR ... ] #include \fBsip_method_t\fR \fIsip_get_request_method\fR(\fBconst sip_msg_t\fR \fIsip_msg\fR, \fBint *\fR\fIerror\fR); .fi .LP .nf \fBint\fR \fIsip_get_response_code\fR(\fBsip_msg_t\fR \fIsip_msg\fR, \fBint *\fR\fIerror\fR); .fi .LP .nf \fBconst sip_str_t *\fR\fIsip_get_response_phrase\fR(\fBsip_msg_t\fR \fIsip_msg\fR, \fBint *\fR\fIerror\fR); .fi .LP .nf \fBconst sip_str_t*\fR\fIsip_get_sip_version\fR(\fBsip_msg_t\fR \fIsip_msg\fR, \fBint *\fR\fIerror\fR); .fi .SH DESCRIPTION For functions that return a pointer of type \fBsip_str_t\fR, \fBsip_str_t\fR is supplied by: .sp .in +2 .nf typedef struct sip_str { char *sip_str_ptr; int sip_str_len; }sip_str_t; .fi .in -2 .sp .LP The \fIsip_str_ptr\fR parameter points to the start of the returned value and \fIsip_str_len\fR supplies the length of the returned value. .sp .LP For example, given the following request line in a \fBSIP\fR message \fIsip_msg\fR that is input to \fBsip_get_request_uri_str()\fR: .sp .in +2 .nf FROM : ;tag=1928301774 .fi .in -2 .sp .LP the return is a pointer to \fIsip_str_t\fR with the \fIsip_str_ptr\fR member pointing to "\fBA\fR" of \fBAlice\fR and \fIsip_str_len\fR being set to \fB5\fR, the length of \fBAlice\fR. .sp .LP Access functions for headers that can have multiple values take the value as the input, while those that can have only one value take the \fBSIP\fR message \fIsip_msg\fR as the input. .sp .LP The \fBsip_get_request_method()\fR function will return the \fBSIP\fR method from the request line in the \fBSIP\fR message \fIsip_msg\fR. The method can be one of the following: .br .in +2 INVITE .in -2 .br .in +2 ACK .in -2 .br .in +2 OPTIONS .in -2 .br .in +2 BYE .in -2 .br .in +2 CANCEL .in -2 .br .in +2 REGISTER .in -2 .br .in +2 REFER .in -2 .br .in +2 INFO .in -2 .br .in +2 SUBSCRIBE .in -2 .br .in +2 NOTIFY .in -2 .br .in +2 PRACK .in -2 .br .in +2 UNKNOWN .in -2 .sp .LP The \fBsip_get_response_code()\fR function will return the response code \fIresponse\fR from the request line in the \fBSIP\fR message \fIsip_msg\fR. .sp .LP The \fBsip_get_response_phrase()\fR function will return the response phrase \fIresponse\fR from the request line in the \fBSIP\fR message \fIsip_msg\fR. .sp .LP The \fBsip_get_sip_version()\fR function will return the version of the \fBSIP\fR protocol from the request or the response line in the \fBSIP\fR message \fIsip_msg\fR. .SH RETURN VALUES For functions that return a pointer to \fIsip_str_t\fR, the return value is the specified value on success or \fBNULL\fR in case of error. For functions that return an integer, the return value is the specified value on success and \fB-1\fR on error. .sp .LP The value of \fBerrno\fR is not changed by these calls in the event of an error. .SH ERRORS These functions take a pointer to an integer \fIerror\fR as an argument. If the error is non-null, one of the following values is set: .sp .ne 2 .na \fB\fBEINVAL\fR\fR .ad .RS 10n The input \fBSIP\fR message \fIsip_msg\fR or the header value is null; or the specified header/header value is deleted. .RE .sp .ne 2 .na \fB\fBEPROTO\fR\fR .ad .RS 10n The header value is not present or invalid. The parser could not parse it correctly. .RE .sp .ne 2 .na \fB\fBENOMEM\fR\fR .ad .RS 10n There is an error allocating memory for the return value. .RE .sp .LP On success, the value of the location pointed to by \fIerror\fR is set to \fB0\fR. .SH ATTRIBUTES See \fBattributes\fR(7) for descriptions of the following attributes: .sp .sp .TS box; c | c l | l . ATTRIBUTE TYPE ATTRIBUTE VALUE _ Interface Stability Committed _ MT-Level MT-Safe .TE .SH SEE ALSO .BR libsip (3LIB)