Browse code

core, lib, modules: restructured source code tree

- new folder src/ to hold the source code for main project applications
- main.c is in src/
- all core files are subfolder are in src/core/
- modules are in src/modules/
- libs are in src/lib/
- application Makefiles are in src/
- application binary is built in src/ (src/kamailio)

Daniel-Constantin Mierla authored on 07/12/2016 11:03:51
Showing 1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,423 +0,0 @@
1
-/*
2
- * Copyright (C) 2005-2006 iptelorg GmbH
3
- *
4
- * This file is part of Kamailio, a free SIP server.
5
- *
6
- * Kamailio is free software; you can redistribute it and/or modify
7
- * it under the terms of the GNU General Public License as published by
8
- * the Free Software Foundation; either version 2 of the License, or
9
- * (at your option) any later version
10
- *
11
- * Kamailio is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
- * GNU General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU General Public License 
17
- * along with this program; if not, write to the Free Software 
18
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
19
- *
20
- */
21
-
22
-/*!
23
-* \file
24
-* \brief Kamailio core :: Select framework, basic core functions
25
-* \author mma
26
-* \ingroup core
27
-* Module: \ref core
28
-*/
29
-
30
- 
31
-#ifndef _SELECT_CORE_H
32
-#define _SELECT_CORE_H
33
-
34
-#include "str.h"
35
-#include "parser/msg_parser.h"
36
-#include "select.h"
37
-
38
-enum {
39
-	SEL_PARAM_TAG, 
40
-	SEL_PARAM_Q, SEL_PARAM_EXPIRES, SEL_PARAM_METHODS, SEL_PARAM_RECEIVED, SEL_PARAM_INSTANCE, 
41
-	SEL_PARAM_BRANCH, SEL_PARAM_RPORT, SEL_PARAM_I, SEL_PARAM_ALIAS
42
-       };
43
-
44
-enum {
45
-	SEL_AUTH_PROXY,
46
-	SEL_AUTH_WWW,
47
-	SEL_AUTH_USERNAME,
48
-	SEL_AUTH_USER,
49
-	SEL_AUTH_DOMAIN,
50
-	SEL_AUTH_REALM,
51
-	SEL_AUTH_NONCE,
52
-	SEL_AUTH_URI,
53
-	SEL_AUTH_CNONCE,
54
-	SEL_AUTH_NC,
55
-	SEL_AUTH_RESPONSE,
56
-	SEL_AUTH_OPAQUE,
57
-	SEL_AUTH_ALG,
58
-	SEL_AUTH_QOP
59
-};
60
-
61
-enum {
62
-	SEL_SRC  = 1<<0,
63
-	SEL_DST  = 1<<1,
64
-	SEL_RCV  = 1<<2,
65
-	SEL_PROTO= 1<<5,
66
-	SEL_IP   = 1<<6,
67
-	SEL_PORT = 1<<7,
68
-	SEL_IP_PORT = SEL_IP | SEL_PORT,
69
-};
70
-
71
-enum {
72
-	SEL_NOW_GMT = 1,
73
-	SEL_NOW_LOCAL = 2
74
-};
75
-
76
-enum {
77
-	SEL_BRANCH_URI = 1<<0,
78
-	SEL_BRANCH_Q = 1<<1,
79
-	SEL_BRANCH_DST_URI = 1<<2
80
-};
81
-
82
-SELECT_F(select_ruri)
83
-SELECT_F(select_dst_uri)
84
-SELECT_F(select_next_hop)
85
-SELECT_F(select_next_hop_src_ip)
86
-SELECT_F(select_from)
87
-SELECT_F(select_from_uri)
88
-SELECT_F(select_from_tag)
89
-SELECT_F(select_from_name)
90
-SELECT_F(select_from_params)
91
-SELECT_F(select_to)
92
-SELECT_F(select_to_uri)
93
-SELECT_F(select_to_tag)
94
-SELECT_F(select_to_name)
95
-SELECT_F(select_to_params)
96
-SELECT_F(select_refer_to)
97
-SELECT_F(select_refer_to_uri)
98
-SELECT_F(select_refer_to_tag)
99
-SELECT_F(select_refer_to_name)
100
-SELECT_F(select_refer_to_params)
101
-SELECT_F(select_rpid)
102
-SELECT_F(select_rpid_uri)
103
-SELECT_F(select_rpid_tag)
104
-SELECT_F(select_rpid_name)
105
-SELECT_F(select_rpid_params)
106
-SELECT_F(select_contact)
107
-SELECT_F(select_contact_uri)
108
-SELECT_F(select_contact_name)
109
-SELECT_F(select_contact_params)
110
-SELECT_F(select_contact_params_spec)
111
-SELECT_F(select_via)
112
-SELECT_F(select_via_name)
113
-SELECT_F(select_via_version)
114
-SELECT_F(select_via_transport)
115
-SELECT_F(select_via_host)
116
-SELECT_F(select_via_port)
117
-SELECT_F(select_via_comment)
118
-SELECT_F(select_via_params)
119
-SELECT_F(select_via_params_spec)
120
-
121
-SELECT_F(select_msg)
122
-SELECT_F(select_msg_first_line)
123
-SELECT_F(select_msg_flags)
124
-SELECT_F(select_msg_type)
125
-SELECT_F(select_msg_len)
126
-SELECT_F(select_msg_id)
127
-SELECT_F(select_msg_id_hex)
128
-SELECT_F(select_msg_body)
129
-SELECT_F(select_msg_body_sdp)
130
-SELECT_F(select_sdp_line)
131
-SELECT_F(select_msg_header)
132
-SELECT_F(select_anyheader)
133
-SELECT_F(select_anyheader_params)
134
-SELECT_F(select_msg_request)
135
-SELECT_F(select_msg_request_method)
136
-SELECT_F(select_msg_request_uri)
137
-SELECT_F(select_msg_request_version)
138
-SELECT_F(select_msg_response)
139
-SELECT_F(select_msg_response_version)
140
-SELECT_F(select_msg_response_status)
141
-SELECT_F(select_msg_response_reason)
142
-SELECT_F(select_version)
143
-
144
-SELECT_F(select_any_nameaddr)
145
-SELECT_F(select_nameaddr_name)
146
-SELECT_F(select_nameaddr_uri)
147
-SELECT_F(select_nameaddr_params)
148
-SELECT_F(select_any_params)
149
-	
150
-SELECT_F(select_any_uri)
151
-SELECT_F(select_uri_type)
152
-SELECT_F(select_uri_user)
153
-SELECT_F(select_uri_rn_user)
154
-SELECT_F(select_uri_pwd)
155
-SELECT_F(select_uri_host)
156
-SELECT_F(select_uri_port)
157
-SELECT_F(select_uri_hostport)
158
-SELECT_F(select_uri_params)
159
-SELECT_F(select_uri_proto)
160
-
161
-SELECT_F(select_event)
162
-
163
-SELECT_F(select_rr)
164
-SELECT_F(select_rr_uri)
165
-SELECT_F(select_rr_name)
166
-SELECT_F(select_rr_params)
167
-
168
-SELECT_F(select_cseq)
169
-SELECT_F(select_cseq_method)
170
-SELECT_F(select_cseq_num)
171
-
172
-SELECT_F(select_auth)
173
-SELECT_F(select_auth_param)
174
-SELECT_F(select_auth_username)
175
-SELECT_F(select_auth_username_comp)
176
-
177
-SELECT_F(select_src)
178
-SELECT_F(select_dst)
179
-SELECT_F(select_rcv)
180
-SELECT_F(select_ip_port)
181
-
182
-SELECT_F(select_call_id)
183
-SELECT_F(select_expires)
184
-SELECT_F(select_max_forwards)
185
-SELECT_F(select_content_type)
186
-SELECT_F(select_content_length)
187
-SELECT_F(select_subject)
188
-SELECT_F(select_organization)
189
-SELECT_F(select_priority)
190
-SELECT_F(select_session_expires)
191
-SELECT_F(select_min_se)
192
-SELECT_F(select_user_agent)
193
-SELECT_F(select_sip_if_match)
194
-
195
-SELECT_F(select_sys)
196
-SELECT_F(select_sys_pid)
197
-SELECT_F(select_sys_server_id)
198
-SELECT_F(select_sys_unique)
199
-SELECT_F(select_sys_now)
200
-SELECT_F(select_sys_now_fmt)
201
-
202
-SELECT_F(select_branch)
203
-SELECT_F(select_branch_count)
204
-SELECT_F(select_branch_uri)
205
-SELECT_F(select_branch_dst_uri)
206
-SELECT_F(select_branch_uriq)
207
-SELECT_F(select_branch_q)
208
-
209
-SELECT_F(select_date)
210
-SELECT_F(select_identity)
211
-SELECT_F(select_identity_info)
212
-
213
-SELECT_F(select_cfg_var)
214
-SELECT_F(select_cfg_var1)
215
-SELECT_F(cfg_selected_inst)
216
-
217
-static select_row_t select_core[] = {
218
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("ruri"), select_ruri, 0}, /* not the same as request.uri because it is involved by new_uri */
219
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("request_uri"), select_ruri, 0},
220
-	{ select_ruri, SEL_PARAM_STR, STR_NULL, select_any_uri, NESTED},
221
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("dst_uri"), select_dst_uri, 0},
222
-	{ select_dst_uri, SEL_PARAM_STR, STR_NULL, select_any_uri, NESTED},
223
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("next_hop"), select_next_hop, 0},
224
-	{ select_next_hop, SEL_PARAM_STR, STR_STATIC_INIT("src_ip"), select_next_hop_src_ip, 0},
225
-	{ select_next_hop, SEL_PARAM_STR, STR_NULL, select_any_uri, NESTED},
226
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("from"), select_from, 0},
227
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("f"), select_from, 0},
228
-	{ select_from, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_from_uri, 0},
229
-	{ select_from, SEL_PARAM_STR, STR_STATIC_INIT("tag"), select_from_tag, 0},
230
-	{ select_from, SEL_PARAM_STR, STR_STATIC_INIT("name"), select_from_name, 0},
231
-	{ select_from, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_from_params, CONSUME_NEXT_STR},
232
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("to"), select_to, 0},
233
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("t"), select_to, 0},
234
-	{ select_to, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_to_uri, 0},
235
-	{ select_to, SEL_PARAM_STR, STR_STATIC_INIT("tag"), select_to_tag, 0},
236
-	{ select_to, SEL_PARAM_STR, STR_STATIC_INIT("name"), select_to_name, 0},
237
-	{ select_to, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_to_params, CONSUME_NEXT_STR},
238
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("refer_to"), select_refer_to, 0},
239
-	{ select_refer_to, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_refer_to_uri, 0},
240
-	{ select_refer_to, SEL_PARAM_STR, STR_STATIC_INIT("tag"), select_refer_to_tag, 0},
241
-	{ select_refer_to, SEL_PARAM_STR, STR_STATIC_INIT("name"), select_refer_to_name, 0},
242
-	{ select_refer_to, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_refer_to_params, CONSUME_NEXT_STR},
243
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("remote_party_id"), select_rpid, 0},
244
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("rpid"), select_rpid, 0},
245
-	{ select_rpid, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_rpid_uri, 0},
246
-	{ select_rpid, SEL_PARAM_STR, STR_STATIC_INIT("tag"), select_rpid_tag, 0},
247
-	{ select_rpid, SEL_PARAM_STR, STR_STATIC_INIT("name"), select_rpid_name, 0},
248
-	{ select_rpid, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_rpid_params, CONSUME_NEXT_STR},
249
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("contact"), select_contact, 0},
250
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("m"), select_contact, 0},
251
-	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_contact_uri, 0},
252
-	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("name"), select_contact_name, 0}, 
253
-	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("q"), select_contact_params_spec, DIVERSION | SEL_PARAM_Q}, 
254
-	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("expires"), select_contact_params_spec, DIVERSION | SEL_PARAM_EXPIRES}, 
255
-	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("methods"), select_contact_params_spec, DIVERSION | SEL_PARAM_METHODS}, 
256
-	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("received"), select_contact_params_spec, DIVERSION | SEL_PARAM_RECEIVED}, 
257
-	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("instance"), select_contact_params_spec, DIVERSION | SEL_PARAM_INSTANCE}, 	
258
-	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_contact_params, CONSUME_NEXT_STR},
259
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("via"), select_via, OPTIONAL | CONSUME_NEXT_INT},
260
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("v"), select_via, OPTIONAL | CONSUME_NEXT_INT},
261
-	{ select_via, SEL_PARAM_STR, STR_STATIC_INIT("name"), select_via_name, 0},
262
-	{ select_via, SEL_PARAM_STR, STR_STATIC_INIT("version"), select_via_version, 0},
263
-	{ select_via, SEL_PARAM_STR, STR_STATIC_INIT("transport"), select_via_transport, 0},
264
-	{ select_via, SEL_PARAM_STR, STR_STATIC_INIT("host"), select_via_host, 0},
265
-	{ select_via, SEL_PARAM_STR, STR_STATIC_INIT("port"), select_via_port, 0},
266
-	{ select_via, SEL_PARAM_STR, STR_STATIC_INIT("comment"), select_via_comment, 0},
267
-	{ select_via, SEL_PARAM_STR, STR_STATIC_INIT("branch"), select_via_params_spec, DIVERSION | SEL_PARAM_BRANCH},
268
-	{ select_via, SEL_PARAM_STR, STR_STATIC_INIT("received"), select_via_params_spec, DIVERSION | SEL_PARAM_RECEIVED},
269
-	{ select_via, SEL_PARAM_STR, STR_STATIC_INIT("rport"), select_via_params_spec, DIVERSION | SEL_PARAM_RPORT},
270
-	{ select_via, SEL_PARAM_STR, STR_STATIC_INIT("i"), select_via_params_spec, DIVERSION | SEL_PARAM_I},
271
-	{ select_via, SEL_PARAM_STR, STR_STATIC_INIT("alias"), select_via_params_spec, DIVERSION | SEL_PARAM_ALIAS},
272
-	{ select_via, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_via_params, CONSUME_NEXT_STR},
273
-	
274
-	{ select_from_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
275
-	{ select_to_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
276
-	{ select_refer_to_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
277
-	{ select_rpid_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
278
-	{ select_contact_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
279
-	{ select_rr_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
280
-	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("type"), select_uri_type, 0},
281
-	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("user"), select_uri_user, 0},
282
-	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("rn_user"), select_uri_rn_user, 0},
283
-	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("pwd"), select_uri_pwd, 0},
284
-	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("host"), select_uri_host, 0},
285
-	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("port"), select_uri_port, 0},
286
-	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_uri_params, CONSUME_NEXT_STR | OPTIONAL | FIXUP_CALL },
287
-	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("hostport"), select_uri_hostport, 0},
288
-	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("transport"), select_uri_proto, 0},
289
-
290
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("event"), select_event, 0},
291
-
292
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("record_route"), select_rr, 0},
293
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("rr"), select_rr, 0},
294
-	{ select_rr, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_rr_uri, 0},
295
-	{ select_rr, SEL_PARAM_STR, STR_STATIC_INIT("name"), select_rr_name, 0}, 
296
-	{ select_rr, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_rr_params, CONSUME_NEXT_STR},
297
-
298
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("cseq"), select_cseq, 0},
299
-	{ select_cseq, SEL_PARAM_STR, STR_STATIC_INIT("num"), select_cseq_num, 0},
300
-	{ select_cseq, SEL_PARAM_STR, STR_STATIC_INIT("method"), select_cseq_method, 0},
301
-
302
-	{ select_any_nameaddr, SEL_PARAM_STR, STR_STATIC_INIT("name"), select_nameaddr_name, 0},
303
-	{ select_any_nameaddr, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_nameaddr_uri, 0},
304
-	{ select_any_nameaddr, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_nameaddr_params, OPTIONAL | CONSUME_NEXT_STR},
305
-	{ select_nameaddr_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
306
-
307
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("msg"), select_msg, 0},
308
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("message"), select_msg, 0},
309
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("first_line"), select_msg_first_line, 0},
310
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("flags"), select_msg_flags, 0},
311
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("len"), select_msg_len, 0},
312
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("id"), select_msg_id, 0},
313
-	{ select_msg_id, SEL_PARAM_STR, STR_STATIC_INIT("hex"), select_msg_id_hex, 0},
314
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("type"), select_msg_type, 0},
315
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("header"), select_msg_header, 0},
316
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("h"), select_msg_header, 0},
317
-	{ select_msg_header, SEL_PARAM_STR, STR_NULL, select_anyheader, OPTIONAL | CONSUME_NEXT_INT | FIXUP_CALL},
318
-	{ select_anyheader, SEL_PARAM_STR, STR_STATIC_INIT("nameaddr"), select_any_nameaddr, NESTED | CONSUME_NEXT_STR},
319
-	{ select_anyheader, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_anyheader_params, NESTED},
320
-	{ select_anyheader_params, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_any_params, CONSUME_NEXT_STR},
321
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("body"), select_msg_body, 0},
322
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("content"), select_msg_body, 0},
323
-	{ select_msg_body, SEL_PARAM_STR, STR_STATIC_INIT("sdp"), select_msg_body_sdp, 0},
324
-	{ select_msg_body_sdp, SEL_PARAM_STR, STR_STATIC_INIT("line"), select_sdp_line, CONSUME_NEXT_STR | FIXUP_CALL},
325
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("request"), select_msg_request, 0},
326
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("req"), select_msg_request, 0},
327
-	{ select_msg_request, SEL_PARAM_STR, STR_STATIC_INIT("method"), select_msg_request_method, 0},
328
-	{ select_msg_request, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_msg_request_uri, 0},
329
-	{ select_msg_request_uri, SEL_PARAM_STR, STR_NULL, select_any_uri, NESTED},
330
-	{ select_msg_request, SEL_PARAM_STR, STR_STATIC_INIT("version"), select_msg_request_version, 0},
331
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("response"), select_msg_response, 0},
332
-	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("res"), select_msg_response, 0},
333
-	{ select_msg_response, SEL_PARAM_STR, STR_STATIC_INIT("version"), select_msg_response_version, 0},
334
-	{ select_msg_response, SEL_PARAM_STR, STR_STATIC_INIT("status"), select_msg_response_status, 0},
335
-	{ select_msg_response, SEL_PARAM_STR, STR_STATIC_INIT("code"), select_msg_response_status, 0},
336
-	{ select_msg_response, SEL_PARAM_STR, STR_STATIC_INIT("reason"), select_msg_response_reason, 0},
337
-	/*short aliases*/
338
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("method"), select_msg_request_method, 0},
339
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("version"), select_version, 0},
340
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("status"), select_msg_response_status, 0},
341
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("code"), select_msg_response_status, 0},
342
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("reason"), select_msg_response_reason, 0},
343
-
344
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("proxy_authorization"), select_auth, CONSUME_NEXT_STR | DIVERSION | SEL_AUTH_PROXY | FIXUP_CALL},
345
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("authorization"), select_auth, CONSUME_NEXT_STR | DIVERSION | SEL_AUTH_WWW | FIXUP_CALL}, 
346
-	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("username"), select_auth_username, DIVERSION | SEL_AUTH_USERNAME},
347
-	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("realm"), select_auth_param, DIVERSION | SEL_AUTH_REALM},
348
-	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("nonce"), select_auth_param, DIVERSION | SEL_AUTH_NONCE},
349
-	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_auth_param, DIVERSION | SEL_AUTH_URI},
350
-	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("cnonce"), select_auth_param, DIVERSION | SEL_AUTH_CNONCE},
351
-	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("nc"), select_auth_param, DIVERSION | SEL_AUTH_NC},
352
-	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("response"), select_auth_param, DIVERSION | SEL_AUTH_RESPONSE},
353
-	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("opaque"), select_auth_param, DIVERSION | SEL_AUTH_OPAQUE},
354
-	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("algorithm"), select_auth_param, DIVERSION | SEL_AUTH_ALG},
355
-	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("qop"), select_auth_param, DIVERSION | SEL_AUTH_QOP},
356
-	{ select_auth_username, SEL_PARAM_STR, STR_STATIC_INIT("user"), select_auth_username_comp, DIVERSION | SEL_AUTH_USER},
357
-	{ select_auth_username, SEL_PARAM_STR, STR_STATIC_INIT("domain"), select_auth_username_comp, DIVERSION | SEL_AUTH_DOMAIN},
358
-
359
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("src"), select_src, SEL_PARAM_EXPECTED},
360
-	{ select_src, SEL_PARAM_STR, STR_STATIC_INIT("ip"), select_ip_port, DIVERSION | SEL_SRC | SEL_IP},
361
-	{ select_src, SEL_PARAM_STR, STR_STATIC_INIT("port"), select_ip_port, DIVERSION | SEL_SRC | SEL_PORT},
362
-	{ select_src, SEL_PARAM_STR, STR_STATIC_INIT("ip_port"), select_ip_port, DIVERSION | SEL_SRC | SEL_IP_PORT},
363
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("dst"), select_dst, SEL_PARAM_EXPECTED},
364
-	{ select_dst, SEL_PARAM_STR, STR_STATIC_INIT("ip"), select_ip_port, DIVERSION | SEL_DST | SEL_IP},
365
-	{ select_dst, SEL_PARAM_STR, STR_STATIC_INIT("port"), select_ip_port, DIVERSION | SEL_DST | SEL_PORT},
366
-	{ select_dst, SEL_PARAM_STR, STR_STATIC_INIT("ip_port"), select_ip_port, DIVERSION | SEL_DST | SEL_IP_PORT},
367
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("received"), select_rcv, SEL_PARAM_EXPECTED},
368
-	{ select_rcv, SEL_PARAM_STR, STR_STATIC_INIT("proto"), select_ip_port, DIVERSION | SEL_RCV | SEL_PROTO},
369
-	{ select_rcv, SEL_PARAM_STR, STR_STATIC_INIT("ip"), select_ip_port, DIVERSION | SEL_RCV | SEL_IP},
370
-	{ select_rcv, SEL_PARAM_STR, STR_STATIC_INIT("port"), select_ip_port, DIVERSION | SEL_RCV | SEL_PORT},
371
-	{ select_rcv, SEL_PARAM_STR, STR_STATIC_INIT("ip_port"), select_ip_port, DIVERSION | SEL_RCV | SEL_IP_PORT},
372
-	{ select_rcv, SEL_PARAM_STR, STR_STATIC_INIT("proto_ip_port"), select_ip_port, DIVERSION | SEL_RCV | SEL_PROTO | SEL_IP_PORT},
373
-
374
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("call_id"), select_call_id, 0},
375
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("expires"), select_expires, 0},
376
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("max_forwards"), select_max_forwards, 0},
377
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("content_type"), select_content_type, 0},
378
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("content_length"), select_content_length, 0},
379
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("subject"), select_subject, 0},
380
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("organization"), select_organization, 0},
381
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("priority"), select_priority, 0},
382
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("session_expires"), select_session_expires, 0},
383
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("min_se"), select_min_se, 0},
384
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("user_agent"), select_user_agent, 0},
385
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("sip_if_match"), select_sip_if_match, 0},
386
-
387
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("sys"), select_sys, SEL_PARAM_EXPECTED},
388
-	{ select_sys, SEL_PARAM_STR, STR_STATIC_INIT("pid"), select_sys_pid, 0},
389
-	{ select_sys, SEL_PARAM_STR, STR_STATIC_INIT("unique"), select_sys_unique, 0},
390
-	{ select_sys, SEL_PARAM_STR, STR_STATIC_INIT("now"), select_sys_now, 0},
391
-	{ select_sys_now, SEL_PARAM_STR, STR_STATIC_INIT("local"), select_sys_now_fmt, OPTIONAL | CONSUME_NEXT_STR | DIVERSION | SEL_NOW_LOCAL},
392
-	{ select_sys_now, SEL_PARAM_STR, STR_STATIC_INIT("gmt"), select_sys_now_fmt, OPTIONAL | CONSUME_NEXT_STR | DIVERSION | SEL_NOW_GMT},
393
-	{ select_sys_now, SEL_PARAM_STR, STR_STATIC_INIT("utc"), select_sys_now_fmt, OPTIONAL | CONSUME_NEXT_STR | DIVERSION | SEL_NOW_GMT},
394
-	{ select_sys, SEL_PARAM_STR, STR_STATIC_INIT("server_id"), select_sys_server_id, 0},
395
-
396
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("branch"), select_branch, SEL_PARAM_EXPECTED},
397
-	{ select_branch, SEL_PARAM_STR, STR_STATIC_INIT("count"), select_branch_count, 0},
398
-	{ select_branch, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_branch_uri, OPTIONAL | CONSUME_NEXT_INT | DIVERSION | SEL_BRANCH_URI },
399
-	{ select_branch, SEL_PARAM_STR, STR_STATIC_INIT("dst_uri"), select_branch_dst_uri, OPTIONAL | CONSUME_NEXT_INT | DIVERSION | SEL_BRANCH_DST_URI},
400
-	{ select_branch_uri, SEL_PARAM_STR, STR_NULL, select_any_uri, NESTED},
401
-	{ select_branch_dst_uri, SEL_PARAM_STR, STR_NULL, select_any_uri, NESTED},
402
-	{ select_branch, SEL_PARAM_STR, STR_STATIC_INIT("uriq"), select_branch_uriq, OPTIONAL | CONSUME_NEXT_INT | DIVERSION | SEL_BRANCH_URI | SEL_BRANCH_Q},
403
-	{ select_branch_uriq, SEL_PARAM_STR, STR_NULL, select_any_nameaddr, NESTED},
404
-	{ select_branch, SEL_PARAM_STR, STR_STATIC_INIT("q"), select_branch_q, OPTIONAL | CONSUME_NEXT_INT | DIVERSION | SEL_BRANCH_Q},
405
-
406
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("date"), select_date, 0},
407
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("identity"), select_identity, 0},
408
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("identity_info"), select_identity_info, 0},
409
-
410
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("cfg_get"), select_cfg_var1, SEL_PARAM_EXPECTED | CONSUME_NEXT_STR},
411
-	{ select_cfg_var1, SEL_PARAM_STR, STR_NULL, select_cfg_var, FIXUP_CALL },
412
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("cfg_selected"), cfg_selected_inst, CONSUME_NEXT_STR | FIXUP_CALL },
413
-
414
-	{ select_cfg_var, SEL_PARAM_STR, STR_STATIC_INIT("nameaddr"), select_any_nameaddr, NESTED | CONSUME_NEXT_STR},
415
-	{ select_cfg_var, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_any_uri, NESTED | CONSUME_NEXT_STR},
416
-	{ select_cfg_var, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_anyheader_params, NESTED},
417
-
418
-	{ NULL, SEL_PARAM_INT, STR_NULL, NULL, 0}
419
-};
420
-
421
-static select_table_t select_core_table = {select_core, NULL};
422
-
423
-#endif // _SELECT_CORE_H
Browse code

