Thu Apr 28 2011 16:56:50

Asterisk developer's documentation


app_dumpchan.c File Reference

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"
Include dependency graph for app_dumpchan.c:

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_infoast_module_info = &__mod_info

Detailed Description

Application to dump channel variables.

Author:
Anthony Minessale <anthmct@yahoo.com>

Definition in file app_dumpchan.c.


Function Documentation

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]
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().


Variable Documentation

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.

Definition at line 179 of file app_dumpchan.c.