1 /*! 2 * \file sccp_config.h 3 * \brief SCCP Config Header 4 * \author Marcello Ceschia <marcelloceschia [at] users.sourceforge.net> 5 * \note Reworked, but based on chan_sccp code. 6 * The original chan_sccp driver that was made by Zozo which itself was derived from the chan_skinny driver. 7 * Modified by Jan Czmok and Julien Goodwin 8 * \note This program is free software and may be modified and distributed under the terms of the GNU Public License. 9 * See the LICENSE file at the top of the source tree. 10 */ 11 #pragma once 12 13 __BEGIN_C_EXTERN__ 14 // sccp_buttonconfig_list_t externally declared in sccp_device.h, required by sccp_config_addButton 15 extern struct sccp_buttonconfig_list sccp_buttonconfig_list; 16 17 /*! 18 * \brief Enum for Config Value Change Status 19 */ 20 typedef enum { 21 SCCP_CONFIG_CHANGE_NOCHANGE, 22 SCCP_CONFIG_CHANGE_CHANGED, 23 SCCP_CONFIG_CHANGE_INVALIDVALUE, 24 SCCP_CONFIG_CHANGE_ERROR, 25 } sccp_value_changed_t; 26 27 /*! 28 * \brief Enum for Config Option Blocks 29 */ 30 typedef enum { 31 SCCP_CONFIG_GLOBAL_SEGMENT, 32 SCCP_CONFIG_DEVICE_SEGMENT, 33 SCCP_CONFIG_LINE_SEGMENT, 34 SCCP_CONFIG_SOFTKEY_SEGMENT, 35 } sccp_config_segment_t; 36 37 // SCCP_API void SCCP_CALL sccp_copy_defaultValue(const char *name, void *obj, const sccp_device_t * device, const sccp_config_segment_t segment); 38 SCCP_API int SCCP_CALL sccp_manager_config_metadata(struct mansession *s, const struct message *m); 39 SCCP_API void SCCP_CALL sccp_config_cleanup_dynamically_allocated_memory(void *obj, const sccp_config_segment_t segment); 40 SCCP_API sccp_value_changed_t SCCP_CALL sccp_config_addButton(sccp_buttonconfig_list_t *buttonconfigList, int buttonindex, sccp_config_buttontype_t type, const char *name, const char *options, const char *args); 41 SCCP_API boolean_t SCCP_CALL sccp_config_general(sccp_readingtype_t readingtype); 42 SCCP_API void SCCP_CALL cleanup_stale_contexts(char *new_context, char *old_context); 43 SCCP_API boolean_t SCCP_CALL sccp_config_readDevicesLines(sccp_readingtype_t readingtype); 44 45 /*! 46 * \brief Enum for Config File Status (Return Values) 47 */ 48 typedef enum { 49 /* *INDENT-OFF* */ 50 CONFIG_STATUS_FILE_NOT_CHANGED = -1, 51 CONFIG_STATUS_FILE_OK = 0, 52 CONFIG_STATUS_FILE_OLD = 1, 53 CONFIG_STATUS_FILE_NOT_SCCP = 2, 54 CONFIG_STATUS_FILE_NOT_FOUND = 3, 55 CONFIG_STATUS_FILE_INVALID = 5, 56 /* *INDENT-ON* */ 57 } sccp_config_file_status_t; 58 59 SCCP_API sccp_config_file_status_t SCCP_CALL sccp_config_getConfig(boolean_t force, const char * const filename); 60 SCCP_API sccp_configurationchange_t SCCP_CALL sccp_config_applyGlobalConfiguration(PBX_VARIABLE_TYPE * v); 61 SCCP_API sccp_configurationchange_t SCCP_CALL sccp_config_applyLineConfiguration(linePtr l, PBX_VARIABLE_TYPE * v); 62 SCCP_API sccp_configurationchange_t SCCP_CALL sccp_config_applyDeviceConfiguration(devicePtr d, PBX_VARIABLE_TYPE * v); 63 // SCCP_API sccp_configurationchange_t SCCP_CALL sccp_config_applyDeviceDefaults(sccp_device_t * device, PBX_VARIABLE_TYPE * variable); 64 65 SCCP_API void SCCP_CALL sccp_config_softKeySet(PBX_VARIABLE_TYPE * variable, const char *name); 66 SCCP_API void SCCP_CALL sccp_config_restoreDeviceFeatureStatus(devicePtr device); 67 68 SCCP_API int SCCP_CALL sccp_config_generate(char *filename, int configType); 69 __END_C_EXTERN__ 70 // kate: indent-width 8; replace-tabs off; indent-mode cstyle; auto-insert-doxygen on; line-numbers on; tab-indents on; keep-extra-spaces off; auto-brackets off; 71