Core Update of doxygen, removal of history, changing "ser" to "kamailio"

Olle E. Johansson authored on 03/01/2015 14:03:24
Showing 1 changed files
... ...
@@ -1,21 +1,14 @@
1 1
 /*
2
- * $Id$
3
- *
4 2
  * Copyright (C) 2005-2006 iptelorg GmbH
5 3
  *
6
- * This file is part of ser, a free SIP server.
4
+ * This file is part of Kamailio, a free SIP server.
7 5
  *
8
- * ser is free software; you can redistribute it and/or modify
6
+ * Kamailio is free software; you can redistribute it and/or modify
9 7
  * it under the terms of the GNU General Public License as published by
10 8
  * the Free Software Foundation; either version 2 of the License, or
11 9
  * (at your option) any later version
12 10
  *
13
- * For a license to use the ser software under conditions
14
- * other than those described here, or to purchase support for this
15
- * software, please contact iptel.org by e-mail at the following addresses:
16
- *    info@iptel.org
17
- *
18
- * ser is distributed in the hope that it will be useful,
11
+ * Kamailio is distributed in the hope that it will be useful,
19 12
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 13
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 14
  * GNU General Public License for more details.
... ...
@@ -24,13 +17,16 @@
24 17
  * along with this program; if not, write to the Free Software 
25 18
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
26 19
  *
27
- * History:
28
- * --------
29
- *  2005-12-19  select framework, basic core functions (mma)
30
- *  2006-01-19  multiple nested calls, IS_ALIAS -> NESTED flag renamed (mma)
31
- *  2007-01-26  date, identity, identity_info support added (gergo)
32 20
  */
