core, lib, modules: restructured source code tree
[sip-router] / src / modules / sipcapture / hash_mode.h
1 /*
2  * Copyright (C) 2012 dragos.dinu@1and1.ro, 1&1 Internet AG
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 #ifndef HASH_MODE_H
24 #define HASH_MODE_H 1
25
26
27
28
29 /*
30  * Determines from which part of a message will be used to calculate the hash
31  * Possible values are:
32  * 
33  * hs_call_id     the content of the Call-ID header field
34  * hs_from_user   the username part of the URI in the From header field
35  * hs_to_user     the username part of the URI in the To header field
36  * hs_error       no hash specified
37 */
38 enum hash_source {
39         hs_call_id = 1,
40         hs_from_user,
41         hs_to_user,
42         hs_error
43 };
44
45
46 /*
47  * CRC32 hash function
48  * Returns an integer number between 0 and denominator - 1 based on
49  * the hash source from the msg. The hash algorithm is CRC32.
50 */
51 int hash_func (struct _sipcapture_object * sco,
52                          enum hash_source source, int denominator);
53
54 /*
55  * Gets the hash source type.
56 */
57 enum hash_source get_hash_source (const char *hash_source);
58
59 #endif