- 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)
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 |
... | ... |
@@ -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 |
... | ... |
@@ -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 |
* -------- |
@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
... | ... |
@@ -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 |
|
@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.
... | ... |
@@ -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 |
}; |
* 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
...
... | ... |
@@ -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}, |
- 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.
... | ... |
@@ -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}, |
According RFC3840 the correct name of the parameter is 'methods',
not 'method'.
Reported by Daniel-Constantin Mierla
... | ... |
@@ -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}, |
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="].
... | ... |
@@ -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}, |
... | ... |
@@ -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}, |
... | ... |
@@ -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}, |
... | ... |
@@ -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 |
|
... | ... |
@@ -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 |
|
allow use AVPs and SELECTs as the parameter for realm, e.g.
@authorization["$fd.digest_realm"].uri or
@proxy_authorization["@ruri.domain"].user
... | ... |
@@ -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}, |
... | ... |
@@ -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 |
|
... | ... |
@@ -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}, |
|