modules/ims_qos: added patch for flow-description bug when request originates from...
[sip-router] / src / core / parser / contact / contact.h
1 /*
2  * Contact data type
3  *
4  * Copyright (C) 2001-2003 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
26  *
27  * History:
28  * -------
29  *  2003-030-25 Adapted to use new parameter parser (janakj)
30  */
31
32
33 #ifndef CONTACT_H
34 #define CONTACT_H
35
36 #include <stdio.h>
37 #include "../../str.h"
38 #include "../parse_param.h"
39
40
41 /*
42  * Structure representing a Contact HF body
43  */
44 typedef struct contact {
45         str name;               /* Name part */
46         str uri;                /* contact uri */
47         param_t* q;             /* q parameter hook */
48         param_t* expires;       /* expires parameter hook */
49         param_t* methods;       /* methods parameter hook */
50         param_t* received;      /* received parameter hook */
51         param_t* instance;      /* sip.instance parameter hook */
52         param_t* reg_id;        /* reg-id parameter hook */
53         param_t* params;        /* List of all parameters */
54         int len;                /* Total length of the element */
55         struct contact* next; /* Next contact in the list */
56 } contact_t;
57
58
59 /*
60  * Parse contacts in a Contact HF
61  */
62 int parse_contacts(str* _s, contact_t** _c);
63
64
65 /*
66  * Free list of contacts
67  * _c is head of the list
68  */
69 void free_contacts(contact_t** _c);
70
71
72 /*
73  * Print list of contacts, just for debugging
74  */
75 void print_contacts(FILE* _o, contact_t* _c);
76
77
78 #endif /* CONTACT_H */