33 21
 
22
+/*!
23
+* \file
24
+* \brief Kamailio core :: Select framework, basic core functions
25
+* \author mma
26
+* \ingroup core
27
+* Module: \ref core
28
+*/
29
+
34 30
  
35 31
 #ifndef _SELECT_CORE_H
36 32
 #define _SELECT_CORE_H
Browse code

all: updated FSF address in GPL text

Anthony Messina authored on 04/07/2014 09:36:37 • Daniel-Constantin Mierla committed on 04/07/2014 09:37:36
Showing 1 changed files
... ...
@@ -22,7 +22,7 @@
22 22
  *
23 23
  * You should have received a copy of the GNU General Public License 
24 24
  * along with this program; if not, write to the Free Software 
25
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
25
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
26 26
  *
27 27
  * History:
28 28
  * --------
Browse code

cfg framework: @cfg_get supports nested calls

@cfg_get.<group>.<variable> makes use of the already implemented
nested select functions to parse the returned value. The following
nested calls are supported:

- @cfg.get.<group>.<variable>.nameaddr...
- @cfg.get.<group>.<variable>.uri...
- @cfg.get.<group>.<variable>.params...

Credits go to Tomas Mandys

Miklos Tirpak authored on 31/01/2011 16:36:59
Showing 1 changed files
... ...
@@ -215,6 +215,7 @@ SELECT_F(select_identity)
215 215
 SELECT_F(select_identity_info)
