// This code works well char uniqueid[256]; char *tmp = NULL; ast_cdr_getvar(chan->cdr, "uniqueid",&tmp, uniqueid,sizeof(uniqueid), 0); ast_log(LOG_DEBUG, "UNIQUEID: '%s'\n",uniqueid); // This code prints out all variable defined for current channel printf("\n\nDUMPING VARIABLES\n"); struct ast_var_t *variables; struct varshead *headp; headp=&chan->varshead; AST_LIST_TRAVERSE(headp,variables,entries) { printf("%s -> %s\n", ast_var_name(variables),ast_var_value(variables)); } // This code doesn't print anything at all, why? // I wan't to print all variables from CDR printf("DUMPING CDR VARIABLES:\n"); headp = &(chan->cdr)->varshead; AST_LIST_TRAVERSE(headp, variables, entries) { printf("%s -> %s\n", ast_var_name(variables), ast_var_value(variables)); } printf("\n\n");