Version 0.1.0 from FTP

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@21 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Spencer 1999-11-15 04:57:28 +00:00
parent 34a72b4a63
commit 7bfce47ac8
1 changed files with 94 additions and 0 deletions

94
asterisk.c Executable file
View File

@ -0,0 +1,94 @@
/*
* Asterisk -- A telephony toolkit for Linux.
*
* Top level source file for asterisk
*
* Copyright (C) 1999, Adtran Inc. and Linux Support Services, LLC
*
* Mark Spencer <markster@linux-support.net>
*
* This program is free software, distributed under the terms of
* the GNU General Public License
*/
#include <unistd.h>
#include <stdlib.h>
#include <asterisk/logger.h>
#include <asterisk/options.h>
#include <stdio.h>
#include <signal.h>
#include "asterisk.h"
int option_verbose=0;
int option_debug=0;
int option_nofork=0;
int option_quiet=0;
static void urg_handler(int num)
{
/* Called by soft_hangup to interrupt the select, read, or other
system call. We don't actually need to do anything though. */
if (option_debug)
ast_log(LOG_DEBUG, "Urgent handler\n");
return;
}
static void quit_handler(int num)
{
/* Called on exit */
if (option_verbose)
ast_verbose("Asterisk ending (%d).\n", num);
else if (option_debug)
ast_log(LOG_DEBUG, "Asterisk ending (%d).\n", num);
exit(0);
}
int main(int argc, char *argv[])
{
char c;
/* Check if we're root */
if (geteuid()) {
ast_log(LOG_ERROR, "Must be run as root\n");
exit(1);
}
/* Check for options */
while((c=getopt(argc, argv, "dvq")) != EOF) {
switch(c) {
case 'd':
option_debug++;
option_nofork++;
option_verbose++;
break;
case 'v':
option_verbose++;
break;
case 'q':
option_quiet++;
break;
case '?':
exit(1);
}
}
/* Print a welcome message if desired */
if (option_verbose) {
ast_verbose( "Asterisk, Copyright (C) 1999 Adtran, Inc. and Linux Support Services, LLC\n");
ast_verbose( "Written by Mark Spencer <markster@linux-support.net>\n");
ast_verbose( "=========================================================================\n");
}
signal(SIGURG, urg_handler);
signal(SIGINT, quit_handler);
signal(SIGTERM, quit_handler);
signal(SIGHUP, quit_handler);
if (init_logger())
exit(1);
if (load_pbx())
exit(1);
if (load_modules())
exit(1);
/* We might have the option of showing a console, but for now just
do nothing... */
if (option_verbose)
ast_verbose( "Asterisk Ready.\n");
select(0,NULL,NULL,NULL,NULL);
return 0;
}