Morsecode application. More...
#include "asterisk.h"
#include "asterisk/file.h"
#include "asterisk/channel.h"
#include "asterisk/pbx.h"
#include "asterisk/module.h"
#include "asterisk/indications.h"
Go to the source code of this file.
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
static int | load_module (void) |
static int | morsecode_exec (struct ast_channel *chan, void *data) |
static void | playtone (struct ast_channel *chan, int tone, int len) |
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 = "Morse code" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } |
static char * | app_morsecode = "Morsecode" |
static struct ast_module_info * | ast_module_info = &__mod_info |
static char * | morsecode [] |
Morsecode application.
Definition in file app_morsecode.c.
static void __reg_module | ( | void | ) | [static] |
Definition at line 184 of file app_morsecode.c.
static void __unreg_module | ( | void | ) | [static] |
Definition at line 184 of file app_morsecode.c.
static int load_module | ( | void | ) | [static] |
Definition at line 179 of file app_morsecode.c.
References ast_register_application_xml, and morsecode_exec().
{ return ast_register_application_xml(app_morsecode, morsecode_exec); }
static int morsecode_exec | ( | struct ast_channel * | chan, |
void * | data | ||
) | [static] |
Definition at line 121 of file app_morsecode.c.
References ast_channel_lock, ast_channel_unlock, ast_log(), ast_strlen_zero(), LOG_WARNING, pbx_builtin_getvar_helper(), and playtone().
Referenced by load_module().
{ int res=0, ditlen, tone; char *digit; const char *ditlenc, *tonec; if (ast_strlen_zero(data)) { ast_log(LOG_WARNING, "Syntax: Morsecode(<string>) - no argument found\n"); return 0; } /* Use variable MORESEDITLEN, if set (else 80) */ ast_channel_lock(chan); ditlenc = pbx_builtin_getvar_helper(chan, "MORSEDITLEN"); if (ast_strlen_zero(ditlenc) || (sscanf(ditlenc, "%30d", &ditlen) != 1)) { ditlen = 80; } ast_channel_unlock(chan); /* Use variable MORSETONE, if set (else 800) */ ast_channel_lock(chan); tonec = pbx_builtin_getvar_helper(chan, "MORSETONE"); if (ast_strlen_zero(tonec) || (sscanf(tonec, "%30d", &tone) != 1)) { tone = 800; } ast_channel_unlock(chan); for (digit = data; *digit; digit++) { int digit2 = *digit; char *dahdit; if (digit2 < 0) { continue; } for (dahdit = morsecode[digit2]; *dahdit; dahdit++) { if (*dahdit == '-') { playtone(chan, tone, 3 * ditlen); } else if (*dahdit == '.') { playtone(chan, tone, 1 * ditlen); } else { /* Account for ditlen of silence immediately following */ playtone(chan, 0, 2 * ditlen); } /* Pause slightly between each dit and dah */ playtone(chan, 0, 1 * ditlen); } /* Pause between characters */ playtone(chan, 0, 2 * ditlen); } return res; }
static void playtone | ( | struct ast_channel * | chan, |
int | tone, | ||
int | len | ||
) | [static] |
Definition at line 112 of file app_morsecode.c.
References ast_playtones_start(), ast_playtones_stop(), and ast_safe_sleep().
Referenced by action_bridge(), and morsecode_exec().
{ char dtmf[20]; snprintf(dtmf, sizeof(dtmf), "%d/%d", tone, len); ast_playtones_start(chan, 0, dtmf, 0); ast_safe_sleep(chan, len); ast_playtones_stop(chan); }
static int unload_module | ( | void | ) | [static] |
Definition at line 174 of file app_morsecode.c.
References ast_unregister_application().
{ return ast_unregister_application(app_morsecode); }
struct ast_module_info __MODULE_INFO_SECTION __mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Morse code" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } [static] |
Definition at line 184 of file app_morsecode.c.
char* app_morsecode = "Morsecode" [static] |
Definition at line 66 of file app_morsecode.c.
struct ast_module_info* ast_module_info = &__mod_info [static] |
Definition at line 184 of file app_morsecode.c.
char* morsecode[] [static] |
Definition at line 68 of file app_morsecode.c.