00001 /* 00002 * $Id: rr_cb.h 5575 2009-02-10 10:13:29Z henningw $ 00003 * 00004 * Copyright (C) 2005 Voice Sistem SRL 00005 * 00006 * This file is part of Kamailio, a free SIP server. 00007 * 00008 * Kamailio is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU General Public License 00010 * as published by the Free Software Foundation; either version 2 00011 * of the License, or (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 Route & Record-Route module 00026 * \ingroup rr 00027 */ 00028 00029 #ifndef RR_CB_H_ 00030 #define RR_CB_H_ 00031 00032 #include "../../str.h" 00033 #include "../../parser/msg_parser.h" 00034 00035 00036 /*! \brief callback function prototype */ 00037 typedef void (rr_cb_t) (struct sip_msg* req, str *rr_param, void *param); 00038 /*! \brief register callback function prototype */ 00039 typedef int (*register_rrcb_t)( rr_cb_t f, void *param); 00040 00041 00042 /*! rr callback */ 00043 struct rr_callback { 00044 int id; /*!< id of this callback - useless */ 00045 rr_cb_t* callback; /*!< callback function */ 00046 void *param; /*!< param to be passed to callback function */ 00047 struct rr_callback* next; /*!< next callback element*/ 00048 }; 00049 00050 00051 /*! 00052 * \brief destroy global callback list, frees memory 00053 */ 00054 void destroy_rrcb_lists(void); 00055 00056 00057 /*! 00058 * \brief register a RR callback, allocates new private memory for it 00059 * \param f callback register function 00060 * \param param callback parameter 00061 * \return 0 on success, -1 on failure (out of memory) 00062 */ 00063 int register_rrcb(rr_cb_t f, void *param ); 00064 00065 00066 /*! 00067 * \brief run RR transaction callbacks 00068 * \param req SIP request 00069 * \param rr_param callback list 00070 */ 00071 void run_rr_callbacks( struct sip_msg *req, str *rr_param); 00072 00073 00074 #endif
1.5.6