216 216
 
217 217
 SELECT_F(select_cfg_var)
218
+SELECT_F(select_cfg_var1)
218 219
 SELECT_F(cfg_selected_inst)
219 220
 
220 221
 static select_row_t select_core[] = {
... ...
@@ -410,9 +411,14 @@ static select_row_t select_core[] = {
410 411
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("identity"), select_identity, 0},
411 412
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("identity_info"), select_identity_info, 0},
412 413
 
413
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("cfg_get"), select_cfg_var, CONSUME_ALL | FIXUP_CALL },
414
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("cfg_get"), select_cfg_var1, SEL_PARAM_EXPECTED | CONSUME_NEXT_STR},
415
+	{ select_cfg_var1, SEL_PARAM_STR, STR_NULL, select_cfg_var, FIXUP_CALL },
414 416
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("cfg_selected"), cfg_selected_inst, CONSUME_NEXT_STR | FIXUP_CALL },
415 417
 
418
+	{ select_cfg_var, SEL_PARAM_STR, STR_STATIC_INIT("nameaddr"), select_any_nameaddr, NESTED | CONSUME_NEXT_STR},
419
+	{ select_cfg_var, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_any_uri, NESTED | CONSUME_NEXT_STR},
420
+	{ select_cfg_var, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_anyheader_params, NESTED},
421
+
416 422
 	{ NULL, SEL_PARAM_INT, STR_NULL, NULL, 0}
