static int action_setcdruserfield(struct mansession *s, struct message *m) { struct ast_channel *c = NULL; char *userfield = astman_get_header(m, "UserField"); char *channel = astman_get_header(m, "Channel"); char *append = astman_get_header(m, "Append"); if (ast_strlen_zero(channel)) { astman_send_error(s, m, "No Channel specified"); return 0; } if (ast_strlen_zero(userfield)) { astman_send_error(s, m, "No UserField specified"); return 0; } c = ast_get_channel_by_name_locked(channel); if (!c) { astman_send_error(s, m, "No such channel"); return 0; } if (ast_true(append)) ast_cdr_appenduserfield(c, userfield); else ast_cdr_setuserfield(c, userfield); ast_mutex_unlock(&c->lock); astman_send_ack(s, m, "CDR Userfield Set"); return 0; }
static int appendcdruserfield_exec(struct ast_channel *chan, void *data) { struct localuser *u; int res = 0; LOCAL_USER_ADD(u); if (chan->cdr && data) { ast_cdr_appenduserfield(chan, (char*)data); } LOCAL_USER_REMOVE(u); return res; }
static int appendcdruserfield_exec(struct ast_channel *chan, void *data) { struct localuser *u; int res = 0; static int dep_warning = 0; LOCAL_USER_ADD(u); if (chan->cdr && data) { ast_cdr_appenduserfield(chan, (char*)data); } if (!dep_warning) { dep_warning = 1; ast_log(LOG_WARNING, "AppendCDRUserField is deprecated. Please use CDR(userfield) instead.\n"); } LOCAL_USER_REMOVE(u); return res; }