modules_k/pv/pv_core.h

00001 /*
00002  * $Id$
00003  *
00004  * Copyright (C) 2001-2005 FhG Fokus
00005  * Copyright (C) 2008 Daniel-Constantin Mierla (asipto.com)
00006  *
00007  * This file is part of Kamailio, a free SIP server.
00008  *
00009  * Kamailio is free software; you can redistribute it and/or modify
00010  * it under the terms of the GNU General Public License as published by
00011  * the Free Software Foundation; either version 2 of the License, or
00012  * (at your option) any later version
00013  *
00014  * Kamailio is distributed in the hope that it will be useful,
00015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017  * GNU General Public License for more details.
00018  *
00019  * You should have received a copy of the GNU General Public License 
00020  * along with this program; if not, write to the Free Software 
00021  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00022  */
00023 
00024 #ifndef _PV_CORE_H_
00025 #define _PV_CORE_H_
00026 
00027 #include "../../pvar.h"
00028 #include "../../parser/parse_to.h"
00029 
00030 int pv_get_msgid(struct sip_msg *msg, pv_param_t *param,
00031                 pv_value_t *res);
00032 
00033 int pv_get_udp(struct sip_msg *msg, pv_param_t *param, 
00034                 pv_value_t *res);
00035 
00036 int pv_get_5060(struct sip_msg *msg, pv_param_t *param, 
00037                 pv_value_t *res);
00038 
00039 int pv_get_return_code(struct sip_msg *msg, pv_param_t *param,
00040                 pv_value_t *res);
00041 
00042 int pv_get_pid(struct sip_msg *msg, pv_param_t *param,
00043                 pv_value_t *res);
00044 
00045 int pv_get_method(struct sip_msg *msg, pv_param_t *param,
00046                 pv_value_t *res);
00047 
00048 int pv_get_methodid(struct sip_msg *msg, pv_param_t *param,
00049                 pv_value_t *res);
00050 
00051 int pv_get_msgtype(struct sip_msg *msg, pv_param_t *param,
00052                 pv_value_t *res);
00053 
00054 int pv_get_status(struct sip_msg *msg, pv_param_t *param,
00055                 pv_value_t *res);
00056 
00057 int pv_get_reason(struct sip_msg *msg, pv_param_t *param,
00058                 pv_value_t *res);
00059 
00060 int pv_get_ruri(struct sip_msg *msg, pv_param_t *param,
00061                 pv_value_t *res);
00062 
00063 int pv_get_ouri(struct sip_msg *msg, pv_param_t *param,
00064                 pv_value_t *res);
00065 
00066 int pv_get_xuri_attr(struct sip_msg *msg, struct sip_uri *parsed_uri,
00067                 pv_param_t *param, pv_value_t *res);
00068 
00069 int pv_get_ruri_attr(struct sip_msg *msg, pv_param_t *param,
00070                 pv_value_t *res);
00071 
00072 int pv_get_ouri_attr(struct sip_msg *msg, pv_param_t *param,
00073                 pv_value_t *res);
00074 
00075 int pv_get_errinfo_attr(struct sip_msg *msg, pv_param_t *param,
00076                 pv_value_t *res);
00077 
00078 int pv_get_contact(struct sip_msg *msg, pv_param_t *param,
00079                 pv_value_t *res);
00080 
00081 int pv_get_xto_attr(struct sip_msg *msg, pv_param_t *param,
00082                 pv_value_t *res, struct to_body *xto, int type);
00083 
00084 int pv_get_to_attr(struct sip_msg *msg, pv_param_t *param,
00085                 pv_value_t *res);
00086 
00087 int pv_get_from_attr(struct sip_msg *msg, pv_param_t *param,
00088                 pv_value_t *res);
00089 
00090 int pv_get_cseq(struct sip_msg *msg, pv_param_t *param,
00091                 pv_value_t *res);
00092 
00093 int pv_get_msg_buf(struct sip_msg *msg, pv_param_t *param,
00094                 pv_value_t *res);
00095 
00096 int pv_get_msg_len(struct sip_msg *msg, pv_param_t *param,
00097                 pv_value_t *res);
00098 
00099 int pv_get_flags(struct sip_msg *msg, pv_param_t *param,
00100                 pv_value_t *res);
00101 
00102 int pv_get_hexflags(struct sip_msg *msg, pv_param_t *param,
00103                 pv_value_t *res);
00104 
00105 int pv_get_bflags(struct sip_msg *msg, pv_param_t *param,
00106                 pv_value_t *res);
00107 
00108 int pv_get_hexbflags(struct sip_msg *msg, pv_param_t *param,
00109                 pv_value_t *res);
00110 
00111 int pv_get_sflags(struct sip_msg *msg, pv_param_t *param,
00112                 pv_value_t *res);
00113 
00114 int pv_get_hexsflags(struct sip_msg *msg, pv_param_t *param,
00115                 pv_value_t *res);
00116 
00117 int pv_get_callid(struct sip_msg *msg, pv_param_t *param,
00118                 pv_value_t *res);
00119 
00120 int pv_get_srcip(struct sip_msg *msg, pv_param_t *param,
00121                 pv_value_t *res);
00122 
00123 int pv_get_srcport(struct sip_msg *msg, pv_param_t *param,
00124                 pv_value_t *res);
00125 
00126 int pv_get_rcvip(struct sip_msg *msg, pv_param_t *param,
00127                 pv_value_t *res);
00128 
00129 int pv_get_rcvport(struct sip_msg *msg, pv_param_t *param,
00130                 pv_value_t *res);
00131 
00132 int pv_get_force_sock(struct sip_msg *msg, pv_param_t *param,
00133                 pv_value_t *res);
00134 
00135 int pv_get_useragent(struct sip_msg *msg, pv_param_t *param,
00136                 pv_value_t *res);
00137 
00138 int pv_get_refer_to(struct sip_msg *msg, pv_param_t *param,
00139                 pv_value_t *res);
00140 
00141 int pv_get_diversion(struct sip_msg *msg, pv_param_t *param,
00142                 pv_value_t *res);
00143 
00144 int pv_get_rpid(struct sip_msg *msg, pv_param_t *param,
00145                 pv_value_t *res);
00146 
00147 int pv_get_ppi_attr(struct sip_msg *msg, pv_param_t *param,
00148                 pv_value_t *res);
00149 
00150 int pv_get_pai(struct sip_msg *msg, pv_param_t *param,
00151                 pv_value_t *res);
00152 
00153 int pv_get_proto(struct sip_msg *msg, pv_param_t *param,
00154                 pv_value_t *res);
00155 
00156 int pv_get_dset(struct sip_msg *msg, pv_param_t *param,
00157                 pv_value_t *res);
00158 
00159 int pv_get_dsturi(struct sip_msg *msg, pv_param_t *param,
00160                 pv_value_t *res);
00161 
00162 int pv_get_dsturi_attr(struct sip_msg *msg, pv_param_t *param,
00163                 pv_value_t *res);
00164 
00165 int pv_get_content_type(struct sip_msg *msg, pv_param_t *param,
00166                 pv_value_t *res);
00167 
00168 int pv_get_content_length(struct sip_msg *msg, pv_param_t *param,
00169                 pv_value_t *res);
00170 
00171 int pv_get_msg_body(struct sip_msg *msg, pv_param_t *param,
00172                 pv_value_t *res);
00173 
00174 int pv_get_body_size(struct sip_msg *msg, pv_param_t *param,
00175                 pv_value_t *res);
00176 
00177 int pv_get_authattr(struct sip_msg *msg, pv_param_t *param,
00178                 pv_value_t *res);
00179 
00180 int pv_get_acc_username(struct sip_msg *msg, pv_param_t *param,
00181                 pv_value_t *res);
00182 
00183 int pv_get_branch(struct sip_msg *msg, pv_param_t *param,
00184                 pv_value_t *res);
00185 
00186 int pv_get_branches(struct sip_msg *msg, pv_param_t *param,
00187                 pv_value_t *res);
00188 
00189 int pv_get_avp(struct sip_msg *msg,  pv_param_t *param, pv_value_t *res);
00190 
00191 int pv_get_hdr(struct sip_msg *msg,  pv_param_t *param, pv_value_t *res);
00192 
00193 int pv_get_scriptvar(struct sip_msg *msg,  pv_param_t *param,
00194                 pv_value_t *res);
00195 
00196 int pv_get_true(struct sip_msg *msg, pv_param_t *param,
00197                 pv_value_t *res);
00198 
00199 int pv_get_version(struct sip_msg *msg, pv_param_t *param,
00200                 pv_value_t *res);
00201 
00202 int pv_get_server_id(struct sip_msg *msg, pv_param_t *param,
00203                 pv_value_t *res);
00204 /********* end PV get functions *********/
00205 
00206 /********* start PV set functions *********/
00207 int pv_set_avp(struct sip_msg* msg, pv_param_t *param,
00208                 int op, pv_value_t *val);
00209 
00210 int pv_set_scriptvar(struct sip_msg* msg, pv_param_t *param,
00211                 int op, pv_value_t *val);
00212 
00213 int pv_set_dsturi(struct sip_msg* msg, pv_param_t *param,
00214                 int op, pv_value_t *val);
00215 
00216 int pv_set_ruri(struct sip_msg* msg, pv_param_t *param,
00217                 int op, pv_value_t *val);
00218 
00219 int pv_set_ruri_user(struct sip_msg* msg, pv_param_t *param,
00220                 int op, pv_value_t *val);
00221 
00222 int pv_set_ruri_host(struct sip_msg* msg, pv_param_t *param,
00223                 int op, pv_value_t *val);
00224 
00225 int pv_set_ruri_port(struct sip_msg* msg, pv_param_t *param,
00226                 int op, pv_value_t *val);
00227 
00228 int pv_set_branch(struct sip_msg* msg, pv_param_t *param,
00229                 int op, pv_value_t *val);
00230 
00231 int pv_set_force_sock(struct sip_msg* msg, pv_param_t *param,
00232                 int op, pv_value_t *val);
00233 
00234 int pv_set_mflags(struct sip_msg* msg, pv_param_t *param,
00235                 int op, pv_value_t *val);
00236 
00237 int pv_set_sflags(struct sip_msg* msg, pv_param_t *param,
00238                 int op, pv_value_t *val);
00239 
00240 int pv_set_bflags(struct sip_msg* msg, pv_param_t *param,
00241                 int op, pv_value_t *val);
00242 
00243 int pv_set_to_uri(struct sip_msg* msg, pv_param_t *param,
00244                 int op, pv_value_t *val);
00245 
00246 int pv_set_to_username(struct sip_msg* msg, pv_param_t *param,
00247                 int op, pv_value_t *val);
00248 
00249 int pv_set_to_domain(struct sip_msg* msg, pv_param_t *param,
00250                 int op, pv_value_t *val);
00251 
00252 int pv_set_to_display(struct sip_msg* msg, pv_param_t *param,
00253                 int op, pv_value_t *val);
00254 
00255 int pv_set_from_uri(struct sip_msg* msg, pv_param_t *param,
00256                 int op, pv_value_t *val);
00257 
00258 int pv_set_from_username(struct sip_msg* msg, pv_param_t *param,
00259                 int op, pv_value_t *val);
00260 
00261 int pv_set_from_domain(struct sip_msg* msg, pv_param_t *param,
00262                 int op, pv_value_t *val);
00263 
00264 int pv_set_from_display(struct sip_msg* msg, pv_param_t *param,
00265                 int op, pv_value_t *val);
00266 
00267 /********* end PV set functions *********/
00268 
00269 int pv_parse_scriptvar_name(pv_spec_p sp, str *in);
00270 
00271 int pv_parse_hdr_name(pv_spec_p sp, str *in);
00272 
00273 #endif
00274