417 423
 };
418 424
 
Browse code

cfg framework: @cfg_selected.group added

@cfg_selected.<group_name> returns the selected instance id of the
specified group. If no group instance is selected, i.e. the default
is used, then empty string is returned.

Miklos Tirpak authored on 31/01/2011 11:45:57
Showing 1 changed files
... ...
@@ -215,6 +215,7 @@ SELECT_F(select_identity)
215 215
 SELECT_F(select_identity_info)
216 216
 
217 217
 SELECT_F(select_cfg_var)
218
+SELECT_F(cfg_selected_inst)
218 219
 
219 220
 static select_row_t select_core[] = {
220 221
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("ruri"), select_ruri, 0}, /* not the same as request.uri because it is involved by new_uri */
... ...
@@ -410,6 +411,7 @@ static select_row_t select_core[] = {
410 411
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("identity_info"), select_identity_info, 0},
411 412
 
412 413
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("cfg_get"), select_cfg_var, CONSUME_ALL | FIXUP_CALL },
414
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("cfg_selected"), cfg_selected_inst, CONSUME_NEXT_STR | FIXUP_CALL },
413 415
 
414 416
 	{ NULL, SEL_PARAM_INT, STR_NULL, NULL, 0}
415 417
 };
Browse code

Merge commit 'origin/ser_core_cvs'

* commit 'origin/ser_core_cvs': (22 commits)
sctp: sctp_max_assocs support from the script
sctp: core.sctp_options shows now also sctp_max_assocs
sctp: max_assocs options
sctp: sctp_assoc_tracking support from the script
sctp: core.sctp_options shows now also sctp_assoc_tracking
sctp: assoc_tracking option
sctp: SCTP_PEER_ADDR_PARAMS fix for older kernels
sctp: assoc_reuse option
core: cfg vars for the new sctp options
core: sctp_options rpc updated
sctp: more config variables
tcp: remove unused var. decls
dns: fix missing out-of-memory check
- @next_hop.src_ip: source ip of outgoing message
sctp: retransmission options
sctp: sctp autoclose can now be changed at runtime
sctp: enable runtime changing for some of the cfg vars
tcp: minor fix: TCP_EV_IDLE_CONN_CLOSED
tcp: minor fix: TCP_EV_CONNECT_RST() not always called
sctp: compatibility with older linux kernels
...

Andrei Pelinescu-Onciul authored on 26/06/2009 18:25:09
Showing 0 changed files
Browse code

- @next_hop.src_ip: source ip of outgoing message

Tomas Mandys authored on 02/06/2009 20:46:05
Showing 1 changed files
... ...
@@ -86,6 +86,7 @@ enum {
86 86
 SELECT_F(select_ruri)
87 87
 SELECT_F(select_dst_uri)
88 88
 SELECT_F(select_next_hop)
89
+SELECT_F(select_next_hop_src_ip)
89 90
 SELECT_F(select_from)
90 91
 SELECT_F(select_from_uri)
91 92
 SELECT_F(select_from_tag)
... ...
@@ -221,6 +222,7 @@ static select_row_t select_core[] = {
221 222
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("dst_uri"), select_dst_uri, 0},
222 223
 	{ select_dst_uri, SEL_PARAM_STR, STR_NULL, select_any_uri, NESTED},
223 224
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("next_hop"), select_next_hop, 0},
225
+	{ select_next_hop, SEL_PARAM_STR, STR_STATIC_INIT("src_ip"), select_next_hop_src_ip, 0},
224 226
 	{ select_next_hop, SEL_PARAM_STR, STR_NULL, select_any_uri, NESTED},
225 227
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("from"), select_from, 0},
226 228
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("f"), select_from, 0},
Browse code

@ruri.rn_user is introduced.

- The select call returns the value of "rn" parameter if exists, otherwise the user name of the URI. Visual separators are removed from
the user name if needed, and they are always removed from the "rn" parameter value.
- Nested function call, it works with any URI.

Miklos Tirpak authored on 13/05/2009 14:59:39
Showing 1 changed files
... ...
@@ -153,6 +153,7 @@ SELECT_F(select_any_params)
153 153
 SELECT_F(select_any_uri)
154 154
 SELECT_F(select_uri_type)
155 155
 SELECT_F(select_uri_user)
156
+SELECT_F(select_uri_rn_user)
156 157
 SELECT_F(select_uri_pwd)
157 158
 SELECT_F(select_uri_host)
158 159
 SELECT_F(select_uri_port)
... ...
@@ -278,6 +279,7 @@ static select_row_t select_core[] = {
278 279
 	{ select_rr_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
279 280
 	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("type"), select_uri_type, 0},
280 281
 	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("user"), select_uri_user, 0},
282
+	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("rn_user"), select_uri_rn_user, 0},
281 283
 	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("pwd"), select_uri_pwd, 0},
282 284
 	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("host"), select_uri_host, 0},
283 285
 	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("port"), select_uri_port, 0},
Browse code

Rename Contact parameter select 'method' to 'methods'

According RFC3840 the correct name of the parameter is 'methods',
not 'method'.

Reported by Daniel-Constantin Mierla

Jan Janak authored on 19/03/2009 15:15:51
Showing 1 changed files
... ...
@@ -41,7 +41,7 @@
41 41
 
42 42
 enum {
43 43
 	SEL_PARAM_TAG, 
44
-	SEL_PARAM_Q, SEL_PARAM_EXPIRES, SEL_PARAM_METHOD, SEL_PARAM_RECEIVED, SEL_PARAM_INSTANCE, 
44
+	SEL_PARAM_Q, SEL_PARAM_EXPIRES, SEL_PARAM_METHODS, SEL_PARAM_RECEIVED, SEL_PARAM_INSTANCE, 
45 45
 	SEL_PARAM_BRANCH, SEL_PARAM_RPORT, SEL_PARAM_I, SEL_PARAM_ALIAS
46 46
        };
47 47
 
