App to flash a DAHDI trunk. More...
#include "asterisk.h"
#include <dahdi/user.h>
#include "asterisk/lock.h"
#include "asterisk/file.h"
#include "asterisk/channel.h"
#include "asterisk/pbx.h"
#include "asterisk/module.h"
#include "asterisk/translate.h"
#include "asterisk/image.h"
Go to the source code of this file.
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
static int | dahdi_wait_event (int fd) |
static int | flash_exec (struct ast_channel *chan, void *data) |
static int | load_module (void) |
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 = "Flash channel application" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } |
static char * | app = "Flash" |
static struct ast_module_info * | ast_module_info = &__mod_info |
App to flash a DAHDI trunk.
Definition in file app_flash.c.
static void __reg_module | ( | void | ) | [static] |
Definition at line 119 of file app_flash.c.
static void __unreg_module | ( | void | ) | [static] |
Definition at line 119 of file app_flash.c.
static int dahdi_wait_event | ( | int | fd | ) | [inline, static] |
Definition at line 65 of file app_flash.c.
Referenced by flash_exec().
{ /* Avoid the silly dahdi_waitevent which ignores a bunch of events */ int i,j=0; i = DAHDI_IOMUX_SIGEVENT; if (ioctl(fd, DAHDI_IOMUX, &i) == -1) return -1; if (ioctl(fd, DAHDI_GETEVENT, &j) == -1) return -1; return j; }
static int flash_exec | ( | struct ast_channel * | chan, |
void * | data | ||
) | [static] |
Definition at line 75 of file app_flash.c.
References ast_log(), ast_safe_sleep(), ast_verb, dahdi_wait_event(), errno, ast_channel::fds, LOG_WARNING, ast_channel::name, ast_channel::tech, and ast_channel_tech::type.
Referenced by load_module().
{ int res = -1; int x; struct dahdi_params dahdip; if (strcasecmp(chan->tech->type, "DAHDI")) { ast_log(LOG_WARNING, "%s is not a DAHDI channel\n", chan->name); return -1; } memset(&dahdip, 0, sizeof(dahdip)); res = ioctl(chan->fds[0], DAHDI_GET_PARAMS, &dahdip); if (!res) { if (dahdip.sigtype & __DAHDI_SIG_FXS) { x = DAHDI_FLASH; res = ioctl(chan->fds[0], DAHDI_HOOK, &x); if (!res || (errno == EINPROGRESS)) { if (res) { /* Wait for the event to finish */ dahdi_wait_event(chan->fds[0]); } res = ast_safe_sleep(chan, 1000); ast_verb(3, "Flashed channel %s\n", chan->name); } else ast_log(LOG_WARNING, "Unable to flash channel %s: %s\n", chan->name, strerror(errno)); } else ast_log(LOG_WARNING, "%s is not an FXO Channel\n", chan->name); } else ast_log(LOG_WARNING, "Unable to get parameters of %s: %s\n", chan->name, strerror(errno)); return res; }
static int load_module | ( | void | ) | [static] |
Definition at line 114 of file app_flash.c.
References ast_register_application_xml, and flash_exec().
{ return ast_register_application_xml(app, flash_exec); }
static int unload_module | ( | void | ) | [static] |
Definition at line 109 of file app_flash.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 = "Flash channel application" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } [static] |
Definition at line 119 of file app_flash.c.
char* app = "Flash" [static] |
Definition at line 63 of file app_flash.c.
struct ast_module_info* ast_module_info = &__mod_info [static] |
Definition at line 119 of file app_flash.c.