Added option far_alerting. This option makes it possible to generate a Ringing on...
[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
15
16 #ifndef CHAN_MISDN_CONFIG_H
17 #define CHAN_MISDN_CONFIG_H
18
19 #define BUFFERSIZE 512
20
21 enum misdn_cfg_elements {
22
23         /* port config items */
24         MISDN_CFG_FIRST = 0,
25         MISDN_CFG_GROUPNAME,           /* char[] */
26         MISDN_CFG_FAR_ALERTING,        /* int (bool) */
27         MISDN_CFG_RXGAIN,              /* int */
28         MISDN_CFG_TXGAIN,              /* int */
29         MISDN_CFG_TE_CHOOSE_CHANNEL,   /* int (bool) */
30         MISDN_CFG_PMP_L1_CHECK,        /* int (bool) */
31         MISDN_CFG_HDLC,                /* int (bool) */
32         MISDN_CFG_CONTEXT,             /* char[] */
33         MISDN_CFG_LANGUAGE,            /* char[] */
34         MISDN_CFG_MUSICCLASS,            /* char[] */
35         MISDN_CFG_CALLERID,            /* char[] */
36         MISDN_CFG_METHOD,              /* char[] */
37         MISDN_CFG_DIALPLAN,            /* int */
38         MISDN_CFG_LOCALDIALPLAN,       /* int */
39         MISDN_CFG_CPNDIALPLAN,       /* int */
40         MISDN_CFG_NATPREFIX,           /* char[] */
41         MISDN_CFG_INTERNATPREFIX,      /* char[] */
42         MISDN_CFG_PRES,                /* int */
43         MISDN_CFG_SCREEN,              /* int */
44         MISDN_CFG_ALWAYS_IMMEDIATE,    /* int (bool) */
45         MISDN_CFG_IMMEDIATE,           /* int (bool) */
46         MISDN_CFG_SENDDTMF,           /* int (bool) */
47         MISDN_CFG_HOLD_ALLOWED,        /* int (bool) */
48         MISDN_CFG_EARLY_BCONNECT,      /* int (bool) */
49         MISDN_CFG_INCOMING_EARLY_AUDIO,      /* int (bool) */
50         MISDN_CFG_ECHOCANCEL,          /* int */
51         MISDN_CFG_ECHOCANCELWHENBRIDGED,  /* int (bool) */
52         MISDN_CFG_ECHOTRAINING,        /* int (bool) */
53         MISDN_CFG_NEED_MORE_INFOS,     /* bool */
54         MISDN_CFG_JITTERBUFFER,              /* int */
55         MISDN_CFG_JITTERBUFFER_UPPER_THRESHOLD,              /* int */
56         MISDN_CFG_CALLGROUP,           /* ast_group_t */
57         MISDN_CFG_PICKUPGROUP,         /* ast_group_t */
58         MISDN_CFG_MSNS,                /* char[] */
59         MISDN_CFG_PTP,                 /* int (bool) */
60         MISDN_CFG_LAST,
61         
62         /* general config items */
63         MISDN_GEN_FIRST,
64         MISDN_GEN_MISDN_INIT,           /* char[] */
65         MISDN_GEN_DEBUG,               /* int */
66         MISDN_GEN_TRACEFILE,           /* char[] */
67         MISDN_GEN_BRIDGING,            /* int (bool) */
68         MISDN_GEN_STOP_TONE,           /* int (bool) */
69         MISDN_GEN_APPEND_DIGITS2EXTEN, /* int (bool) */
70         MISDN_GEN_DYNAMIC_CRYPT,       /* int (bool) */
71         MISDN_GEN_CRYPT_PREFIX,        /* char[] */
72         MISDN_GEN_CRYPT_KEYS,          /* char[] */
73         MISDN_GEN_LAST
74 };
75
76 enum misdn_cfg_method {
77         METHOD_STANDARD = 0,
78         METHOD_ROUND_ROBIN
79 };
80
81 /* you must call misdn_cfg_init before any other function of this header file */
82 void misdn_cfg_init(int max_ports); 
83 void misdn_cfg_reload(void);
84 void misdn_cfg_destroy(void);
85
86 void misdn_cfg_update_ptp( void );
87
88 /* if you requst a general config element, the port value is ignored. if the requested 
89  * value is not available, or the buffer is too small, the buffer will be nulled (in 
90  * case of a char* only its first byte will be nulled). */
91 void misdn_cfg_get(int port, enum misdn_cfg_elements elem, void* buf, int bufsize);
92
93 /* fills the buffer with a ',' separated list of all active ports */
94 void misdn_cfg_get_ports_string(char *ports);
95
96 /* fills the buffer with a nice printable string representation of the config element */
97 void misdn_cfg_get_config_string(int port, enum misdn_cfg_elements elem, char* buf, int bufsize);
98
99 /* returns the next available port number. returns -1 if the last one was reached. */
100 int misdn_cfg_get_next_port(int port);
101 int misdn_cfg_get_next_port_spin(int port);
102
103 int misdn_cfg_is_msn_valid(int port, char* msn);
104 int misdn_cfg_is_port_valid(int port);
105 int misdn_cfg_is_group_method(char *group, enum misdn_cfg_method meth);
106
107 #endif