The possibility to set independent destination URIs for branches.
[sip-router] / dset.h
1 /*
2  * $Id$
3  *
4  * Copyright (C) 2001-2004 FhG FOKUS
5  *
6  * This file is part of ser, a free SIP server.
7  *
8  * ser 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  * 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,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License 
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
26  */
27
28 #ifndef _DSET_H
29 #define _DSET_H
30
31 #include "qvalue.h"
32
33 struct sip_msg;
34
35 /* 
36  * Add a new branch to current transaction 
37  */
38 int append_branch(struct sip_msg* msg, char* uri, int uri_len, char* dst_uri, int dst_uri_len, qvalue_t q);
39
40
41 /* 
42  * Iterate through the list of transaction branches 
43  */
44 void init_branch_iterator(void);
45
46
47 /*
48  * Get the next branch in the current transaction
49  */
50 char* next_branch(int* len, qvalue_t* q, char** dst_uri, int* dst_len);
51
52
53 /*
54  * Empty the array of branches
55  */
56 void clear_branches(void);
57
58
59 /*
60  * Create a Contact header field from the
61  * list of current branches
62  */
63 char* print_dset(struct sip_msg* msg, int* len);
64
65
66 /* 
67  * Set the q value of the Request-URI
68  */
69 void set_ruri_q(qvalue_t q);
70
71
72 /* 
73  * Get the q value of the Request-URI
74  */
75 qvalue_t get_ruri_q(void);
76
77 #endif /* _DSET_H */