Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

asterisk.h File Reference

Go to the source code of this file.

Defines

#define DEFAULT_LANGUAGE   "en"
#define AST_CONFIG_MAX_PATH   255
#define AST_CONFIG_DIR   ASTETCDIR
#define AST_RUN_DIR   ASTVARRUNDIR
#define AST_SOCKET   ASTVARRUNDIR "/asterisk.ctl"
#define AST_PID   ASTVARRUNDIR "/asterisk.pid"
#define AST_MODULE_DIR   ASTMODDIR
#define AST_SPOOL_DIR   ASTSPOOLDIR
#define AST_VAR_DIR   ASTVARLIBDIR
#define AST_DATA_DIR   ASTDATADIR
#define AST_LOG_DIR   ASTLOGDIR
#define AST_AGI_DIR   ASTAGIDIR
#define AST_KEY_DIR   ASTVARLIBDIR "/keys"
#define AST_DB   ASTVARLIBDIR "/astdb"
#define AST_TMP_DIR   ASTSPOOLDIR "/tmp"
#define AST_SYMBOLIC_NAME   "asterisk"
#define AST_CONFIG_FILE   ASTCONFPATH
#define AST_SOUNDS   AST_DATA_DIR "/sounds"
#define AST_IMAGES   AST_DATA_DIR "/images"

Functions

int load_modules (void)
int load_pbx (void)
int init_logger (void)
void close_logger (void)
int init_framer (void)
int reload_logger (int)
int term_init (void)
int astdb_init (void)


Define Documentation

#define AST_AGI_DIR   ASTAGIDIR
 

Definition at line 29 of file asterisk.h.

#define AST_CONFIG_DIR   ASTETCDIR
 

Definition at line 20 of file asterisk.h.

Referenced by ast_save().

#define AST_CONFIG_FILE   ASTCONFPATH
 

Definition at line 35 of file asterisk.h.

#define AST_CONFIG_MAX_PATH   255
 

Definition at line 19 of file asterisk.h.

#define AST_DATA_DIR   ASTDATADIR
 

Definition at line 27 of file asterisk.h.

#define AST_DB   ASTVARLIBDIR "/astdb"
 

Definition at line 31 of file asterisk.h.

#define AST_IMAGES   AST_DATA_DIR "/images"
 

Definition at line 38 of file asterisk.h.

#define AST_KEY_DIR   ASTVARLIBDIR "/keys"
 

Definition at line 30 of file asterisk.h.

#define AST_LOG_DIR   ASTLOGDIR
 

Definition at line 28 of file asterisk.h.

#define AST_MODULE_DIR   ASTMODDIR
 

Definition at line 24 of file asterisk.h.

#define AST_PID   ASTVARRUNDIR "/asterisk.pid"
 

Definition at line 23 of file asterisk.h.

#define AST_RUN_DIR   ASTVARRUNDIR
 

Definition at line 21 of file asterisk.h.

#define AST_SOCKET   ASTVARRUNDIR "/asterisk.ctl"
 

Definition at line 22 of file asterisk.h.

#define AST_SOUNDS   AST_DATA_DIR "/sounds"
 

Definition at line 37 of file asterisk.h.

#define AST_SPOOL_DIR   ASTSPOOLDIR
 

Definition at line 25 of file asterisk.h.

#define AST_SYMBOLIC_NAME   "asterisk"
 

Definition at line 33 of file asterisk.h.

#define AST_TMP_DIR   ASTSPOOLDIR "/tmp"
 

Definition at line 32 of file asterisk.h.

#define AST_VAR_DIR   ASTVARLIBDIR
 

Definition at line 26 of file asterisk.h.

#define DEFAULT_LANGUAGE   "en"
 

Definition at line 17 of file asterisk.h.


Function Documentation

int astdb_init void   ) 
 

Definition at line 418 of file db.c.

References ast_cli_register().

Referenced by main().

void close_logger void   ) 
 

Definition at line 461 of file logger.c.

References ast_mutex_lock, ast_mutex_unlock, and free.

