Application to dump channel variables. More...
#include "asterisk.h"
#include "asterisk/pbx.h"
#include "asterisk/module.h"
#include "asterisk/channel.h"
#include "asterisk/app.h"
Go to the source code of this file.
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
static int | dumpchan_exec (struct ast_channel *chan, void *data) |
static int | load_module (void) |
static int | serialize_showchan (struct ast_channel *c, char *buf, size_t size) |
static int | unload_module (void) |
Variables | |
static struct ast_module_info __MODULE_INFO_SECTION | __mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Dump Info About The Calling Channel" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } |
static char * | app = "DumpChan" |
static struct ast_module_info * | ast_module_info = &__mod_info |
Application to dump channel variables.
Definition in file app_dumpchan.c.
static void __reg_module | ( | void | ) | [static] |
Definition at line 179 of file app_dumpchan.c.
static void __unreg_module | ( | void | ) | [static] |
Definition at line 179 of file app_dumpchan.c.
static int dumpchan_exec | ( | struct ast_channel * | chan, |
void * | data | ||
) | [static] |
Definition at line 150 of file app_dumpchan.c.
References ast_str_buffer(), ast_str_thread_get(), ast_strlen_zero(), ast_verbose(), ast_channel::name, option_verbose, pbx_builtin_serialize_variables(), and serialize_showchan().
Referenced by load_module().
{ struct ast_str *vars = ast_str_thread_get(&ast_str_thread_global_buf, 16); char info[1024]; int level = 0; static char *line = "================================================================================"; if (!ast_strlen_zero(data)) level = atoi(data); if (option_verbose >= level) { serialize_showchan(chan, info, sizeof(info)); pbx_builtin_serialize_variables(chan, &vars); ast_verbose("\nDumping Info For Channel: %s:\n%s\nInfo:\n%s\nVariables:\n%s%s\n", chan->name, line, info, ast_str_buffer(vars), line); } return 0; }
static int load_module | ( | void | ) | [static] |
Definition at line 174 of file app_dumpchan.c.
References ast_register_application_xml, and dumpchan_exec().
{ return ast_register_application_xml(app, dumpchan_exec); }
static int serialize_showchan | ( | struct ast_channel * | c, |
char * | buf, | ||
size_t | size | ||
) | [static] |
Definition at line 65 of file app_dumpchan.c.
References ast_channel::_state, ast_channel::appl, AST_FLAG_BLOCKING, ast_getformatname_multiple(), ast_print_group(), ast_state2str(), ast_test_flag, ast_tvnow(), ast_channel::blockproc, ast_channel::callgroup, ast_channel::cdr, ast_channel::cid, ast_callerid::cid_dnid, ast_callerid::cid_name, ast_callerid::cid_num, ast_callerid::cid_rdnis, ast_channel::context, ast_channel::data, DEBUGCHAN_FLAG, ast_channel::exten, ast_channel::fds, ast_channel::fin, ast_channel::fout, ast_channel::language, ast_channel::name, ast_channel::nativeformats, ast_channel::parkinglot, ast_channel::pickupgroup, ast_channel::priority, ast_channel::rawreadformat, ast_channel::rawwriteformat, ast_channel::readformat, ast_channel::rings, S_OR, sec, ast_cdr::start, ast_channel::tech, ast_channel_tech::type, ast_channel::uniqueid, ast_channel::whentohangup, and ast_channel::writeformat.
Referenced by dumpchan_exec().
{ struct timeval now; long elapsed_seconds = 0; int hour = 0, min = 0, sec = 0; char cgrp[BUFSIZ/2]; char pgrp[BUFSIZ/2]; char formatbuf[BUFSIZ/2]; now = ast_tvnow(); memset(buf, 0, size); if (!c) return 0; if (c->cdr) { elapsed_seconds = now.tv_sec - c->cdr->start.tv_sec; hour = elapsed_seconds / 3600; min = (elapsed_seconds % 3600) / 60; sec = elapsed_seconds % 60; } snprintf(buf,size, "Name= %s\n" "Type= %s\n" "UniqueID= %s\n" "CallerIDNum= %s\n" "CallerIDName= %s\n" "DNIDDigits= %s\n" "RDNIS= %s\n" "Parkinglot= %s\n" "Language= %s\n" "State= %s (%d)\n" "Rings= %d\n" "NativeFormat= %s\n" "WriteFormat= %s\n" "ReadFormat= %s\n" "RawWriteFormat= %s\n" "RawReadFormat= %s\n" "1stFileDescriptor= %d\n" "Framesin= %d %s\n" "Framesout= %d %s\n" "TimetoHangup= %ld\n" "ElapsedTime= %dh%dm%ds\n" "Context= %s\n" "Extension= %s\n" "Priority= %d\n" "CallGroup= %s\n" "PickupGroup= %s\n" "Application= %s\n" "Data= %s\n" "Blocking_in= %s\n", c->name, c->tech->type, c->uniqueid, S_OR(c->cid.cid_num, "(N/A)"), S_OR(c->cid.cid_name, "(N/A)"), S_OR(c->cid.cid_dnid, "(N/A)"), S_OR(c->cid.cid_rdnis, "(N/A)"), c->parkinglot, c->language, ast_state2str(c->_state), c->_state, c->rings, ast_getformatname_multiple(formatbuf, sizeof(formatbuf), c->nativeformats), ast_getformatname_multiple(formatbuf, sizeof(formatbuf), c->writeformat), ast_getformatname_multiple(formatbuf, sizeof(formatbuf), c->readformat), ast_getformatname_multiple(formatbuf, sizeof(formatbuf), c->rawwriteformat), ast_getformatname_multiple(formatbuf, sizeof(formatbuf), c->rawreadformat), c->fds[0], c->fin & ~DEBUGCHAN_FLAG, (c->fin & DEBUGCHAN_FLAG) ? " (DEBUGGED)" : "", c->fout & ~DEBUGCHAN_FLAG, (c->fout & DEBUGCHAN_FLAG) ? " (DEBUGGED)" : "", (long)c->whentohangup.tv_sec, hour, min, sec, c->context, c->exten, c->priority, ast_print_group(cgrp, sizeof(cgrp), c->callgroup), ast_print_group(pgrp, sizeof(pgrp), c->pickupgroup), ( c->appl ? c->appl : "(N/A)" ), ( c-> data ? S_OR(c->data, "(Empty)") : "(None)"), (ast_test_flag(c, AST_FLAG_BLOCKING) ? c->blockproc : "(Not Blocking)")); return 0; }
static int unload_module | ( | void | ) | [static] |
Definition at line 169 of file app_dumpchan.c.
References ast_unregister_application().
{ return ast_unregister_application(app); }
struct ast_module_info __MODULE_INFO_SECTION __mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Dump Info About The Calling Channel" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } [static] |
Definition at line 179 of file app_dumpchan.c.
char* app = "DumpChan" [static] |
Definition at line 63 of file app_dumpchan.c.
struct ast_module_info* ast_module_info = &__mod_info [static] |
Definition at line 179 of file app_dumpchan.c.