aboutsummaryrefslogtreecommitdiffstats
path: root/include/asterisk/cdr.h
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-02-23 22:48:47 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-02-23 22:48:47 +0000
commit6898f073dee1b0642ab4d3bc5da03721bdd7e5ba (patch)
tree5cac482ff6e93ba883893efeabb3ed534e83e9d0 /include/asterisk/cdr.h
parentf8adb7e1138998183c958889748cc53648942a7a (diff)
Merge anthm's CDR updates (bug #3595)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5068 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include/asterisk/cdr.h')
-rwxr-xr-xinclude/asterisk/cdr.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/include/asterisk/cdr.h b/include/asterisk/cdr.h
index 8e712bc76..0f99e2d3f 100755
--- a/include/asterisk/cdr.h
+++ b/include/asterisk/cdr.h
@@ -19,10 +19,12 @@
#include <asterisk/channel.h>
#include <sys/time.h>
-
+#define AST_CDR_FLAG_KEEP_VARS (1 << 0)
#define AST_CDR_FLAG_POSTED (1 << 1)
#define AST_CDR_FLAG_LOCKED (1 << 2)
#define AST_CDR_FLAG_CHILD (1 << 3)
+#define AST_CDR_FLAG_SETVAR (1 << 4)
+#define AST_CDR_FLAG_RECUR (1 << 5)
#define AST_CDR_NOANSWER (1 << 0)
#define AST_CDR_BUSY (1 << 1)
@@ -37,6 +39,7 @@
#define AST_MAX_USER_FIELD 256
struct ast_channel;
+AST_LIST_HEAD(varshead,ast_var_t);
/*! Responsible for call detail data */
struct ast_cdr {
@@ -78,9 +81,19 @@ struct ast_cdr {
char uniqueid[32];
/* User field */
char userfield[AST_MAX_USER_FIELD];
+
+ /* A linked list for variables */
+ struct varshead varshead;
+
struct ast_cdr *next;
};
+extern void ast_cdr_getvar(struct ast_cdr *cdr, const char *name, char **ret, char *workspace, int workspacelen, int recur);
+extern int ast_cdr_setvar(struct ast_cdr *cdr, const char *name, char *value, int recur);
+extern int ast_cdr_serialize_variables(struct ast_cdr *cdr, char *buf, size_t size, char delim, char sep, int recur);
+extern void ast_cdr_free_vars(struct ast_cdr *cdr, int recur);
+extern int ast_cdr_copy_vars(struct ast_cdr *to_cdr, struct ast_cdr *from_cdr);
+
typedef int (*ast_cdrbe)(struct ast_cdr *cdr);
/*! Allocate a record */