all: updated FSF address in GPL text
[sip-router] / modules / domainpolicy / domainpolicy.h
1 /*
2  * domainpolicy.h v 0.1 2002/12/27
3  *
4  * Copyright (C) 2002-2003 Juha Heinanen
5  *
6  * This file is part of Kamailio, a free SIP server.
7  *
8  * Kamailio is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version
12  *
13  * Kamailio is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License 
19  * along with this program; if not, write to the Free Software 
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
21  */
22
23
24 /*!
25  * \file
26  * \brief Header file for domainpolicy table relates functions
27  */
28
29
30 #ifndef DOMAINPOLICY_H
31 #define DOMAINPOLICY_H
32                 
33
34 #include "../../parser/msg_parser.h"
35
36 /*! maximal length of a domain string */
37 #define MAX_DOMAIN_SIZE 512
38
39 /*! how many indirect DDDS naptr are we going to follow? */
40 #define MAX_DDDS_RECURSIONS 5
41
42
43 /*!
44  * return codes of dp_can_connect
45  * negative values means false, 0 stops execution
46  * and discards the SIP request
47  */
48 #define DP_DDDS_RET_DNSERROR -2
49 #define DP_DDDS_RET_NEGATIVE -1  
50 #define DP_DDDS_RET_POSITIVE 1
51 #define DP_DDDS_RET_NOTFOUND 2
52
53
54 /*!
55  * \brief Check if host in Request URI has DP-DDDS NAPTRs and if we can connect to them
56  * \param _msg SIP message
57  * \param _s1 unused
58  * \param _s2 unused
59  * \return negative on failure, positive on success
60  */
61 int dp_can_connect(struct sip_msg* _msg, char* _s1, char* _s2);
62
63
64 /*!
65  * \brief Apply DP-DDDS policy to current SIP message
66  *
67  * Apply DP-DDDS policy to current SIP message. This means
68  * build a new destination URI from the policy AVP and export it
69  * as AVP. Then in kamailio.cfg this new target AVP can be pushed
70  * into the destination URI $duri
71  * \param _msg SIP message
72  * \param _s1 unused
73  * \param _s2 unused
74  * \return negative on failure, positive on succes
75  */
76 int dp_apply_policy(struct sip_msg* _msg, char* _s1, char* _s2);
77
78
79 /*!
80  * \brief Bind the database interface
81  * \param db_url database url
82  * \return -1 on failure, 0 on success
83  */
84 int domainpolicy_db_bind(const str* db_url);
85
86
87 /*!
88  * \brief Initialize the database connection
89  * \param db_url database url
90  * \return -1 on failure, 0 on success
91  */
92 int domainpolicy_db_init(const str* db_url);
93
94 /*!
95  * \brief Close the database connection
96  */
97 void domainpolicy_db_close(void);
98
99
100 /*!
101  * \brief Check the database table version
102  * \param db_url database URL
103  * \param name table name
104  * \return -1 on failure, positive database version on success
105  */
106 int domainpolicy_db_ver(const str* db_url, const str* name);
107
108
109 #endif