Index: channel.c =================================================================== RCS file: /usr/cvsroot/asterisk/channel.c,v retrieving revision 1.195 diff -u -r1.195 channel.c --- channel.c 15 May 2005 04:48:30 -0000 1.195 +++ channel.c 27 Jul 2005 22:09:41 -0000 @@ -1838,6 +1838,14 @@ res = 0; } } + + /* It's possible this is a translated frame */ + if (f && f->frametype == AST_FRAME_DTMF) { + ast_log(LOG_DTMF, "%s : %c\n", chan->name, f->subclass); + } else if (fr->frametype == AST_FRAME_DTMF) { + ast_log(LOG_DTMF, "%s : %c\n", chan->name, fr->subclass); + } + if (f && (f != fr)) ast_frfree(f); ast_clear_flag(chan, AST_FLAG_BLOCKING); Index: logger.c =================================================================== RCS file: /usr/cvsroot/asterisk/logger.c,v retrieving revision 1.68 diff -u -r1.68 logger.c --- logger.c 14 May 2005 23:28:47 -0000 1.68 +++ logger.c 27 Jul 2005 22:09:41 -0000 @@ -42,6 +42,7 @@ LOG_NOTICE, LOG_WARNING, LOG_ERR, + LOG_DEBUG, LOG_DEBUG }; @@ -105,7 +106,8 @@ "NOTICE", "WARNING", "ERROR", - "VERBOSE" + "VERBOSE", + "DTMF" }; static int colors[] = { @@ -114,7 +116,8 @@ COLOR_YELLOW, COLOR_BRRED, COLOR_RED, - COLOR_GREEN + COLOR_GREEN, + COLOR_BRGREEN }; static int make_components(char *s, int lineno) @@ -139,6 +142,8 @@ res |= (1 << __LOG_DEBUG); else if (!strcasecmp(w, "verbose")) res |= (1 << __LOG_VERBOSE); + else if (!strcasecmp(w, "dtmf")) + res |= (1 << __LOG_DTMF); else { fprintf(stderr, "Logfile Warning: Unknown keyword '%s' at line %d of logger.conf\n", w, lineno); } @@ -491,6 +496,8 @@ ast_cli(fd, " - "); if (chan->logmask & (1 << __LOG_DEBUG)) ast_cli(fd, "Debug "); + if (chan->logmask & (1 << __LOG_DTMF)) + ast_cli(fd, "DTMF "); if (chan->logmask & (1 << __LOG_VERBOSE)) ast_cli(fd, "Verbose "); if (chan->logmask & (1 << __LOG_WARNING)) @@ -647,6 +654,9 @@ } if (level == __LOG_VERBOSE) { snprintf(buf, sizeof(buf), "VERBOSE[%ld]: ", (long)GETTID()); + level = __LOG_DEBUG; + } else if (level == __LOG_DTMF) { + snprintf(buf, sizeof(buf), "DTMF[%ld]: ", (long)GETTID()); level = __LOG_DEBUG; } else { snprintf(buf, sizeof(buf), "%s[%ld]: %s:%d in %s: ", Index: include/asterisk/logger.h =================================================================== RCS file: /usr/cvsroot/asterisk/include/asterisk/logger.h,v retrieving revision 1.11 diff -u -r1.11 logger.h --- include/asterisk/logger.h 17 Mar 2005 23:12:15 -0000 1.11 +++ include/asterisk/logger.h 27 Jul 2005 22:09:41 -0000 @@ -99,6 +99,12 @@ #define __LOG_VERBOSE 5 #define LOG_VERBOSE __LOG_VERBOSE, _A_ +#ifdef LOG_DTMF +#undef LOG_DTMF +#endif +#define __LOG_DTMF 6 +#define LOG_DTMF __LOG_DTMF, _A_ + #if defined(__cplusplus) || defined(c_plusplus) } #endif Index: configs/logger.conf.sample =================================================================== RCS file: /usr/cvsroot/asterisk/configs/logger.conf.sample,v retrieving revision 1.12 diff -u -r1.12 logger.conf.sample --- configs/logger.conf.sample 30 Mar 2005 06:33:44 -0000 1.12 +++ configs/logger.conf.sample 27 Jul 2005 22:11:22 -0000 @@ -40,6 +40,7 @@ ; warning ; error ; verbose +; dtmf ; ; Special filename "console" represents the system console ;