#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include "asterisk.h"
#include "asterisk/channel.h"
#include "asterisk/pbx.h"
#include "asterisk/logger.h"
#include "asterisk/utils.h"
#include "asterisk/app.h"
#include "asterisk/cdr.h"
Go to the source code of this file.
Functions | |
char * | builtin_function_cdr_read (struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len) |
void | builtin_function_cdr_write (struct ast_channel *chan, char *cmd, char *data, const char *value) |
Variables | |
ast_custom_function | cdr_function |
Definition in file func_cdr.c.
|
Definition at line 40 of file func_cdr.c. References ast_app_separate_args(), ast_cdr_getvar(), ast_strdupa, ast_strlen_zero(), and ast_channel::cdr. 00041 { 00042 char *ret; 00043 char *mydata; 00044 int argc; 00045 char *argv[2]; 00046 int recursive = 0; 00047 00048 if (ast_strlen_zero(data)) 00049 return NULL; 00050 00051 if (!chan->cdr) 00052 return NULL; 00053 00054 mydata = ast_strdupa(data); 00055 argc = ast_app_separate_args(mydata, '|', argv, sizeof(argv) / sizeof(argv[0])); 00056 00057 /* check for a trailing flags argument */ 00058 if (argc > 1) { 00059 argc--; 00060 if (strchr(argv[argc], 'r')) 00061 recursive = 1; 00062 } 00063 00064 ast_cdr_getvar(chan->cdr, argv[0], &ret, buf, len, recursive); 00065 00066 return ret; 00067 }
|
|
Definition at line 69 of file func_cdr.c. References ast_app_separate_args(), ast_cdr_setaccount(), ast_cdr_setuserfield(), ast_cdr_setvar(), ast_strdupa, ast_strlen_zero(), and ast_channel::cdr. 00070 { 00071 char *mydata; 00072 int argc; 00073 char *argv[2]; 00074 int recursive = 0; 00075 00076 if (ast_strlen_zero(data) || !value) 00077 return; 00078 00079 mydata = ast_strdupa(data); 00080 argc = ast_app_separate_args(mydata, '|', argv, sizeof(argv) / sizeof(argv[0])); 00081 00082 /* check for a trailing flags argument */ 00083 if (argc > 1) { 00084 argc--; 00085 if (strchr(argv[argc], 'r')) 00086 recursive = 1; 00087 } 00088 00089 if (!strcasecmp(argv[0], "accountcode")) 00090 ast_cdr_setaccount(chan, value); 00091 else if (!strcasecmp(argv[0], "userfield")) 00092 ast_cdr_setuserfield(chan, value); 00093 else if (chan->cdr) 00094 ast_cdr_setvar(chan->cdr, argv[0], value, recursive); 00095 }
|
|
Definition at line 100 of file func_cdr.c. |