00001 /* 00002 * $Id$ 00003 * 00004 * Copyright (C) 2006 iptelorg GmbH 00005 * 00006 * This file is part of ser, a free SIP server. 00007 * 00008 * ser 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 * For a license to use the ser software under conditions 00014 * other than those described here, or to purchase support for this 00015 * software, please contact iptel.org by e-mail at the following addresses: 00016 * info@iptel.org 00017 * 00018 * ser is distributed in the hope that it will be useful, 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 * GNU General Public License for more details. 00022 * 00023 * You should have received a copy of the GNU General Public License 00024 * along with this program; if not, write to the Free Software 00025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00026 */ 00027 /* 00028 * non-sip callbacks, called whenever a message with protocol != SIP/2.0 00029 * is received (the message must have at least a sip like first line or 00030 * else they will be dropped before this callbacks are called 00031 */ 00032 /* 00033 * History: 00034 * -------- 00035 * 2006-11-29 created by andrei 00036 */ 00037 00038 00039 #ifndef _nonsip_hooks_h 00040 #define _nonsip_hooks_h 00041 00042 #include "parser/msg_parser.h" /* sip_msg */ 00043 00044 #define MAX_NONSIP_HOOKS 1 00045 00046 enum nonsip_msg_returns{ NONSIP_MSG_ERROR=-1, NONSIP_MSG_DROP=0, 00047 NONSIP_MSG_PASS, NONSIP_MSG_ACCEPT }; 00048 00049 struct nonsip_hook{ 00050 char* name; /* must be !=0, it has only "debugging" value */ 00051 /* called each time a sip like request (from the first line point of view) 00052 * with protocol/version != SIP/2.0 is received 00053 * return: 0 - drop message immediately, >0 - continue with other hooks, 00054 * <0 - error (drop message) 00055 */ 00056 int (*on_nonsip_req)(struct sip_msg* msg); 00057 /* called before ser shutdown (last minute cleanups) */ 00058 void (*destroy)(void); 00059 }; 00060 00061 00062 int init_nonsip_hooks(void); 00063 void destroy_nonsip_hooks(void); 00064 int register_nonsip_msg_hook(struct nonsip_hook *h); 00065 int nonsip_msg_run_hooks(struct sip_msg* msg); 00066 00067 #endif
1.7.1