all: updated FSF address in GPL text
[sip-router] / modules / rr / record.h
1 /*
2  * $Id$
3  *
4  * Copyright (C) 2001-2003 FhG Fokus
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  * \file
25  * \brief Route & Record-Route module
26  * \ingroup rr
27  */
28
29 #ifndef RECORD_H
30 #define RECORD_H
31
32 #include "../../parser/msg_parser.h"
33 #include "../../str.h"
34 #include "../../pvar.h"
35
36 /*!
37  * \brief Insert a new Record-Route header field with lr parameter
38  *
39  * Insert a new Record-Route header field with lr parameter, and also 2nd one if it is
40  * enabled and the realm changed so the 2nd record-route header will be necessary.
41  * \param _m SIP message
42  * \param params RR parameter
43  * \return 0 on success, negative on failure
44  */
45 int record_route(struct sip_msg* _m, str* _param);
46
47
48 /*!
49  * \brief Insert manually created Record-Route header
50  *
51  * Insert manually created Record-Route header, no checks, no restrictions,
52  * always adds lr parameter, only fromtag is added automatically when requested.
53  * Allocates new private memory for this.
54  * \param _m SIP message
55  * \param _data manually created RR header
56  * \return 1 on success, negative on failure
57  */
58 int record_route_preset(struct sip_msg* _m, str* _data);
59
60
61 /*!
62  * \brief Insert manually created Record-Route header
63  *
64  * Insert manually created Record-Route header, no checks, no restrictions,
65  * always adds lr parameter, fromtag is added automatically when requested,
66  * Allows addition of rr parameters using add_rr_param.
67  * Adds a 2nd header with the same details if the protocol changes and double
68  * rr enabled
69  * Allocates new private memory for this.
70  * \param _m SIP message
71  * \param _data manually created RR header
72  * \return 1 on success, negative on failure
73  */
74 int record_route_advertised_address(struct sip_msg* _m, str* _data);
75
76
77 /*!
78  * \brief Appends a new Record-Route parameter
79  * \param msg SIP message
80  * \param rr_param RR parameter
81  * \return 0 on success, -1 on failure
82  */
83 int add_rr_param(struct sip_msg* msg, str* rr_param);
84
85 void init_custom_user(pv_spec_t *custom_user_avp);
86
87
88 #endif /* RECORD_H */