00001 /* 00002 * $Id$ 00003 * 00004 * Contact data type 00005 * 00006 * Copyright (C) 2001-2003 FhG Fokus 00007 * 00008 * This file is part of ser, a free SIP server. 00009 * 00010 * ser is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2 of the License, or 00013 * (at your option) any later version 00014 * 00015 * For a license to use the ser software under conditions 00016 * other than those described here, or to purchase support for this 00017 * software, please contact iptel.org by e-mail at the following addresses: 00018 * info@iptel.org 00019 * 00020 * ser is distributed in the hope that it will be useful, 00021 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00022 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00023 * GNU General Public License for more details. 00024 * 00025 * You should have received a copy of the GNU General Public License 00026 * along with this program; if not, write to the Free Software 00027 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00028 * 00029 * History: 00030 * ------- 00031 * 2003-030-25 Adapted to use new parameter parser (janakj) 00032 */ 00033 00034 00035 #ifndef CONTACT_H 00036 #define CONTACT_H 00037 00038 #include <stdio.h> 00039 #include "../../str.h" 00040 #include "../parse_param.h" 00041 00042 00043 /* 00044 * Structure representing a Contact HF body 00045 */ 00046 typedef struct contact { 00047 str name; /* Name part */ 00048 str uri; /* contact uri */ 00049 param_t* q; /* q parameter hook */ 00050 param_t* expires; /* expires parameter hook */ 00051 param_t* methods; /* methods parameter hook */ 00052 param_t* received; /* received parameter hook */ 00053 param_t* instance; /* sip.instance parameter hook */ 00054 param_t* reg_id; /* reg-id parameter hook */ 00055 param_t* params; /* List of all parameters */ 00056 int len; /* Total length of the element */ 00057 struct contact* next; /* Next contact in the list */ 00058 } contact_t; 00059 00060 00061 /* 00062 * Parse contacts in a Contact HF 00063 */ 00064 int parse_contacts(str* _s, contact_t** _c); 00065 00066 00067 /* 00068 * Free list of contacts 00069 * _c is head of the list 00070 */ 00071 void free_contacts(contact_t** _c); 00072 00073 00074 /* 00075 * Print list of contacts, just for debugging 00076 */ 00077 void print_contacts(FILE* _o, contact_t* _c); 00078 00079 00080 #endif /* CONTACT_H */
1.7.1