00462 {
00463    struct msglist *m, *tmp;
00464 
00465    ast_mutex_lock(&msglist_lock);
00466    m = list;
00467    while(m) {
00468       if (m->msg) {
00469          free(m->msg);
00470       }
00471       tmp = m->next;
00472       free(m);
00473       m = tmp;
00474    }
00475    list = last = NULL;
00476    msgcnt = 0;
00477    ast_mutex_unlock(&msglist_lock);
00478    return;
00479 }

int init_framer void   ) 
 

Definition at line 800 of file frame.c.

References ast_cli_register().

Referenced by main().

00801 {
00802 #ifdef TRACE_FRAMES
00803    ast_cli_register(&cli_frame_stats);
00804 #endif
00805    ast_cli_register(&cli_show_codecs);
00806    ast_cli_register(&cli_show_codecs_audio);
00807    ast_cli_register(&cli_show_codecs_video);
00808    ast_cli_register(&cli_show_codecs_image);
00809    ast_cli_register(&cli_show_codec_n);
00810    return 0;   
00811 }

int init_logger void   ) 
 

Definition at line 429 of file logger.c.

References ast_cli_register(), ast_config_AST_LOG_DIR, ast_log(), ast_verbose(), EVENTLOG, LOG_ERROR, LOG_EVENT, and option_verbose.

Referenced by main().

00430 {
00431    char tmp[256];
00432 
00433    /* auto rotate if sig SIGXFSZ comes a-knockin */
00434    (void) signal(SIGXFSZ,(void *) handle_SIGXFSZ);
00435 
00436    /* register the relaod logger cli command */
00437    ast_cli_register(&reload_logger_cli);
00438    ast_cli_register(&rotate_logger_cli);
00439 
00440    /* initialize queue logger */
00441    queue_log_init();
00442 
00443    /* create the eventlog */
00444    mkdir((char *)ast_config_AST_LOG_DIR, 0755);
00445    snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
00446    eventlog = fopen((char *)tmp, "a");
00447    if (eventlog) {
00448       init_logger_chain();
00449       ast_log(LOG_EVENT, "Started Asterisk Event Logger\n");
00450       if (option_verbose)
00451          ast_verbose("Asterisk Event Logger Started %s\n",(char *)tmp);
00452       return 0;
00453    } else 
00454       ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
00455 
00456    /* create log channels */
00457    init_logger_chain();
00458    return -1;
00459 }

int load_modules void   ) 
 

Definition at line 371 of file loader.c.

References ast_config_AST_MODULE_DIR, ast_destroy(), ast_load(), ast_load_resource(), ast_log(), AST_MODULE_CONFIG, ast_true(), ast_variable_browse(), ast_variable_retrieve(), ast_verbose(), COLOR_BRWHITE, LOG_DEBUG, LOG_WARNING, ast_variable::name, ast_variable::next, option_debug, option_quiet, option_verbose, term_color(), ast_variable::value, and VERBOSE_PREFIX_1.

Referenced by main().

