chan_misdn_config.h 6.0 KB

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