... ...
@@ -251,7 +251,7 @@ static select_row_t select_core[] = {
251 251
 	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("name"), select_contact_name, 0}, 
252 252
 	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("q"), select_contact_params_spec, DIVERSION | SEL_PARAM_Q}, 
253 253
 	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("expires"), select_contact_params_spec, DIVERSION | SEL_PARAM_EXPIRES}, 
254
-	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("method"), select_contact_params_spec, DIVERSION | SEL_PARAM_METHOD}, 
254
+	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("methods"), select_contact_params_spec, DIVERSION | SEL_PARAM_METHODS}, 
255 255
 	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("received"), select_contact_params_spec, DIVERSION | SEL_PARAM_RECEIVED}, 
256 256
 	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("instance"), select_contact_params_spec, DIVERSION | SEL_PARAM_INSTANCE}, 	
257 257
 	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_contact_params, CONSUME_NEXT_STR},
Browse code

@msg.body.sdp.line.line_name select call is implemented.

The select call returns the first value of line_name from the
SDP body, for example @msg.body.sdp.line.o,
or @msg.body.sdp.line["o="].

Miklos Tirpak authored on 22/05/2008 17:04:17
Showing 1 changed files
... ...
@@ -130,6 +130,7 @@ SELECT_F(select_msg_id)
130 130
 SELECT_F(select_msg_id_hex)
131 131
 SELECT_F(select_msg_body)
132 132
 SELECT_F(select_msg_body_sdp)
133
+SELECT_F(select_sdp_line)
133 134
 SELECT_F(select_msg_header)
134 135
 SELECT_F(select_anyheader)
135 136
 SELECT_F(select_anyheader_params)
... ...
@@ -318,6 +319,7 @@ static select_row_t select_core[] = {
318 319
 	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("body"), select_msg_body, 0},
319 320
 	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("content"), select_msg_body, 0},
320 321
 	{ select_msg_body, SEL_PARAM_STR, STR_STATIC_INIT("sdp"), select_msg_body_sdp, 0},
322
+	{ select_msg_body_sdp, SEL_PARAM_STR, STR_STATIC_INIT("line"), select_sdp_line, CONSUME_NEXT_STR | FIXUP_CALL},
321 323
 	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("request"), select_msg_request, 0},
322 324
 	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("req"), select_msg_request, 0},
323 325
 	{ select_msg_request, SEL_PARAM_STR, STR_STATIC_INIT("method"), select_msg_request_method, 0},
Browse code

@msg.body.sdp select call is introduced, that returns the sdp part of the message body.

Miklos Tirpak authored on 22/05/2008 16:15:07
Showing 1 changed files
... ...
@@ -129,6 +129,7 @@ SELECT_F(select_msg_len)
129 129
 SELECT_F(select_msg_id)
130 130
 SELECT_F(select_msg_id_hex)
131 131
 SELECT_F(select_msg_body)
132
+SELECT_F(select_msg_body_sdp)
132 133
 SELECT_F(select_msg_header)
133 134
 SELECT_F(select_anyheader)
134 135
 SELECT_F(select_anyheader_params)
... ...
@@ -316,6 +317,7 @@ static select_row_t select_core[] = {
316 317
 	{ select_anyheader_params, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_any_params, CONSUME_NEXT_STR},
317 318
 	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("body"), select_msg_body, 0},
318 319
 	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("content"), select_msg_body, 0},
320
+	{ select_msg_body, SEL_PARAM_STR, STR_STATIC_INIT("sdp"), select_msg_body_sdp, 0},
319 321
 	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("request"), select_msg_request, 0},
320 322
 	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("req"), select_msg_request, 0},
321 323
 	{ select_msg_request, SEL_PARAM_STR, STR_STATIC_INIT("method"), select_msg_request_method, 0},
Browse code

- added @sys.server_id select, this select will obtain the ID of the SER server.

Jan Janak authored on 16/04/2008 11:19:05
Showing 1 changed files
... ...
@@ -194,6 +194,7 @@ SELECT_F(select_sip_if_match)
194 194
 
195 195
 SELECT_F(select_sys)
196 196
 SELECT_F(select_sys_pid)
197
+SELECT_F(select_sys_server_id)
197 198
 SELECT_F(select_sys_unique)
198 199
 SELECT_F(select_sys_now)
199 200
 SELECT_F(select_sys_now_fmt)
... ...
@@ -384,6 +385,7 @@ static select_row_t select_core[] = {
384 385
 	{ select_sys_now, SEL_PARAM_STR, STR_STATIC_INIT("local"), select_sys_now_fmt, OPTIONAL | CONSUME_NEXT_STR | DIVERSION | SEL_NOW_LOCAL},
385 386
 	{ select_sys_now, SEL_PARAM_STR, STR_STATIC_INIT("gmt"), select_sys_now_fmt, OPTIONAL | CONSUME_NEXT_STR | DIVERSION | SEL_NOW_GMT},
386 387
 	{ select_sys_now, SEL_PARAM_STR, STR_STATIC_INIT("utc"), select_sys_now_fmt, OPTIONAL | CONSUME_NEXT_STR | DIVERSION | SEL_NOW_GMT},
388
+	{ select_sys, SEL_PARAM_STR, STR_STATIC_INIT("server_id"), select_sys_server_id, 0},
387 389
 
388 390
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("branch"), select_branch, SEL_PARAM_EXPECTED},
389 391
 	{ select_branch, SEL_PARAM_STR, STR_STATIC_INIT("count"), select_branch_count, 0},
Browse code

- adding any_uri.transport select NOTE: if there is no transport parameter in the uri, it returns the default transport based on the uri type (sip/sips).

Michal Matyska authored on 15/02/2008 17:37:24
Showing 1 changed files
... ...
@@ -156,6 +156,7 @@ SELECT_F(select_uri_host)
156 156
 SELECT_F(select_uri_port)
157 157
 SELECT_F(select_uri_hostport)
158 158
 SELECT_F(select_uri_params)
159
+SELECT_F(select_uri_proto)
159 160
 
160 161
 SELECT_F(select_event)
161 162
 
... ...
@@ -279,6 +280,7 @@ static select_row_t select_core[] = {
279 280
 	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("port"), select_uri_port, 0},
280 281
 	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_uri_params, CONSUME_NEXT_STR | OPTIONAL | FIXUP_CALL },
281 282
 	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("hostport"), select_uri_hostport, 0},
283
+	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("transport"), select_uri_proto, 0},
282 284
 
283 285
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("event"), select_event, 0},
284 286
 
Browse code

configuration values can be retrieved in the script via selects: @cfg_get.<group_name>.<var_name>

Miklos Tirpak authored on 11/01/2008 16:38:52
Showing 1 changed files
... ...
@@ -208,6 +208,8 @@ SELECT_F(select_date)
208 208
 SELECT_F(select_identity)
209 209
 SELECT_F(select_identity_info)
210 210
 
211
+SELECT_F(select_cfg_var)
212
+
211 213
 static select_row_t select_core[] = {
212 214
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("ruri"), select_ruri, 0}, /* not the same as request.uri because it is involved by new_uri */
213 215
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("request_uri"), select_ruri, 0},
... ...
@@ -395,6 +397,8 @@ static select_row_t select_core[] = {
395 397
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("identity"), select_identity, 0},
396 398
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("identity_info"), select_identity_info, 0},
397 399
 
400
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("cfg_get"), select_cfg_var, CONSUME_ALL | FIXUP_CALL },
401
+
398 402
 	{ NULL, SEL_PARAM_INT, STR_NULL, NULL, 0}
399 403
 };
400 404
 
