Skip to content
Snippets Groups Projects
enum.c 30.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • 	ret = ast_search_dns(&context, domain, C_IN, T_TXT, txt_callback);
    	if (ret > 0) {
    
    		ast_copy_string(txt, context.txt, txtlen);
    
    	} else {
    		ast_debug(2, "No such number found in ENUM: %s (%s)\n", domain, strerror(errno));
    
    
    	if (autoservice) {
    		ast_autoservice_stop(chan);
    	}
    
    	ast_free(domain);
    	return 0;
    
    Olle Johansson's avatar
    Olle Johansson committed
    /*! \brief Initialize the ENUM support subsystem */
    
    static int private_enum_init(int reload)
    
    {
    	struct ast_config *cfg;
    
    	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
    
    
    	if ((cfg = ast_config_load2("enum.conf", "enum", config_flags)) == CONFIG_STATUS_FILEUNCHANGED)
    
    	if (cfg == CONFIG_STATUS_FILEMISSING || cfg == CONFIG_STATUS_FILEUNCHANGED || cfg == CONFIG_STATUS_FILEINVALID) {
    		return 0;
    	}
    
    
    	/* Destroy existing list */
    
    	if (cfg) {
    
    		if ((string = ast_variable_retrieve(cfg, "ienum", "branchlabel"))) {
    			ast_copy_string(ienum_branchlabel, string, sizeof(ienum_branchlabel));
    		}
    
    		if ((string = ast_variable_retrieve(cfg, "ienum", "ebl_alg"))) {
    			ebl_alg = ENUMLOOKUP_BLR_CC; /* default */
    
    			if (!strcasecmp(string, "txt"))
    
    				ebl_alg = ENUMLOOKUP_BLR_TXT;
    
    				ebl_alg = ENUMLOOKUP_BLR_EBL;
    
    				ebl_alg = ENUMLOOKUP_BLR_CC;
    
    			else
    				ast_log(LOG_WARNING, "No valid parameter for ienum/ebl_alg.\n");
    
    		ast_config_destroy(cfg);
    
    static int load_module(void)
    
    	return private_enum_init(0) ? AST_MODULE_LOAD_FAILURE : AST_MODULE_LOAD_SUCCESS;
    
    static int unload_module(void)
    {
    	return 0;
    }
    
    static int reload_module(void)
    
    	return private_enum_init(1);
    
    
    AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "ENUM Support",
    	.support_level = AST_MODULE_SUPPORT_CORE,
    	.load = load_module,
    	.unload = unload_module,
    	.reload = reload_module,
    	.load_pri = AST_MODPRI_CORE,
    
    	.requires = "extconfig",