From: Mark Spencer Date: Sat, 11 Feb 2006 07:06:47 +0000 (+0000) Subject: Add capability to retrieve list of channel types X-Git-Tag: 1.4.0-beta1~2677 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4a80fe50222de3a7683baec3b1820411c8d1d330;p=thirdparty%2Fasterisk.git Add capability to retrieve list of channel types git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@9508 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channel.c b/channel.c index a8747b017b..dc4dd8fb88 100644 --- a/channel.c +++ b/channel.c @@ -165,6 +165,22 @@ const struct ast_cause { }; +struct ast_variable *ast_channeltype_list(void) +{ + struct chanlist *cl; + struct ast_variable *var=NULL, *prev = NULL; + AST_LIST_TRAVERSE(&backends, cl, list) { + if (prev) { + if ((prev->next = ast_variable_new(cl->tech->type, cl->tech->description))) + prev = prev->next; + } else { + var = ast_variable_new(cl->tech->type, cl->tech->description); + prev = var; + } + } + return var; +} + static int show_channeltypes(int fd, int argc, char *argv[]) { #define FORMAT "%-10.10s %-40.40s %-12.12s %-12.12s %-12.12s\n" diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index f95faffea8..94d776e463 100644 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -1236,6 +1236,9 @@ extern char *ast_print_group(char *buf, int buflen, ast_group_t group); */ const char *channelreloadreason2txt(enum channelreloadreason reason); +/*! \brief return an ast_variable list of channeltypes */ +extern struct ast_variable *ast_channeltype_list(void); + #if defined(__cplusplus) || defined(c_plusplus) } #endif