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 | |
AST_MODULE_INFO_STANDARD (ASTERISK_GPL_KEY,"Flash channel application") | |
static int | dahdi_wait_event (int fd) |
static int | flash_exec (struct ast_channel *chan, const char *data) |
static int | load_module (void) |
static int | unload_module (void) |
Variables | |
static char * | app = "Flash" |
App to flash a DAHDI trunk.
Definition in file app_flash.c.
AST_MODULE_INFO_STANDARD | ( | ASTERISK_GPL_KEY | , | |
"Flash channel application" | ||||
) |
static int dahdi_wait_event | ( | int | fd | ) | [inline, static] |
Definition at line 66 of file app_flash.c.
Referenced by flash_exec().
static int flash_exec | ( | struct ast_channel * | chan, | |
const char * | data | |||
) | [static] |
Definition at line 76 of file app_flash.c.
References ast_log(), ast_safe_sleep(), ast_verb, dahdi_wait_event(), errno, ast_channel::fds, LOG_WARNING, ast_channel::tech, and ast_channel_tech::type.
Referenced by load_module().
00077 { 00078 int res = -1; 00079 int x; 00080 struct dahdi_params dahdip; 00081 00082 if (strcasecmp(chan->tech->type, "DAHDI")) { 00083 ast_log(LOG_WARNING, "%s is not a DAHDI channel\n", chan->name); 00084 return -1; 00085 } 00086 00087 memset(&dahdip, 0, sizeof(dahdip)); 00088 res = ioctl(chan->fds[0], DAHDI_GET_PARAMS, &dahdip); 00089 if (!res) { 00090 if (dahdip.sigtype & __DAHDI_SIG_FXS) { 00091 x = DAHDI_FLASH; 00092 res = ioctl(chan->fds[0], DAHDI_HOOK, &x); 00093 if (!res || (errno == EINPROGRESS)) { 00094 if (res) { 00095 /* Wait for the event to finish */ 00096 dahdi_wait_event(chan->fds[0]); 00097 } 00098 res = ast_safe_sleep(chan, 1000); 00099 ast_verb(3, "Flashed channel %s\n", chan->name); 00100 } else 00101 ast_log(LOG_WARNING, "Unable to flash channel %s: %s\n", chan->name, strerror(errno)); 00102 } else 00103 ast_log(LOG_WARNING, "%s is not an FXO Channel\n", chan->name); 00104 } else 00105 ast_log(LOG_WARNING, "Unable to get parameters of %s: %s\n", chan->name, strerror(errno)); 00106 00107 return res; 00108 }
static int load_module | ( | void | ) | [static] |
Definition at line 115 of file app_flash.c.
References ast_register_application_xml, and flash_exec().
00116 { 00117 return ast_register_application_xml(app, flash_exec); 00118 }
static int unload_module | ( | void | ) | [static] |
Definition at line 110 of file app_flash.c.
References ast_unregister_application().
00111 { 00112 return ast_unregister_application(app); 00113 }
char* app = "Flash" [static] |
Definition at line 64 of file app_flash.c.