dsp.c: Update calls to ast_format_cmp to check result properly
[asterisk/asterisk.git] / channels / misdn / chan_misdn_config.h
1 /*
2  * Chan_Misdn -- Channel Driver for Asterisk
3  *
4  * Interface to mISDN
5  *
6  * Copyright (C) 2004, Christian Richter
7  *
8  * Christian Richter <crich@beronet.com>
9  *
10  * This program is free software, distributed under the terms of
11  * the GNU General Public License
12  */
13
14 /*! \file
15  * \brief Interface to mISDN - Config
16  * \author Christian Richter <crich@beronet.com>
17  */
18
19
20
21
22 #ifndef CHAN_MISDN_CONFIG_H
23 #define CHAN_MISDN_CONFIG_H
24
25 #define BUFFERSIZE 512
26
27 enum misdn_cfg_elements {
28
29         /* port config items */
30         MISDN_CFG_FIRST = 0,
31         MISDN_CFG_GROUPNAME,           /* char[] */
32         MISDN_CFG_ALLOWED_BEARERS,           /* char[] */
33         MISDN_CFG_FAR_ALERTING,        /* int (bool) */
34         MISDN_CFG_RXGAIN,              /* int */
35         MISDN_CFG_TXGAIN,              /* int */
36         MISDN_CFG_TE_CHOOSE_CHANNEL,   /* int (bool) */
37         MISDN_CFG_PMP_L1_CHECK,        /* int (bool) */
38         MISDN_CFG_REJECT_CAUSE,         /* int */
39         MISDN_CFG_ALARM_BLOCK,        /* int (bool) */
40         MISDN_CFG_HDLC,                /* int (bool) */
41         MISDN_CFG_CONTEXT,             /* char[] */
42         MISDN_CFG_LANGUAGE,            /* char[] */
43         MISDN_CFG_MUSICCLASS,            /* char[] */
44         MISDN_CFG_CALLERID,            /* char[] */
45         MISDN_CFG_INCOMING_CALLERID_TAG, /* char[] */
46         MISDN_CFG_APPEND_MSN_TO_CALLERID_TAG, /* int (bool) */
47         MISDN_CFG_METHOD,              /* char[] */
48         MISDN_CFG_DIALPLAN,            /* int */
49         MISDN_CFG_LOCALDIALPLAN,       /* int */
50         MISDN_CFG_CPNDIALPLAN,       /* int */
51         MISDN_CFG_TON_PREFIX_UNKNOWN,         /* char[] */
52         MISDN_CFG_TON_PREFIX_INTERNATIONAL,   /* char[] */
53         MISDN_CFG_TON_PREFIX_NATIONAL,        /* char[] */
54         MISDN_CFG_TON_PREFIX_NETWORK_SPECIFIC,/* char[] */
55         MISDN_CFG_TON_PREFIX_SUBSCRIBER,      /* char[] */
56         MISDN_CFG_TON_PREFIX_ABBREVIATED,     /* char[] */
57         MISDN_CFG_PRES,                /* int */
58         MISDN_CFG_SCREEN,              /* int */
59         MISDN_CFG_DISPLAY_CONNECTED,   /* int */
60         MISDN_CFG_DISPLAY_SETUP,       /* int */
61         MISDN_CFG_ALWAYS_IMMEDIATE,    /* int (bool) */
62         MISDN_CFG_NODIALTONE,    /* int (bool) */
63         MISDN_CFG_IMMEDIATE,           /* int (bool) */
64         MISDN_CFG_SENDDTMF,           /* int (bool) */
65         MISDN_CFG_ASTDTMF,            /* int (bool) */
66         MISDN_CFG_HOLD_ALLOWED,        /* int (bool) */
67         MISDN_CFG_EARLY_BCONNECT,      /* int (bool) */
68         MISDN_CFG_INCOMING_EARLY_AUDIO,      /* int (bool) */
69         MISDN_CFG_ECHOCANCEL,          /* int */
70         MISDN_CFG_CC_REQUEST_RETENTION,/* bool */
71         MISDN_CFG_OUTGOING_COLP,       /* int */
72 #ifdef MISDN_1_2
73         MISDN_CFG_PIPELINE,      /* char[] */
74 #endif
75
76 #ifdef WITH_BEROEC
77         MISDN_CFG_BNECHOCANCEL,
78         MISDN_CFG_BNEC_ANTIHOWL,
79         MISDN_CFG_BNEC_NLP,
80         MISDN_CFG_BNEC_ZEROCOEFF,
81         MISDN_CFG_BNEC_TD,
82         MISDN_CFG_BNEC_ADAPT,
83 #endif
84         MISDN_CFG_NEED_MORE_INFOS,     /* bool */
85         MISDN_CFG_NOAUTORESPOND_ON_SETUP,     /* bool */
86         MISDN_CFG_NTTIMEOUT,            /* bool */
87         MISDN_CFG_BRIDGING,              /* bool */
88         MISDN_CFG_JITTERBUFFER,             /* int */
89         MISDN_CFG_JITTERBUFFER_UPPER_THRESHOLD,              /* int */
90         MISDN_CFG_CALLGROUP,           /* ast_group_t */
91         MISDN_CFG_PICKUPGROUP,         /* ast_group_t */
92         MISDN_CFG_NAMEDCALLGROUP,      /* ast_namedgroups * */
93         MISDN_CFG_NAMEDPICKUPGROUP,    /* ast_namedgroups * */
94         MISDN_CFG_MAX_IN,              /* int */
95         MISDN_CFG_MAX_OUT,              /* int */
96         MISDN_CFG_L1_TIMEOUT,          /* int */
97         MISDN_CFG_OVERLAP_DIAL,         /* int (bool)*/
98         MISDN_CFG_MSNS,                /* char[] */
99         MISDN_CFG_FAXDETECT,           /* char[] */
100         MISDN_CFG_FAXDETECT_CONTEXT,   /* char[] */
101         MISDN_CFG_FAXDETECT_TIMEOUT,   /* int */
102         MISDN_CFG_PTP,                 /* int (bool) */
103         MISDN_CFG_LAST,
104
105         /* general config items */
106         MISDN_GEN_FIRST,
107 #ifndef MISDN_1_2
108         MISDN_GEN_MISDN_INIT,           /* char[] */
109 #endif
110         MISDN_GEN_DEBUG,               /* int */
111         MISDN_GEN_TRACEFILE,           /* char[] */
112         MISDN_GEN_BRIDGING,            /* int (bool) */
113         MISDN_GEN_STOP_TONE,           /* int (bool) */
114         MISDN_GEN_APPEND_DIGITS2EXTEN, /* int (bool) */
115         MISDN_GEN_DYNAMIC_CRYPT,       /* int (bool) */
116         MISDN_GEN_CRYPT_PREFIX,        /* char[] */
117         MISDN_GEN_CRYPT_KEYS,          /* char[] */
118         MISDN_GEN_NTKEEPCALLS,          /* int (bool) */
119         MISDN_GEN_NTDEBUGFLAGS,          /* int */
120         MISDN_GEN_NTDEBUGFILE,          /* char[] */
121         MISDN_GEN_LAST
122 };
123
124 enum misdn_cfg_method {
125         METHOD_STANDARD = 0,
126         METHOD_ROUND_ROBIN,
127         METHOD_STANDARD_DEC
128 };
129
130 /* you must call misdn_cfg_init before any other function of this header file */
131 int misdn_cfg_init(int max_ports, int reload);
132 void misdn_cfg_reload(void);
133 void misdn_cfg_destroy(void);
134
135 void misdn_cfg_update_ptp( void );
136
137 /* if you requst a general config element, the port value is ignored. if the requested
138  * value is not available, or the buffer is too small, the buffer will be nulled (in
139  * case of a char* only its first byte will be nulled). */
140 void misdn_cfg_get(int port, enum misdn_cfg_elements elem, void* buf, int bufsize);
141
142 /* returns the enum element for the given name, returns MISDN_CFG_FIRST if none was found */
143 enum misdn_cfg_elements misdn_cfg_get_elem (const char *name);
144
145 /* fills the buffer with the name of the given config element */
146 void misdn_cfg_get_name (enum misdn_cfg_elements elem, void *buf, int bufsize);
147
148 /* fills the buffer with the description of the given config element */
149 void misdn_cfg_get_desc (enum misdn_cfg_elements elem, void *buf, int bufsize, void *buf_default, int bufsize_default);
150
151 /* fills the buffer with a ',' separated list of all active ports */
152 void misdn_cfg_get_ports_string(char *ports);
153
154 /* fills the buffer with a nice printable string representation of the config element */
155 void misdn_cfg_get_config_string(int port, enum misdn_cfg_elements elem, char* buf, int bufsize);
156
157 /* returns the next available port number. returns -1 if the last one was reached. */
158 int misdn_cfg_get_next_port(int port);
159 int misdn_cfg_get_next_port_spin(int port);
160
161 int misdn_cfg_is_msn_valid(int port, char* msn);
162 int misdn_cfg_is_port_valid(int port);
163 int misdn_cfg_is_group_method(char *group, enum misdn_cfg_method meth);
164
165 #if 0
166 char *misdn_cfg_get_next_group(char *group);
167 int misdn_cfg_get_next_port_in_group(int port, char *group);
168 #endif
169
170 struct ast_jb_conf *misdn_get_global_jbconf(void);
171
172 #endif