Browse code

fixes SER-304

allow use AVPs and SELECTs as the parameter for realm, e.g.
@authorization["$fd.digest_realm"].uri or
@proxy_authorization["@ruri.domain"].user

Michal Matyska authored on 06/09/2007 12:46:21
Showing 1 changed files
... ...
@@ -330,8 +330,8 @@ static select_row_t select_core[] = {
330 330
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("code"), select_msg_response_status, 0},
331 331
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("reason"), select_msg_response_reason, 0},
332 332
 
333
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("proxy_authorization"), select_auth, CONSUME_NEXT_STR | DIVERSION | SEL_AUTH_PROXY},
334
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("authorization"), select_auth, CONSUME_NEXT_STR | DIVERSION | SEL_AUTH_WWW}, 
333
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("proxy_authorization"), select_auth, CONSUME_NEXT_STR | DIVERSION | SEL_AUTH_PROXY | FIXUP_CALL},
334
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("authorization"), select_auth, CONSUME_NEXT_STR | DIVERSION | SEL_AUTH_WWW | FIXUP_CALL}, 
335 335
 	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("username"), select_auth_username, DIVERSION | SEL_AUTH_USERNAME},
336 336
 	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("realm"), select_auth_param, DIVERSION | SEL_AUTH_REALM},
337 337
 	{ select_auth, SEL_PARAM_STR, STR_STATIC_INIT("nonce"), select_auth_param, DIVERSION | SEL_AUTH_NONCE},
Browse code

Date, Identity, Identity-info HF support added

Gergely Kovacs authored on 08/03/2007 14:56:10
Showing 1 changed files
... ...
@@ -28,6 +28,7 @@
28 28
  * --------
29 29
  *  2005-12-19  select framework, basic core functions (mma)
30 30
  *  2006-01-19  multiple nested calls, IS_ALIAS -> NESTED flag renamed (mma)
31
+ *  2007-01-26  date, identity, identity_info support added (gergo)
31 32
  */
32 33
 
33 34
  
... ...
@@ -203,6 +204,10 @@ SELECT_F(select_branch_dst_uri)
203 204
 SELECT_F(select_branch_uriq)
204 205
 SELECT_F(select_branch_q)
205 206
 
207
+SELECT_F(select_date)
208
+SELECT_F(select_identity)
209
+SELECT_F(select_identity_info)
210
+
206 211
 static select_row_t select_core[] = {
207 212
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("ruri"), select_ruri, 0}, /* not the same as request.uri because it is involved by new_uri */
208 213
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("request_uri"), select_ruri, 0},
... ...
@@ -386,6 +391,10 @@ static select_row_t select_core[] = {
386 391
 	{ select_branch_uriq, SEL_PARAM_STR, STR_NULL, select_any_nameaddr, NESTED},
387 392
 	{ select_branch, SEL_PARAM_STR, STR_STATIC_INIT("q"), select_branch_q, OPTIONAL | CONSUME_NEXT_INT | DIVERSION | SEL_BRANCH_Q},
388 393
 
394
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("date"), select_date, 0},
395
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("identity"), select_identity, 0},
396
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("identity_info"), select_identity_info, 0},
397
+
389 398
 	{ NULL, SEL_PARAM_INT, STR_NULL, NULL, 0}
390 399
 };
391 400
 
Browse code

- added (uint|int|str)_to_static_buffer functions to select_buffer - fixed minor bug in struct msg_start where is not known start of first line when empty lines preceed (sip_msg.buff points before them), so added line field holding correct position of first_line, fixed usage in textops and xmlrpc modules - added new select_core selects to resolve SER-158 - added new tm module select to resolve SER-158

Tomas Mandys authored on 18/02/2007 14:05:44
Showing 1 changed files
... ...
@@ -71,7 +71,17 @@ enum {
71 71
 	SEL_IP_PORT = SEL_IP | SEL_PORT,
72 72
 };
73 73
 
74
-SELECT_F(select_method)
74
+enum {
75
+	SEL_NOW_GMT = 1,
76
+	SEL_NOW_LOCAL = 2
77
+};
78
+
79
+enum {
80
+	SEL_BRANCH_URI = 1<<0,
81
+	SEL_BRANCH_Q = 1<<1,
82
+	SEL_BRANCH_DST_URI = 1<<2
83
+};
84
+
75 85
 SELECT_F(select_ruri)
76 86
 SELECT_F(select_dst_uri)
77 87
 SELECT_F(select_next_hop)
... ...
@@ -85,6 +95,16 @@ SELECT_F(select_to_uri)
85 95
 SELECT_F(select_to_tag)
86 96
 SELECT_F(select_to_name)
87 97
 SELECT_F(select_to_params)
98
+SELECT_F(select_refer_to)
99
+SELECT_F(select_refer_to_uri)
100
+SELECT_F(select_refer_to_tag)
101
+SELECT_F(select_refer_to_name)
102
+SELECT_F(select_refer_to_params)
103
+SELECT_F(select_rpid)
104
+SELECT_F(select_rpid_uri)
105
+SELECT_F(select_rpid_tag)
106
+SELECT_F(select_rpid_name)
107
+SELECT_F(select_rpid_params)
88 108
 SELECT_F(select_contact)
89 109
 SELECT_F(select_contact_uri)
90 110
 SELECT_F(select_contact_name)
... ...
@@ -100,9 +120,26 @@ SELECT_F(select_via_comment)
100 120
 SELECT_F(select_via_params)
101 121
 SELECT_F(select_via_params_spec)
102 122
 
103
-SELECT_F(select_msgheader)
123
+SELECT_F(select_msg)
124
+SELECT_F(select_msg_first_line)
125
+SELECT_F(select_msg_flags)
126
+SELECT_F(select_msg_type)
127
+SELECT_F(select_msg_len)
128
+SELECT_F(select_msg_id)
129
+SELECT_F(select_msg_id_hex)
130
+SELECT_F(select_msg_body)
131
+SELECT_F(select_msg_header)
104 132
 SELECT_F(select_anyheader)
105 133
 SELECT_F(select_anyheader_params)
134
+SELECT_F(select_msg_request)
135
+SELECT_F(select_msg_request_method)
136
+SELECT_F(select_msg_request_uri)
137
+SELECT_F(select_msg_request_version)
138
+SELECT_F(select_msg_response)
139
+SELECT_F(select_msg_response_version)
140
+SELECT_F(select_msg_response_status)
141
+SELECT_F(select_msg_response_reason)
142
+SELECT_F(select_version)
106 143
 
107 144
 SELECT_F(select_any_nameaddr)
108 145
 SELECT_F(select_nameaddr_name)
... ...
@@ -140,9 +177,35 @@ SELECT_F(select_dst)
140 177
 SELECT_F(select_rcv)
141 178
 SELECT_F(select_ip_port)
142 179
 
180
+SELECT_F(select_call_id)
181
+SELECT_F(select_expires)
182
+SELECT_F(select_max_forwards)
183
+SELECT_F(select_content_type)
184
+SELECT_F(select_content_length)
185
+SELECT_F(select_subject)
186
+SELECT_F(select_organization)
187
+SELECT_F(select_priority)
188
+SELECT_F(select_session_expires)
189
+SELECT_F(select_min_se)
190
+SELECT_F(select_user_agent)
191
+SELECT_F(select_sip_if_match)
192
+
193
+SELECT_F(select_sys)
194
+SELECT_F(select_sys_pid)
195
+SELECT_F(select_sys_unique)
196
+SELECT_F(select_sys_now)
197
+SELECT_F(select_sys_now_fmt)
198
+
199
+SELECT_F(select_branch)
200
+SELECT_F(select_branch_count)
201
+SELECT_F(select_branch_uri)
202
+SELECT_F(select_branch_dst_uri)
203
+SELECT_F(select_branch_uriq)
204
+SELECT_F(select_branch_q)
205
+
143 206
 static select_row_t select_core[] = {
144
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("method"), select_method, 0},
145
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("ruri"), select_ruri, 0},
207
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("ruri"), select_ruri, 0}, /* not the same as request.uri because it is involved by new_uri */
208
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("request_uri"), select_ruri, 0},
146 209
 	{ select_ruri, SEL_PARAM_STR, STR_NULL, select_any_uri, NESTED},
