Wed, 10 Feb 2010 21:25:01 +0100
Extend uac_auth() of the UAC module to workaround CSEQ problems.
This logic is meant to complement that of changeset 17, which
added rich authentication credentials to the gw table and its
associated logic in the LCR module.
1 /*
2 * $Id: enum.h 5901 2009-07-21 07:45:05Z bogdan_iancu $
3 *
4 * Header file for Enum and E164 related functions
5 *
6 * Copyright (C) 2002-2008 Juha Heinanen
7 *
8 * This file is part of opensips, a free SIP server.
9 *
10 * opensips is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version
14 *
15 * opensips is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 */
26 #ifndef ENUM_H
27 #define ENUM_H
30 #include "../../parser/msg_parser.h"
33 #define MAX_DOMAIN_SIZE 256
34 #define MAX_COMPONENT_SIZE 32 /* separator, apex, ... This simplifies checks */
37 /*
38 * Check if from user is an e164 number and has a naptr record
39 */
40 int is_from_user_enum_0(struct sip_msg* _msg, char* _str1, char* _str2);
41 int is_from_user_enum_1(struct sip_msg* _msg, char* _suffix, char* _str2);
42 int is_from_user_enum_2(struct sip_msg* _msg, char* _suffix, char* _service);
44 /*
45 * do source number destination routing.
46 * that is, make the ruri based on the from number
47 * this is like source ip policy routing
48 */
49 int enum_pv_query_1(struct sip_msg* _msg, char* _sp);
50 int enum_pv_query_2(struct sip_msg* _msg, char* _sp, char* _suffix);
51 int enum_pv_query_3(struct sip_msg* _msg, char* _sp, char* _suffix,
52 char* _service);
54 /*
55 * Make enum query and if query succeeds, replace current uri with the
56 * result of the query
57 */
58 int enum_query_0(struct sip_msg* _msg, char* _str1, char* _str2);
59 int enum_query_1(struct sip_msg* _msg, char* _suffix, char* _str2);
60 int enum_query_2(struct sip_msg* _msg, char* _suffix, char* _service);
62 /*
63 * Infrastructure ENUM versions.
64 */
65 int i_enum_query_0(struct sip_msg* _msg, char* _str1, char* _str2);
66 int i_enum_query_1(struct sip_msg* _msg, char* _suffix, char* _str2);
67 int i_enum_query_2(struct sip_msg* _msg, char* _suffix, char* _service);
69 /*
70 * Make ISN query and if query succeeds, replace current uri with the
71 * result of the query
72 */
73 int isn_query_0(struct sip_msg* _msg, char* _str1, char* _str2);
74 int isn_query_1(struct sip_msg* _msg, char* _suffix, char* _str2);
75 int isn_query_2(struct sip_msg* _msg, char* _suffix, char* _service);
78 #endif /* ENUM_H */