APP-COMM-Capitel/capitel/source/capitel.c

161 lines
4.4 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <stdio.h>
#ifndef unix
#include <conio.h>
#include <process.h>
#endif
#include <time.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include "../../../units/common.src/bastypes.h"
#include "../../../units/common.src/os.h"
#include "../../answer/source/answer.h"
#include "../../isdn/source.os2/isdnmsg1.h"
#include "../../../units/common.src/num2nam.h"
#include "../../common/source/version.h"
#include "../../common/source/texte.h"
#include "../../util/source/dosstart.h"
#include "../../common/source/global.h"
void capitel_number_of_call (short num)
{
if (num > 0) { printf (CALL_MAKE_MASK_WAV, num);printf (" ");}
if (num == 0) printf (" ->record <-");
if (num < 0) printf (" ->offhook<-");
}
void capitel_have_no_carrier (unsigned long sec)
{
printf (", %3ld seconds.\n", sec);
}
void capitel_remote_control (void)
{
printf (", RC.\n");
}
void capitel_connect_ind (TCapiInfo *msg)
{
struct tm *tmbuf;
time_t tod;
char cip = 'A';
if (msg->is_digital) cip = 'D';
time( &tod );
tmbuf = localtime( &tod );
//printf ("\r\norg=%s\r\n",msg->caller_org_name);
printf("%02d/%02d/%02d %02d:%02d:%02d, %s, from %s(%c)", tmbuf->tm_mday, tmbuf->tm_mon+1, tmbuf->tm_year+1900,tmbuf->tm_hour, tmbuf->tm_min, tmbuf->tm_sec, msg->called_name, msg->caller_name, cip );
return;
}
void capitel_convert (unsigned long tip)
{
if (tip) {
// printf ("Capitel disabled while converting...\n");
} else {
// printf ("Converting done...\n");
}
};
void capitel_deactivate (void)
{
printf ("Capitel deactivated!\n");
}
void capitel_exit (void)
{
printf ("Capitel stops\n");
exit (99);
}
void show_copyright(void)
{
printf ("\n");
printf (APPSHORT);
#ifdef WIN32
printf (" for WINDOWS 95 and WINDOWS/NT, Version ");
#endif
#ifdef OS2
printf (" for OS/2, Version ");
#endif
#ifdef UNIX
printf (" for UNIX, Version ");
#endif
printf (APPVER);
printf ("\n\n");
printf ("%s %s <%s>\n" , "Copyright (c) " APPDATE " by", APP_AUTOR_2, APP_CAWIM_INET );
printf (" and %s <%s>\n\n", APP_AUTOR_1, APP_WERNER_INET);
}
char c = '#';
void sigFunc ( short num, void *msg )
{
switch( num ) {
case 1 : printf ("\n\nWarning Message: %s\n\n",(char*)msg); break; // warning string
case 2 : printf ("\n\nCritical Error : %s\n\n",(char*)msg); break; // critical error string
case 3 : printf ("\n\nFatal Error : %s\n\n",(char*)msg); c = 27; break; // fatal error string
case 4 : capitel_connect_ind (msg); break; // incomming call
case 5 : capitel_number_of_call (*(short *)msg); break; // filename of incomming call
case 6 : capitel_have_no_carrier (*(unsigned long *)msg); break; // off_hook
case 7 : capitel_convert (*(unsigned long *)msg); break; // converting wav's
case 8 : break; // rescan
case 9 : capitel_remote_control (); break; // remote_control
case 10 : break; // play wav
case 11 : capitel_deactivate (); break; // deactivate
case 12 : capitel_exit (); break; // exit capitel
default : printf ("Unknown capitel_sigfunc: %d\n", num); break;
}
return;
}
int main(void)
{
char device[100];
setbuf( stdout, NULL );
show_copyright();
printf("Press ESC to abort or 'C' to clear screen or 'R' to record new welcome text.\n");
printf("Starting answering machine on ");
if(!answer_init( sigFunc, 1, LANGUAGE_ENG)) {
answer_name_of_interface(device);
printf ("%s ...\n\n",device);
answer_listen();
while( c != 27 ) {
OsSleep (300);
#ifdef UNIX
c = toupper(getchar());
#else
c = toupper(getch());
#endif
switch (c) {
case 'C' : printf("");
printf("Press ESC to abort or 'C' to clear screen or 'R' to record new welcome text.\n\n");
break;
case 'R' : answer_record_welcome(DEFALWFILE);
printf("\n\nThe next imcomming call will be stored as new welcome text.\n");
break;
}
}
answer_exit();
printf("\n\nClosing %s ...\n", device);
while (answer_cannot_close()){
OsSleep (300);
}
} else {
printf("ERROR: Can't initialize comm-device!\n");
}
return (0);
}