147 210
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("dst_uri"), select_dst_uri, 0},
148 211
 	{ select_dst_uri, SEL_PARAM_STR, STR_NULL, select_any_uri, NESTED},
... ...
@@ -160,6 +223,17 @@ static select_row_t select_core[] = {
160 223
 	{ select_to, SEL_PARAM_STR, STR_STATIC_INIT("tag"), select_to_tag, 0},
161 224
 	{ select_to, SEL_PARAM_STR, STR_STATIC_INIT("name"), select_to_name, 0},
162 225
 	{ select_to, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_to_params, CONSUME_NEXT_STR},
226
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("refer_to"), select_refer_to, 0},
227
+	{ select_refer_to, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_refer_to_uri, 0},
228
+	{ select_refer_to, SEL_PARAM_STR, STR_STATIC_INIT("tag"), select_refer_to_tag, 0},
229
+	{ select_refer_to, SEL_PARAM_STR, STR_STATIC_INIT("name"), select_refer_to_name, 0},
230
+	{ select_refer_to, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_refer_to_params, CONSUME_NEXT_STR},
231
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("remote_party_id"), select_rpid, 0},
232
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("rpid"), select_rpid, 0},
233
+	{ select_rpid, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_rpid_uri, 0},
234
+	{ select_rpid, SEL_PARAM_STR, STR_STATIC_INIT("tag"), select_rpid_tag, 0},
235
+	{ select_rpid, SEL_PARAM_STR, STR_STATIC_INIT("name"), select_rpid_name, 0},
236
+	{ select_rpid, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_rpid_params, CONSUME_NEXT_STR},
163 237
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("contact"), select_contact, 0},
164 238
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("m"), select_contact, 0},
165 239
 	{ select_contact, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_contact_uri, 0},
... ...
@@ -187,6 +261,8 @@ static select_row_t select_core[] = {
187 261
 	
188 262
 	{ select_from_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
189 263
 	{ select_to_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
264
+	{ select_refer_to_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
265
+	{ select_rpid_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
190 266
 	{ select_contact_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
191 267
 	{ select_rr_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
192 268
 	{ select_any_uri, SEL_PARAM_STR, STR_STATIC_INIT("type"), select_uri_type, 0},
... ...
@@ -214,11 +290,40 @@ static select_row_t select_core[] = {
214 290
 	{ select_any_nameaddr, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_nameaddr_params, OPTIONAL | CONSUME_NEXT_STR},
215 291
 	{ select_nameaddr_uri, SEL_PARAM_INT, STR_NULL, select_any_uri, NESTED},
216 292
 
217
-	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("msg"), select_msgheader, SEL_PARAM_EXPECTED},
218
-	{ select_msgheader, SEL_PARAM_STR, STR_NULL, select_anyheader, OPTIONAL | CONSUME_NEXT_INT | FIXUP_CALL},
293
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("msg"), select_msg, 0},
294
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("message"), select_msg, 0},
295
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("first_line"), select_msg_first_line, 0},
296
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("flags"), select_msg_flags, 0},
297
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("len"), select_msg_len, 0},
298
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("id"), select_msg_id, 0},
299
+	{ select_msg_id, SEL_PARAM_STR, STR_STATIC_INIT("hex"), select_msg_id_hex, 0},
300
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("type"), select_msg_type, 0},
301
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("header"), select_msg_header, 0},
302
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("h"), select_msg_header, 0},
303
+	{ select_msg_header, SEL_PARAM_STR, STR_NULL, select_anyheader, OPTIONAL | CONSUME_NEXT_INT | FIXUP_CALL},
219 304
 	{ select_anyheader, SEL_PARAM_STR, STR_STATIC_INIT("nameaddr"), select_any_nameaddr, NESTED | CONSUME_NEXT_STR},
220 305
 	{ select_anyheader, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_anyheader_params, NESTED},
221 306
 	{ select_anyheader_params, SEL_PARAM_STR, STR_STATIC_INIT("params"), select_any_params, CONSUME_NEXT_STR},
307
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("body"), select_msg_body, 0},
308
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("content"), select_msg_body, 0},
309
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("request"), select_msg_request, 0},
310
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("req"), select_msg_request, 0},
311
+	{ select_msg_request, SEL_PARAM_STR, STR_STATIC_INIT("method"), select_msg_request_method, 0},
312
+	{ select_msg_request, SEL_PARAM_STR, STR_STATIC_INIT("uri"), select_msg_request_uri, 0},
313
+	{ select_msg_request_uri, SEL_PARAM_STR, STR_NULL, select_any_uri, NESTED},
314
+	{ select_msg_request, SEL_PARAM_STR, STR_STATIC_INIT("version"), select_msg_request_version, 0},
315
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("response"), select_msg_response, 0},
316
+	{ select_msg, SEL_PARAM_STR, STR_STATIC_INIT("res"), select_msg_response, 0},
317
+	{ select_msg_response, SEL_PARAM_STR, STR_STATIC_INIT("version"), select_msg_response_version, 0},
318
+	{ select_msg_response, SEL_PARAM_STR, STR_STATIC_INIT("status"), select_msg_response_status, 0},
319
+	{ select_msg_response, SEL_PARAM_STR, STR_STATIC_INIT("code"), select_msg_response_status, 0},
320
+	{ select_msg_response, SEL_PARAM_STR, STR_STATIC_INIT("reason"), select_msg_response_reason, 0},
321
+	/*short aliases*/
322
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("method"), select_msg_request_method, 0},
323
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("version"), select_version, 0},
324
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("status"), select_msg_response_status, 0},
325
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("code"), select_msg_response_status, 0},
326
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("reason"), select_msg_response_reason, 0},
222 327
 
223 328
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("proxy_authorization"), select_auth, CONSUME_NEXT_STR | DIVERSION | SEL_AUTH_PROXY},
224 329
 	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("authorization"), select_auth, CONSUME_NEXT_STR | DIVERSION | SEL_AUTH_WWW}, 
... ...
@@ -250,6 +355,37 @@ static select_row_t select_core[] = {
250 355
 	{ select_rcv, SEL_PARAM_STR, STR_STATIC_INIT("ip_port"), select_ip_port, DIVERSION | SEL_RCV | SEL_IP_PORT},
251 356
 	{ select_rcv, SEL_PARAM_STR, STR_STATIC_INIT("proto_ip_port"), select_ip_port, DIVERSION | SEL_RCV | SEL_PROTO | SEL_IP_PORT},
252 357
 
358
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("call_id"), select_call_id, 0},
359
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("expires"), select_expires, 0},
360
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("max_forwards"), select_max_forwards, 0},
361
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("content_type"), select_content_type, 0},
362
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("content_length"), select_content_length, 0},
363
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("subject"), select_subject, 0},
364
+	{ NULL, SEL_PARAM_STR, STR_STATIC_INIT("organization"), select_organization, 0},