pv: new var $mts - return msg type as string
[sip-router] / src / modules / pv / pv_core.h
1 /*
2  * Copyright (C) 2001-2005 FhG Fokus
3  * Copyright (C) 2008 Daniel-Constantin Mierla (asipto.com)
4  *
5  * This file is part of Kamailio, a free SIP server.
6  *
7  * Kamailio is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version
11  *
12  * Kamailio is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20  */
21
22 #ifndef _PV_CORE_H_
23 #define _PV_CORE_H_
24
25 #include "../../core/pvar.h"
26 #include "../../core/parser/parse_to.h"
27
28 int pv_get_msgid(struct sip_msg *msg, pv_param_t *param,
29                 pv_value_t *res);
30
31 int pv_get_udp(struct sip_msg *msg, pv_param_t *param,
32                 pv_value_t *res);
33
34 int pv_get_5060(struct sip_msg *msg, pv_param_t *param,
35                 pv_value_t *res);
36
37 int pv_get_return_code(struct sip_msg *msg, pv_param_t *param,
38                 pv_value_t *res);
39
40 int pv_get_pid(struct sip_msg *msg, pv_param_t *param,
41                 pv_value_t *res);
42
43 int pv_get_method(struct sip_msg *msg, pv_param_t *param,
44                 pv_value_t *res);
45
46 int pv_get_methodid(struct sip_msg *msg, pv_param_t *param,
47                 pv_value_t *res);
48
49 int pv_get_msgtype(struct sip_msg *msg, pv_param_t *param,
50                 pv_value_t *res);
51
52 int pv_get_msgtypes(struct sip_msg *msg, pv_param_t *param,
53                 pv_value_t *res);
54
55 int pv_get_status(struct sip_msg *msg, pv_param_t *param,
56                 pv_value_t *res);
57
58 int pv_get_reason(struct sip_msg *msg, pv_param_t *param,
59                 pv_value_t *res);
60
61 int pv_get_ruri(struct sip_msg *msg, pv_param_t *param,
62                 pv_value_t *res);
63
64 int pv_get_ouri(struct sip_msg *msg, pv_param_t *param,
65                 pv_value_t *res);
66
67 int pv_get_xuri_attr(struct sip_msg *msg, struct sip_uri *parsed_uri,
68                 pv_param_t *param, pv_value_t *res);
69
70 int pv_get_ruri_attr(struct sip_msg *msg, pv_param_t *param,
71                 pv_value_t *res);
72
73 int pv_get_ouri_attr(struct sip_msg *msg, pv_param_t *param,
74                 pv_value_t *res);
75
76 int pv_get_errinfo_attr(struct sip_msg *msg, pv_param_t *param,
77                 pv_value_t *res);
78
79 int pv_get_contact(struct sip_msg *msg, pv_param_t *param,
80                 pv_value_t *res);
81
82 int pv_get_xto_attr(struct sip_msg *msg, pv_param_t *param,
83                 pv_value_t *res, struct to_body *xto, int type);
84
85 int pv_get_to_attr(struct sip_msg *msg, pv_param_t *param,
86                 pv_value_t *res);
87
88 int pv_get_from_attr(struct sip_msg *msg, pv_param_t *param,
89                 pv_value_t *res);
90
91 int pv_get_cseq(struct sip_msg *msg, pv_param_t *param,
92                 pv_value_t *res);
93
94 int pv_get_cseq_body(struct sip_msg *msg, pv_param_t *param,
95                 pv_value_t *res);
96
97 int pv_get_msg_buf(struct sip_msg *msg, pv_param_t *param,
98                 pv_value_t *res);
99
100 int pv_get_msg_buf_updated(struct sip_msg *msg, pv_param_t *param,
101                 pv_value_t *res);
102
103 int pv_get_msg_len(struct sip_msg *msg, pv_param_t *param,
104                 pv_value_t *res);
105
106 int pv_get_flags(struct sip_msg *msg, pv_param_t *param,
107                 pv_value_t *res);
108
109 int pv_get_hexflags(struct sip_msg *msg, pv_param_t *param,
110                 pv_value_t *res);
111
112 int pv_get_flag(struct sip_msg *msg, pv_param_t *param,
113                 pv_value_t *res);
114
115 int pv_get_bflags(struct sip_msg *msg, pv_param_t *param,
116                 pv_value_t *res);
117
118 int pv_get_hexbflags(struct sip_msg *msg, pv_param_t *param,
119                 pv_value_t *res);
120
121 int pv_get_bflag(struct sip_msg *msg, pv_param_t *param,
122                 pv_value_t *res);
123
124 int pv_get_sflags(struct sip_msg *msg, pv_param_t *param,
125                 pv_value_t *res);
126
127 int pv_get_hexsflags(struct sip_msg *msg, pv_param_t *param,
128                 pv_value_t *res);
129
130 int pv_get_sflag(struct sip_msg *msg, pv_param_t *param,
131                 pv_value_t *res);
132
133 int pv_get_callid(struct sip_msg *msg, pv_param_t *param,
134                 pv_value_t *res);
135
136 int pv_get_srcip(struct sip_msg *msg, pv_param_t *param,
137                 pv_value_t *res);
138
139 int pv_get_srcipz(struct sip_msg *msg, pv_param_t *param,
140                 pv_value_t *res);
141
142 int pv_get_srcport(struct sip_msg *msg, pv_param_t *param,
143                 pv_value_t *res);
144
145 int pv_get_srcaddr_uri(struct sip_msg *msg, pv_param_t *param,
146                 pv_value_t *res);
147
148 int pv_get_srcaddr_uri_full(struct sip_msg *msg, pv_param_t *param,
149                 pv_value_t *res);
150
151 int pv_get_srcaddr_socket(struct sip_msg *msg, pv_param_t *param,
152                 pv_value_t *res);
153
154 int pv_get_rcvip(struct sip_msg *msg, pv_param_t *param,
155                 pv_value_t *res);
156
157 int pv_get_rcvport(struct sip_msg *msg, pv_param_t *param,
158                 pv_value_t *res);
159
160 int pv_get_rcvaddr_uri(struct sip_msg *msg, pv_param_t *param,
161                 pv_value_t *res);
162
163 int pv_get_rcvaddr_uri_full(struct sip_msg *msg, pv_param_t *param,
164                 pv_value_t *res);
165
166 int pv_get_rcv_advertised_ip(struct sip_msg *msg, pv_param_t *param,
167                 pv_value_t *res);
168
169 int pv_get_rcv_advertised_port(struct sip_msg *msg, pv_param_t *param,
170                 pv_value_t *res);
171
172 int pv_get_rcvadv_uri(struct sip_msg *msg, pv_param_t *param,
173                 pv_value_t *res);
174
175 int pv_get_rcvadv_uri_full(struct sip_msg *msg, pv_param_t *param,
176                 pv_value_t *res);
177
178 int pv_get_force_sock(struct sip_msg *msg, pv_param_t *param,
179                 pv_value_t *res);
180
181 int pv_get_force_sock_name(struct sip_msg *msg, pv_param_t *param,
182                 pv_value_t *res);
183
184 int pv_get_useragent(struct sip_msg *msg, pv_param_t *param,
185                 pv_value_t *res);
186
187 int pv_get_refer_to(struct sip_msg *msg, pv_param_t *param,
188                 pv_value_t *res);
189
190 int pv_get_diversion(struct sip_msg *msg, pv_param_t *param,
191                 pv_value_t *res);
192
193 int pv_get_rpid(struct sip_msg *msg, pv_param_t *param,
194                 pv_value_t *res);
195
196 int pv_get_ppi_attr(struct sip_msg *msg, pv_param_t *param,
197                 pv_value_t *res);
198
199 int pv_get_pai(struct sip_msg *msg, pv_param_t *param,
200                 pv_value_t *res);
201
202 int pv_get_proto(struct sip_msg *msg, pv_param_t *param,
203                 pv_value_t *res);
204
205 int pv_get_protoid(struct sip_msg *msg, pv_param_t *param,
206                 pv_value_t *res);
207
208 int pv_get_dset(struct sip_msg *msg, pv_param_t *param,
209                 pv_value_t *res);
210
211 int pv_get_dsturi(struct sip_msg *msg, pv_param_t *param,
212                 pv_value_t *res);
213
214 int pv_get_dsturi_attr(struct sip_msg *msg, pv_param_t *param,
215                 pv_value_t *res);
216
217 int pv_get_content_type(struct sip_msg *msg, pv_param_t *param,
218                 pv_value_t *res);
219
220 int pv_get_content_length(struct sip_msg *msg, pv_param_t *param,
221                 pv_value_t *res);
222
223 int pv_get_msg_body(struct sip_msg *msg, pv_param_t *param,
224                 pv_value_t *res);
225
226 int pv_get_body_size(struct sip_msg *msg, pv_param_t *param,
227                 pv_value_t *res);
228
229 int pv_get_authattr(struct sip_msg *msg, pv_param_t *param,
230                 pv_value_t *res);
231
232 int pv_get_acc_user(struct sip_msg *msg, pv_param_t *param,
233                 pv_value_t *res);
234
235 int pv_get_acc_username(struct sip_msg *msg, pv_param_t *param,
236                 pv_value_t *res);
237
238 int pv_get_branch(struct sip_msg *msg, pv_param_t *param,
239                 pv_value_t *res);
240
241 int pv_get_branches(struct sip_msg *msg, pv_param_t *param,
242                 pv_value_t *res);
243
244 int pv_get_avp(struct sip_msg *msg,  pv_param_t *param, pv_value_t *res);
245
246 int pv_get_hdr(struct sip_msg *msg,  pv_param_t *param, pv_value_t *res);
247
248 int pv_get_hdrc(struct sip_msg *msg,  pv_param_t *param, pv_value_t *res);
249
250 int pv_get_scriptvar(struct sip_msg *msg,  pv_param_t *param,
251                 pv_value_t *res);
252
253 int pv_get_true(struct sip_msg *msg, pv_param_t *param,
254                 pv_value_t *res);
255
256 int pv_get_version(struct sip_msg *msg, pv_param_t *param,
257                 pv_value_t *res);
258
259 int pv_get_server_id(struct sip_msg *msg, pv_param_t *param,
260                 pv_value_t *res);
261
262 int pv_get_cnt(struct sip_msg *msg, pv_param_t *param,
263                 pv_value_t *res);
264
265 int pv_get_ruid(struct sip_msg *msg, pv_param_t *param,
266                 pv_value_t *res);
267
268 int pv_get_location_ua(struct sip_msg *msg, pv_param_t *param,
269                 pv_value_t *res);
270
271 int pv_get_tcpconn_id(struct sip_msg *msg, pv_param_t *param,
272                 pv_value_t *res);
273
274 /********* end PV get functions *********/
275
276 /********* start PV set functions *********/
277 int pv_set_avp(struct sip_msg* msg, pv_param_t *param,
278                 int op, pv_value_t *val);
279
280 int pv_set_scriptvar(struct sip_msg* msg, pv_param_t *param,
281                 int op, pv_value_t *val);
282
283 int pv_set_dsturi(struct sip_msg* msg, pv_param_t *param,
284                 int op, pv_value_t *val);
285
286 int pv_set_ruri(struct sip_msg* msg, pv_param_t *param,
287                 int op, pv_value_t *val);
288
289 int pv_set_ruri_user(struct sip_msg* msg, pv_param_t *param,
290                 int op, pv_value_t *val);
291
292 int pv_set_ruri_host(struct sip_msg* msg, pv_param_t *param,
293                 int op, pv_value_t *val);
294
295 int pv_set_ruri_port(struct sip_msg* msg, pv_param_t *param,
296                 int op, pv_value_t *val);
297
298 int pv_set_branch(struct sip_msg* msg, pv_param_t *param,
299                 int op, pv_value_t *val);
300
301 int pv_set_force_sock(struct sip_msg* msg, pv_param_t *param,
302                 int op, pv_value_t *val);
303
304 int pv_set_force_sock_name(struct sip_msg* msg, pv_param_t *param,
305                 int op, pv_value_t *val);
306
307 int pv_set_mflags(struct sip_msg* msg, pv_param_t *param,
308                 int op, pv_value_t *val);
309
310 int pv_set_mflag(struct sip_msg* msg, pv_param_t *param,
311                 int op, pv_value_t *val);
312
313 int pv_set_sflags(struct sip_msg* msg, pv_param_t *param,
314                 int op, pv_value_t *val);
315
316 int pv_set_sflag(struct sip_msg* msg, pv_param_t *param,
317                 int op, pv_value_t *val);
318
319 int pv_set_bflags(struct sip_msg* msg, pv_param_t *param,
320                 int op, pv_value_t *val);
321
322 int pv_set_bflag(struct sip_msg* msg, pv_param_t *param,
323                 int op, pv_value_t *val);
324
325 int pv_set_to_uri(struct sip_msg* msg, pv_param_t *param,
326                 int op, pv_value_t *val);
327
328 int pv_set_to_username(struct sip_msg* msg, pv_param_t *param,
329                 int op, pv_value_t *val);
330
331 int pv_set_to_domain(struct sip_msg* msg, pv_param_t *param,
332                 int op, pv_value_t *val);
333
334 int pv_set_to_display(struct sip_msg* msg, pv_param_t *param,
335                 int op, pv_value_t *val);
336
337 int pv_set_from_uri(struct sip_msg* msg, pv_param_t *param,
338                 int op, pv_value_t *val);
339
340 int pv_set_from_username(struct sip_msg* msg, pv_param_t *param,
341                 int op, pv_value_t *val);
342
343 int pv_set_from_domain(struct sip_msg* msg, pv_param_t *param,
344                 int op, pv_value_t *val);
345
346 int pv_set_from_display(struct sip_msg* msg, pv_param_t *param,
347                 int op, pv_value_t *val);
348
349 /********* end PV set functions *********/
350
351 int pv_parse_scriptvar_name(pv_spec_p sp, str *in);
352 int pv_parse_scriptvarnull_name(pv_spec_p sp, str *in);
353
354 int pv_parse_hdr_name(pv_spec_p sp, str *in);
355
356 int pv_parse_cnt_name(pv_spec_p sp, str *in);
357
358 int pv_parse_af_name(pv_spec_p sp, str *in);
359
360 int pv_get_af(sip_msg_t *msg, pv_param_t *param,
361                 pv_value_t *res);
362
363 int pv_parse_K_name(pv_spec_p sp, str *in);
364
365 int pv_get_K(sip_msg_t *msg, pv_param_t *param,
366                 pv_value_t *res);
367
368 int pv_parse_flag_param(pv_spec_p sp, str *in);
369
370 int pv_parse__s_name(pv_spec_p sp, str *in);
371
372 int pv_get__s(sip_msg_t *msg, pv_param_t *param,
373                 pv_value_t *res);
374
375 int pv_parse_expires_name(pv_spec_p sp, str *in);
376
377 int pv_get_expires(sip_msg_t *msg, pv_param_t *param,
378                 pv_value_t *res);
379
380 int pv_parse_msg_attrs_name(pv_spec_p sp, str *in);
381
382 int pv_get_msg_attrs(sip_msg_t *msg, pv_param_t *param,
383                 pv_value_t *res);
384
385 int pv_parse_env_name(pv_spec_p sp, str *in);
386
387 int pv_get_env(sip_msg_t *msg, pv_param_t *param, pv_value_t *res);
388
389 int pv_parse_ksr_attrs_name(pv_spec_p sp, str *in);
390
391 int pv_get_ksr_attrs(sip_msg_t *msg, pv_param_t *param,
392                 pv_value_t *res);
393
394 int pv_parse_def_name(pv_spec_p sp, str *in);
395 int pv_get_def(sip_msg_t *msg, pv_param_t *param, pv_value_t *res);
396
397 #endif
398