00372 {
00373    struct ast_config *cfg;
00374    struct ast_variable *v;
00375    char tmp[80];
00376    if (option_verbose) 
00377       ast_verbose( "Asterisk Dynamic Loader Starting:\n");
00378    cfg = ast_load(AST_MODULE_CONFIG);
00379    if (cfg) {
00380       /* Load explicitly defined modules */
00381       v = ast_variable_browse(cfg, "modules");
00382       while(v) {
00383          if (!strcasecmp(v->name, "load")) {
00384             if (option_debug && !option_verbose)
00385                ast_log(LOG_DEBUG, "Loading module %s\n", v->value);
00386             if (option_verbose) {
00387                ast_verbose( VERBOSE_PREFIX_1 "[%s]", term_color(tmp, v->value, COLOR_BRWHITE, 0, sizeof(tmp)));
00388                fflush(stdout);
00389             }
00390             if (ast_load_resource(v->value)) {
00391                ast_log(LOG_WARNING, "Loading module %s failed!\n", v->value);
00392                if (cfg)
00393                   ast_destroy(cfg);
00394                return -1;
00395             }
00396          }
00397          v=v->next;
00398       }
00399    }
00400    if (!cfg || ast_true(ast_variable_retrieve(cfg, "modules", "autoload"))) {
00401       /* Load all modules */
00402       DIR *mods;
00403       struct dirent *d;
00404       int x;
00405       /* Make two passes.  First, load any resource modules, then load the others. */
00406       for (x=0;x<2;x++) {
00407          mods = opendir((char *)ast_config_AST_MODULE_DIR);
00408          if (mods) {
00409             while((d = readdir(mods))) {
00410                /* Must end in .so to load it.  */
00411                if ((strlen(d->d_name) > 3) && (x || !strncasecmp(d->d_name, "res_", 4)) && 
00412                    !strcasecmp(d->d_name + strlen(d->d_name) - 3, ".so") &&
00413                   !ast_resource_exists(d->d_name)) {
00414                   /* It's a shared library -- Just be sure we're allowed to load it -- kinda
00415                      an inefficient way to do it, but oh well. */
00416                   if (cfg) {
00417                      v = ast_variable_browse(cfg, "modules");
00418                      while(v) {
00419                         if (!strcasecmp(v->name, "noload") &&
00420                             !strcasecmp(v->value, d->d_name)) 
00421                            break;
00422                         v = v->next;
00423                      }
00424                      if (v) {
00425                         if (option_verbose) {
00426                            ast_verbose( VERBOSE_PREFIX_1 "[skipping %s]\n", d->d_name);
00427                            fflush(stdout);
00428                         }
00429                         continue;
00430                      }
00431                      
00432                   }
00433                    if (option_debug && !option_verbose)
00434                      ast_log(LOG_DEBUG, "Loading module %s\n", d->d_name);
00435                   if (option_verbose) {
00436                      ast_verbose( VERBOSE_PREFIX_1 "[%s]", term_color(tmp, d->d_name, COLOR_BRWHITE, 0, sizeof(tmp)));
00437                      fflush(stdout);
00438                   }
00439                   if (ast_load_resource(d->d_name)) {
00440                      ast_log(LOG_WARNING, "Loading module %s failed!\n", d->d_name);
00441                      if (cfg)
00442                         ast_destroy(cfg);
00443                      return -1;
00444                   }
00445                }
00446             }
00447             closedir(mods);
00448          } else {
00449             if (!option_quiet)
00450                ast_log(LOG_WARNING, "Unable to open modules directory %s.\n", (char *)ast_config_AST_MODULE_DIR);
00451          }
00452       }
00453    } 
00454    ast_destroy(cfg);
00455    return 0;
00456 }

int load_pbx void   ) 
 

Definition at line 4898 of file pbx.c.

References ast_cli_register(), AST_LIST_HEAD_INIT, ast_log(), ast_register_application(), ast_verbose(), LOG_ERROR, option_verbose, and VERBOSE_PREFIX_1.

Referenced by main().

04899 {
04900    int x;
04901 
04902    /* Initialize the PBX */
04903    if (option_verbose) {
04904       ast_verbose( "Asterisk PBX Core Initializing\n");
04905       ast_verbose( "Registering builtin applications:\n");
04906    }
04907         AST_LIST_HEAD_INIT(&globals);
04908    ast_cli_register(&show_applications_cli);
04909    ast_cli_register(&show_application_cli);
04910    ast_cli_register(&show_dialplan_cli);
04911    ast_cli_register(&show_switches_cli);
04912 
04913    /* Register builtin applications */
04914    for (x=0; x<sizeof(builtins) / sizeof(struct pbx_builtin); x++) {
04915       if (option_verbose)
04916          ast_verbose( VERBOSE_PREFIX_1 "[%s]\n", builtins[x].name);
04917       if (ast_register_application(builtins[x].name, builtins[x].execute, builtins[x].synopsis, builtins[x].description)) {
04918          ast_log(LOG_ERROR, "Unable to register builtin application '%s'\n", builtins[x].name);
04919          return -1;
04920       }
04921    }
04922    return 0;
04923 }

int reload_logger int   ) 
 

Definition at line 296 of file logger.c.

References ast_config_AST_LOG_DIR, AST_CONFIG_MAX_PATH, ast_log(), ast_mutex_lock, ast_mutex_unlock, ast_verbose(), EVENTLOG, logchannel::filename, logchannel::fileptr, LOG_ERROR, LOG_EVENT, logchannel::next, and option_verbose.

