Add capability to retrieve list of channel types
authorMark Spencer <markster@digium.com>
Sat, 11 Feb 2006 07:06:47 +0000 (07:06 +0000)
committerMark Spencer <markster@digium.com>
Sat, 11 Feb 2006 07:06:47 +0000 (07:06 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@9508 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channel.c
include/asterisk/channel.h

index a8747b0..dc4dd8f 100644 (file)
--- 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"
index f95faff..94d776e 100644 (file)
@@ -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