00001 /* 00002 * $Id: parse_to.h 5486 2009-01-19 12:57:09Z miconda $ 00003 * 00004 * Copyright (C) 2001-2003 Fhg Fokus 00005 * 00006 * This file is part of Kamailio, a free SIP server. 00007 * 00008 * Kamailio is free software; you can redistribute it and/or modify 00009 * it under the terms of the GNU General Public License as published by 00010 * the Free Software Foundation; either version 2 of the License, or 00011 * (at your option) any later version 00012 * 00013 * Kamailio is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU General Public License 00019 * along with this program; if not, write to the Free Software 00020 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00021 */ 00022 00023 /*! 00024 * \file 00025 * \brief To header parser 00026 * \ingroup parser 00027 */ 00028 00029 #ifndef PARSE_TO 00030 #define PARSE_TO 00031 00032 #include "../str.h" 00033 #include "msg_parser.h" 00034 00035 enum { 00036 TAG_PARAM = 400, GENERAL_PARAM 00037 }; 00038 00039 struct to_param{ 00040 int type; /*!< Type of parameter */ 00041 str name; /*!< Name of parameter */ 00042 str value; /*!< Parameter value */ 00043 struct to_param* next; /*!< Next parameter in the list */ 00044 }; 00045 00046 struct to_body{ 00047 int error; /*!< Error code */ 00048 str body; /*!< The whole header field body */ 00049 str uri; /*!< URI */ 00050 str display; /*!< Display Name */ 00051 str tag_value; /*!< Value of tag */ 00052 struct sip_uri parsed_uri; /*!< Parsed URI */ 00053 struct to_param *param_lst; /*!< Linked list of parameters */ 00054 struct to_param *last_param; /*!< Last parameter in the list */ 00055 }; 00056 00057 00058 /*! casting macro for accessing To body */ 00059 #define get_to(p_msg) ((struct to_body*)(p_msg)->to->parsed) 00060 00061 00062 /*! 00063 * To header field parser 00064 */ 00065 char* parse_to(char* buffer, char *end, struct to_body *to_b); 00066 00067 struct sip_uri *parse_to_uri(struct sip_msg *msg); 00068 00069 void free_to(struct to_body* tb); 00070 void destroy_to(struct to_body* tb); 00071 00072 #endif
1.5.6