summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--include/asterisk/cdr.h1
-rw-r--r--main/cdr.c6
-rw-r--r--main/pbx.c2
4 files changed, 11 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index 0d58b1b22..56e536f68 100644
--- a/CHANGES
+++ b/CHANGES
@@ -478,6 +478,8 @@ Call Detail Records
(but a record will still be inserted, based on what columns remain). Note
that the other two features from cdr_adaptive_odbc (alias and filter) are
not currently supported.
+ * The ResetCDR application now has an 'e' option that re-enables a CDR if it
+ has been disabled using the NoCDR application.
Miscellaneous New Modules
-------------------------
diff --git a/include/asterisk/cdr.h b/include/asterisk/cdr.h
index 96a5dc497..e8727ab4c 100644
--- a/include/asterisk/cdr.h
+++ b/include/asterisk/cdr.h
@@ -29,6 +29,7 @@
#define AST_CDR_FLAG_LOCKED (1 << 2)
#define AST_CDR_FLAG_CHILD (1 << 3)
#define AST_CDR_FLAG_POST_DISABLED (1 << 4)
+#define AST_CDR_FLAG_POST_ENABLE (1 << 5)
/*! \name CDR Flags */
/*@{ */
diff --git a/main/cdr.c b/main/cdr.c
index 488eeee1c..00d66afec 100644
--- a/main/cdr.c
+++ b/main/cdr.c
@@ -1025,6 +1025,12 @@ void ast_cdr_reset(struct ast_cdr *cdr, struct ast_flags *_flags)
ast_set_flag(cdr, AST_CDR_FLAG_POSTED);
}
+ /* enable CDR only */
+ if (ast_test_flag(&flags, AST_CDR_FLAG_POST_ENABLE)) {
+ ast_clear_flag(cdr, AST_CDR_FLAG_POST_DISABLED);
+ continue;
+ }
+
/* clear variables */
if (!ast_test_flag(&flags, AST_CDR_FLAG_KEEP_VARS)) {
ast_cdr_free_vars(cdr, 0);
diff --git a/main/pbx.c b/main/pbx.c
index e59ee9ea8..d790dddf1 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -589,6 +589,7 @@ static struct pbx_builtin {
" w -- Store the current CDR record before resetting it.\n"
" a -- Store any stacked records.\n"
" v -- Save CDR variables.\n"
+ " e -- Enable CDR only (negate effects of NoCDR).\n"
},
{ "Ringing", pbx_builtin_ringing,
@@ -6846,6 +6847,7 @@ AST_APP_OPTIONS(resetcdr_opts, {
AST_APP_OPTION('w', AST_CDR_FLAG_POSTED),
AST_APP_OPTION('a', AST_CDR_FLAG_LOCKED),
AST_APP_OPTION('v', AST_CDR_FLAG_KEEP_VARS),
+ AST_APP_OPTION('e', AST_CDR_FLAG_POST_ENABLE),
});
/*!