Referenced by ast_log(), and main().

00297 {
00298    char old[AST_CONFIG_MAX_PATH] = "";
00299    char new[AST_CONFIG_MAX_PATH];
00300    struct logchannel *f;
00301    FILE *myf;
00302 
00303    int x;
00304    ast_mutex_lock(&loglock);
00305    if (eventlog) 
00306       fclose(eventlog);
00307    else 
00308       rotate = 0;
00309    eventlog = NULL;
00310 
00311 
00312 
00313    mkdir((char *)ast_config_AST_LOG_DIR, 0755);
00314    snprintf(old, sizeof(old), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
00315 
00316    if(rotate) {
00317       for(x=0;;x++) {
00318          snprintf(new, sizeof(new), "%s/%s.%d", (char *)ast_config_AST_LOG_DIR, EVENTLOG,x);
00319          myf = fopen((char *)new, "r");
00320          if(myf) 
00321             fclose(myf);
00322          else
00323             break;
00324       }
00325    
00326       /* do it */
00327       if (rename(old,new))
00328          fprintf(stderr, "Unable to rename file '%s' to '%s'\n", old, new);
00329    }
00330 
00331    eventlog = fopen(old, "a");
00332 
00333    f = logchannels;
00334    while(f) {
00335       if (f->fileptr && (f->fileptr != stdout) && (f->fileptr != stderr)) {
00336          fclose(f->fileptr);
00337          f->fileptr = NULL;
00338          if(rotate) {
00339             strncpy(old, f->filename, sizeof(old) - 1);
00340    
00341             for(x=0;;x++) {
00342                snprintf(new, sizeof(new), "%s.%d", f->filename, x);
00343                myf = fopen((char *)new, "r");
00344                if (myf) {
00345                   fclose(myf);
00346                } else {
00347                   break;
00348                }
00349             }
00350        
00351             /* do it */
00352             if (rename(old,new))
00353                fprintf(stderr, "Unable to rename file '%s' to '%s'\n", old, new);
00354          }
00355       }
00356       f = f->next;
00357    }
00358 
00359    ast_mutex_unlock(&loglock);
00360 
00361    queue_log_init();
00362 
00363    if (eventlog) {
00364       init_logger_chain();
00365       ast_log(LOG_EVENT, "Restarted Asterisk Event Logger\n");
00366       if (option_verbose)
00367          ast_verbose("Asterisk Event Logger restarted\n");
00368       return 0;
00369    } else 
00370       ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
00371    init_logger_chain();
00372    pending_logger_reload = 0;
00373    return -1;
00374 }

int term_init void   ) 
 

Definition at line 32 of file term.c.

References ATTR_BRIGHT, ATTR_RESET, COLOR_BLACK, COLOR_BROWN, COLOR_WHITE, ESC, option_console, option_nocolor, and option_nofork.

Referenced by main().

00033 {
00034    char *term = getenv("TERM");
00035    if (!term)
00036       return 0;
00037    if (!option_console || option_nocolor || !option_nofork)
00038       return 0;
00039    if (!strncasecmp(term, "linux", 5)) 
00040       vt100compat = 1; else
00041    if (!strncasecmp(term, "xterm", 5))
00042       vt100compat = 1; else
00043    if (!strncasecmp(term, "Eterm", 5))
00044       vt100compat = 1; else
00045    if (!strncasecmp(term, "crt", 3))
00046       vt100compat = 1; else
00047    if (!strncasecmp(term, "vt", 2))
00048       vt100compat = 1;
00049    if (vt100compat) {
00050       /* Make commands show up in nice colors */
00051       snprintf(prepdata, sizeof(prepdata), "%c[%d;%d;%dm", ESC, ATTR_BRIGHT, COLOR_BROWN, COLOR_BLACK + 10);
00052       snprintf(enddata, sizeof(enddata), "%c[%d;%d;%dm", ESC, ATTR_RESET, COLOR_WHITE, COLOR_BLACK + 10);
00053       snprintf(quitdata, sizeof(quitdata), "%c[0m", ESC);
00054    }
00055    return 0;
00056 }


Generated on Sat Nov 25 19:09:53 2006 for Asterisk by  doxygen 1.4.2