Original Source Code.

master
Martin Iturbide 2013-04-01 12:24:20 -05:00
parent 62974c2064
commit a1429fdf0e
198 changed files with 48485 additions and 0 deletions

BIN
answer/obj.unx/answer.o Normal file

Binary file not shown.

BIN
answer/obj.win/answer.obj Normal file

Binary file not shown.

896
answer/source/answer.c Normal file
View File

@ -0,0 +1,896 @@
void sigFunc( short num, void *msg );
#include <stdio.h>
#ifndef UNIX
#include <conio.h>
#include <io.h>
#include <direct.h>
#include <process.h>
#endif
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <time.h>
#include <fcntl.h>
#include "../../../units/common.src/bastypes.h"
#include "../../../units/common.src/os.h"
#include "../../isdn/source/isdn.h"
#include "../../isdn/source.os2/isdnmsg1.h"
#include "../../../units/common.src/num2nam.h"
#include "../../wave/source/alw2wav.h"
#include "../../wave/source/wav2alw.h"
#include "answer.h"
#include "../../../units/common.src/util.h"
#include "../../util/source/vorwahl.h"
#include "../../util/source/dtmf.h"
#include "../../util/source/dosstart.h"
#include "../../util/source/silence.h"
#include "../../../units/common.src/cfg_file.h"
#include "../../common/source/global.h"
#include "../../util/source/register.h"
#define DEF_CTI_MSG_ENG "CapiTel CTI Window"
#define DEF_DISABLE_MSG_ENG "Please register.\n\nCapitel disabled!"
#define DEF_REG_MSG_ENG "Please register CapiTel!\n\n(or set ANSWER DELAY to 999 to use CapiTel as a freeware Caller-ID)"
#define DEF_CTI_MSG_GER "CapiTel CTI Fenster"
#define DEF_DISABLE_MSG_GER "Bitte registreren.\n\nCapitel deaktiviert!"
#define DEF_REG_MSG_GER "Bitte registrieren Sie CapiTel!\n\n(oder setzen Sie VERZOEGERUNG auf 999 um CapiTel als Freeware Caller-ID zu benutzen)"
char status_isdn=0;
char status_conv=0;
FILE *fh_ansage=NULL, *fh_ziel=NULL, *fh_fern=NULL;
char fh_ziel_name[512];
char cbuffer[14*1024];
char next_is_welcome=0;
void (*capitel_signal_function)( short, void * );
char help_str[300];
char welcome_file[300];
char welcomeFile[300];
unsigned long calllength;
char help_welcome_file[300];
int raute;
int loesch;
int fernabfrage;
int any_dtmf_detected;
int dtmf_job;
char dtmf_str[200];
char act_call_name[300];
unsigned long use_ulaw_codec=0;
char msg_str_cti[300];
char msg_str_reg[300];
char msg_str_disable[300];
tU32 play_beep=0;
Thread_Id_Typ rescan_thread_id = 0;
unsigned long rescan_time_var = 0;
unsigned long do_dtmf_find = 1; // default on
unsigned long do_silence_find = 0; // default on
short conn_ind_cnt = 0;
short do_nerv_message = 1;
short beep_cnt;
short max_beep_cnt;
Thread_Id_Typ beep_thread_id = 0;
short num_calls = 0;
char *beepdata= "\x43\x69\x01\xa1\x88\x70\x60\x46\x66\xf8\x18\x5f\x91"
"\xad\x89\x80\xd0\x98\x57\x79\x07\x5b\xc9\xc1\xd9\xc8"
"\xac\x90\xcb\x31\x31\x17\xc6\x6e\xe7\x12\x60\x70\x88"
"\x81\xed\x01\x16\x40\x58\x92\xeb\x28\x68\xd7\x91\x91"
"\x2f\x70\xac\xf8\x89\x59\xc7\xea\xa9\x21\x29\xa0\x2c"
"\xb0\x47\x11\x31\x67\xe8\x46\x53\xbe\xe0\xc0\x9e\x31"
"\xed\x21\xb8\xf0\xa0\x0b\x9f\x26\x86\x09\x71\x41\xde"
"\x50\xac\x28\xd9\x61\xf7\x1a\xc7\xf9\xdf\x60\xac\x60"
"\xb9\xad\x31\x83\x78\xe8\xaa\x7e\xa0\xe0\x13\x91\x2d"
"\xb9\xe0\x10\x58\x3f\x97\x22\x6e\x49\x31\xe1\x68\x2c"
"\xd0\x1e\x81\x01\x77\x8e\xcf\xe9\xaa\x00\x50\x78\xe1"
"\x2d\x41\x7e\x20\x48\x7a\x8e\xf8\xf8\xf7\xd1\x51\xb7"
"\xb0\x50\x78\x77\x09\xf3\xfa\xc9\xc1\x39\xd8\x2c\x70"
"\x6f\x31\x41\xc7\x06\xba\x47\x0e\x00\x70\x96\x41\xed"
"\x61\x28\x00\xf8\xca\xfa\x68\x28\x89\xd1\x71\x3a\x90"
"\xac\x08\xc9\x99\x1f\xab\x89\xe1\x97\x60\x2c\xc0\x29"
"\x11\xb1\xbf\x28\xde\x4f\x26\x80\xc0\xa2\x71\x2d\xd9"
"\x98\x30\x98\x23\xaf\x36\x86\x39\x91\xc1\x96\xac\x50"
"\x36\xa1\x21\x87\xca\xd7\x99\xef\x00\xac\x20\x19\xad"
"\x41\x4a\x38\x96\x9b\x66\xe0\x20\x27\xd1\xad\xe9\x80"
"\x90\x78\x1f\x07\x4e\xae\x79\xf1\xa1\x38\x2c\x90\xa2"
"\x01\x81\x07\xae\x67\x89\x42\x40\xd0\x08\x81\x2d\x81"
"\x86\x20\x68\xea\xa6\xd8\xf8\x29\x51\xd1\x4f\x30\xd0"
"\x48\x17\xe9\xeb\x2a\xf9\x41\x09\x20\xec\x30\x87\xf1"
"\x01\xa7\xe6\x33\xf7\x26\x40\xf0\xe6\x31\x2d\x21\x08"
"\x00\x48\xab\xee\x48\xa8\xb9\x51\x31\x9e\xd0\xd0\xa8"
"\x49\x39\x6f\x7b\xb9\x61\xc7\x00\x2c\x80\x49\xd1\xc1"
"\x33\xa8\x52\x7f\xb6\xc0\xc0\x03\x11\x2d\xb9\xa0\xb0"
"\xb8\x43\x0b\x56\x26\x19\x11\x81\x68\xac\x10\xde\xa1"
"\x59\xdf\x4b\x69\x19\x3b\xb0\xac\x18\x21\xad\x81\x2e"
"\xb8\x06\xa3\xf6\x60\x20\xf7\x51\xad\x37\x00\x70\xc8"
"\xa7\xdf\xa6\xe2\x59\x71\xd9\xd8\x2c\xf0\x73\x01\xe1"
"\x5f\xe2\xf7\x09\xfe\x30\xd0\x28\xc1\x2d\xe1\x76\xa0"
"\xa8\xab\xb6\xa0\xb8\xc9\xad\x91\x6b\xf0\x90\xe8\xa9"
"\xd7\x5a\x5b\x59\xb1\xe9\x80\xec\xc0\xd7\xf1\x61\x8f"
"\x5e\x3f\x77\x36\x30\xf0\xee\x71\x2d\x99\xb8\x80\x68"
"\x6b\xa6\xf8\xd6\x19\xad\xb1\xb6\x50\x90\x46\xb9\xc9"
"\x83\x13\x99\x61\x1f\x40\x2c\x20\x79\x11\x61\xea\xd6"
"\xca\x7f\xa8\xb0\x00\xdf\x51\xad\xe9\x20\x40\x88\xd3"
"\xe2\xe8\x3e\x21\x51\xe1\xb8\x2c\x70\xe2\x21\x99\x0f"
"\x43\x49\xd9\x42\xf0\xac\xb8\x61\xad\xe1\x5e\xc8\x1e"
"\xa3\x28\x00\xa0\xe9\xad\x51\x1f\xc0\x30\xe8\xe7\xef"
"\x86\xeb\xe1\x91\xf9\x20\x2c\xb0\xa7\x01\xa1\x8f\xca"
"\xa9\x09\xc6\x70\xd0\xb6\xb1\xad\x59\xa8\x58\x36\x2b"
"\xd6\xe0\xc8\x79\x2d\x71\x6e\x70\xf0\x76\xa9\xb7\x12"
"\xef\x21\xb1\x97\xc0\xec\x80\x69\x31\x21\xa3\x3e\xe7"
"\xf7\x28\x70\x30\x8b\x11\xad\x49\x78\x60\x56\xbb\xc6"
"\x98\xb6\x21\xad\xc1\x28\x50\xf0\x7e\x39\xe9\x8b\x4f"
"\xa1\x61\x03\xf0\x2c\xd8\x59\x11\x21\x32\xf6\xe3\xff"
"\x88\x30\x80\xf7\xad\xad\x77\xe0\xc0\x56\x2f\x0e\x68"
"\x92\x61\x51\xa1\x18\x2c\x30\x1b\xa1\xb9\x63\xef\xf9"
"\xd9\x5e\x90\xac\x68\x01\x51\x59\x86\x88\x52\x23\x88"
"\xc0\xd8\xb9\x2d\x11\xe3\x40\x40\x76\xe7\xfb\xb6\x43"
"\x81\x91\x09\x80\xec\xc0\x47\x01\x99\x63\x3b\x69\x89"
"\xa8\x10\x10\x3e\xf1\xad\xf9\xe8\x98\x26\x6b\xe8\xe0"
"\x68\xa1\x2d\x31\x66\x90\x30\x66\xa9\x27\x4e\x7f\x61"
"\xb1\xe7\x30\xec\xe0\x49\x31\xd9\xaa\xae\x37\xb7\x08"
"\x90\xb0\x3f\xd1\xad\xe9\x98\x20\x46\x4b\x16\x18\xe6"
"\x61\x2d\x81\xc8\xac\xb0\xf2\xb9\x17\x1a\xa7\x21\x61"
"\x62\x90\x2c\x38\x21\x91\xd9\x6e\x06\x4f\xff\xb8\xf0"
"\x60\x69\x2d\xd1\x27\x60\x80\xb6\x13\xe6\x08\x4a\x01"
"\x51\x99\x20\x2c\x40\x0f\xa1\x89\x8b\x9f\xd9\x19\x36"
"\xd0\xac\xf6\x41\xd1\x79\x46\x28\xaa\x5b\xb8\x40\xf8"
"\xd9\x2d\x71\x42\xb0\xc0\x06\x27\x82\x96\xcf\xc1\x91"
"\x57\x40\xec\x60\xd7\x81\xb9\xcb\x53\x49\x89\x88\xd0"
"\x90\x2a\x91\x51\x09\x68\xb8\x0e\x6a\xc8\x60\x56\x61"
"\x2d\x41\x56\x90\x40\x3e\x17\x2f\xde\x67\x01\x41\x53"
"\x70\x2c\xd8\xf9\xb1\xf9\x3a\x4a\xa9\x47\x38\x10\x40"
"\x37\xad\x51\x77\x18\xa0\x26\xaa\xe8\x58\xbe\xc1\x2d"
"\x21\x98\xac\xc0\xaa\xc9\xc7\x42\xc7\x61\x61\x9e\xd0"
"\x2c\x68\x61\x71\xf9\x4e\x9e\xe7\x0f\x98\x70\x20\xb9"
"\x2d\x11\x33\x80\xe0\xe6\xe3\xf6\x48\x23\x41\x51\x49"
"\x80\x2c\x80\x27\x59\xa9\x2a\x87\xa1\x99\xa8\x50\xd0"
"\x7e\xb1\x11\x49\x36\x96\xc3\x0b\x98\xb0\x48\x21\xed"
"\x31\x26\xb0\x80\xde\x9f\xfe\xd6\x27\xb1\x91\xc7\x30"
"\x2c\x20\x69\x61\x89\xab\xdf\x79\x69\xb8\xac\xf0\xcf"
"\x11\xd1\xa9\x08\xc8\x02\x22\x78\x80\x36\x01\x2d\x81"
"\x88\x90\x00\x72\x77\xcb\xa6\xf7\x41\x41\x4a\x10\x2c"
"\xb8\xd9\x41\xc9\xda\x63\x69\x87\xd8\xd0\x00\x29\xad"
"\x11\xa7\x58\x98\xbe\xa2\xc8\xa0\x62\xb1\x2d\xd9\xa0"
"\xac\x80\x73\x09\x5f\xb2\xd7\x01\xe1\x46\x50\xac\x76"
"\x81\xf1\xc9\x7e\x2e\xc7\xf3\xa0\x90\x58\x19\x2d\xf1"
"\xa2\x80\x20\x9e\x6b\xa8\xb8\xbf\xf1\x51\xe9\xc0\xac"
"\xe0\x37\xd9\xf7\x6a\x97\xe1\x79\x08\xac\x10\xda\xf1"
"\x91\xe9\x76\x46\x6f\x1a\xa0\x30\x88\x61\xed\x41\x76"
"\xb0\xe0\x6e\xcf\x66\x56\xf7\xf1\x71\xbf\x70\x2c\x98"
"\xc9\xe1\x29\x2a\x07\x19\xa9\x18\xac\x30\x07\xd1\x91"
"\x47\xc8\xe8\x8a\x2e\x58\x00\xa6\x91\x81\x5a\x6a\xa2"
"\x0e\xf2\xae\xb2\x82\xa2\x9a\x3a\x4a\x6a\x8a\xab\xea"
"\x6b\x2a\x0b\xaa\xcb\xab\x4b\xab\x4b\xab\xcb\xab\x0b"
"\xab\x8b\xab\x6b\xaa\x6b\xaa\xeb\xaa\x2b";
unsigned long beep_on_calls_freq;
unsigned long beep_on_calls_dura;
unsigned long beep_on_calls_delay;
char dtmf_setcallback = 0;
extern short is_callback;
//****************************************************************************
void _Optlink capitel_rescan( void *arg)
{
for (;;) {
OsSleep (1000*rescan_time_var);
capitel_signal_function( 8, NULL); // neu scannen
}
}
void _Optlink boot (void *arg)
{
while (comm_connected()) OsSleep (500);
OsSleep (3000);
OsBoot();
}
void _Optlink quit (void *arg)
{
while (comm_connected()) OsSleep (500);
OsSleep (3000);
capitel_signal_function( 12, NULL);
}
//short answer_version_expired(void)
//{
// long expdate = 828398801 + 14 * 2592000; /* june 1st 97 */
// time_t tod;
//
// time( &tod );
// if ( tod > expdate ) return 1;
// return 0;
//}
short iswav( char *filename )
{
FILE *fh;
char str[5] = "1234";
if( (fh = fopen( filename, "rb" )) != NULL ) {
fread( &str, 4, 1, fh );
fclose( fh );
fh = NULL;
str[4] = 0;
}
return !strcmp( str, "RIFF" );
}
long check_duration( char *filename )
{
FILE *fh = NULL;
long duration = 0;
char str[256];
if ((fh = fopen( filename, "r" )) != NULL) {
fgets( str, sizeof( str ), fh ); /* dummy read */
fgets( str, sizeof( str ), fh ); /* dummy read */
fgets( str, sizeof( str ), fh ); /* dummy read */
fgets( str, sizeof( str ), fh ); /* duration in seconds */
duration = (long) atoi( str );
fclose( fh );
fh = NULL;
}
return duration;
}
void _Optlink convert_all_alw2wav( void *arg)
{
FileInfoTyp FileInfo;
short rc;
// short max=0;
short i;
char helpstr[200];
short bitmode = 0;
bitmode = (!config_file_read_ulong(STD_CFG_FILE,GENERATE_16_BIT_WAVES,GENERATE_16_BIT_WAVES_DEF));
status_conv = 1;
rc = OsFindFirst(&FileInfo,CALL_MASK_WAV);
while( rc == 0 )
{
if( util_file_size(FileInfo.FileName ))
{
if( !iswav( FileInfo.FileName ) ) {
strcpy (helpstr,FileInfo.FileName);
for( i=0 ; (helpstr[i]!='.')&&(i<(short)strlen(helpstr)) ; i++ );
helpstr[i] = 0;
strcat( helpstr, ALW_EXT );
util_copy_file (FileInfo.FileName, helpstr);
rename( FileInfo.FileName, CONV_TMP );
alw2wav( CONV_TMP, FileInfo.FileName, bitmode);
remove( CONV_TMP );
}
}
rc = OsFindNext(&FileInfo);
}
OsFindClose(&FileInfo);
if (fernabfrage || dtmf_job) {
capitel_signal_function( 9, ""); // rufende von fernabfrage -> nicht anzeigen
remove (act_call_name); // *.wav
for( i=0 ; (act_call_name[i]!='.')&&(i<(short)strlen(act_call_name)) ; i++ );
act_call_name[i] = 0;
strcat( act_call_name, ALW_EXT);
remove (act_call_name); // *.alw
for( i=0 ; (act_call_name[i]!='.')&&(i<(short)strlen(act_call_name)) ; i++ );
act_call_name[i] = 0;
strcat( act_call_name, IDX_EXT );
remove (act_call_name); // *.idx
if (loesch && fernabfrage) {
rc = OsFindFirst(&FileInfo,CALL_MASK_IDX);
while( rc == 0 ) {
strcpy (helpstr,FileInfo.FileName);
if( check_duration( helpstr ) > 0 )
{
remove (helpstr); // *.idx
for( i=0 ; (helpstr[i]!='.')&&(i<(short)strlen(helpstr)) ; i++ );
helpstr[i] = 0;
strcat( helpstr, ALW_EXT );
remove (helpstr); // *.alw
for( i=0 ; (helpstr[i]!='.')&&(i<(short)strlen(helpstr)) ; i++ );
helpstr[i] = 0;
strcat( helpstr, WAV_EXT );
remove (helpstr); // *.wav
}
rc = OsFindNext(&FileInfo);
}
OsFindClose(&FileInfo);
capitel_signal_function( 8, NULL); // rufe geloescht -> neu scannen
}
} else {
capitel_signal_function( 6, &calllength ); // normaler ruf -> anzeigen
}
status_conv = 0;
}
char *NextFileName(void)
{
FileInfoTyp FileInfo;
short rc;
int help;
short res=0;
if(next_is_welcome) {
strcpy( act_call_name, DEFALWFILE_NXT);
capitel_signal_function( 5, &res );
return act_call_name;
}
rc = OsFindFirst(&FileInfo,CALL_MASK_WAV);
while( rc == 0 ) {
sscanf (FileInfo.FileName,CALL_MAKE_MASK_WAV,&help);
if (help > res) {
res = help;
}
rc = OsFindNext(&FileInfo);
}
OsFindClose(&FileInfo);
res++;
sprintf (act_call_name,CALL_MAKE_MASK_WAV,res);
capitel_signal_function( 5, &res );
return act_call_name;
}
void answer_connect_ind (AnsConIndMsg *msg)
{
static char ringring_file[200];
TCapiInfo ConIndMsg;
char *help;
// short cnt;
char helpstr[200];
raute = 0;
loesch = 0;
fernabfrage = 0;
any_dtmf_detected = 0;
dtmf_job = 0;
dtmf_str[0] = 0;
beep_cnt = 0;
dtmf_setcallback = 0;
num_calls++;
dtmf_init();
do_silence_find = config_file_read_ulong(STD_CFG_FILE,MAX_SILENCE_TIME,MAX_SILENCE_TIME_DEF);
do_dtmf_find = config_file_read_ulong(STD_CFG_FILE,DETECT_DTMF_TONES,DETECT_DTMF_TONES_DEF);
#ifndef RECOTEL
play_beep = config_file_read_ulong(STD_CFG_FILE,PLAY_BEEP,PLAY_BEEP_DEF);
#endif
config_file_read_string(STD_CFG_FILE,WELCOME_WAVE,welcome_file, WELCOME_WAVE_DEF);
strcpy (welcome_file,check_time(welcome_file));
config_file_read_string(STD_CFG_FILE,RINGRING_WAVE,ringring_file, RINGRING_WAVE_DEF);
strcpy (ringring_file,check_time(ringring_file));
silence_reset( config_file_read_ulong (STD_CFG_FILE,MAX_SILENCE_TIME,MAX_SILENCE_TIME_DEF));
strcpy (ConIndMsg.caller_name , msg->caller_name);
strcpy (ConIndMsg.caller_org_name, msg->caller_org_name);
strcpy (ConIndMsg.called_name , msg->called_name);
ConIndMsg.is_digital = msg->is_digital;
better_string(ConIndMsg.called_name,PRTFILE,8,ringring_file , ringring_file );
better_string(ConIndMsg.called_name,PRTFILE,3,welcome_file , welcome_file );
better_string(ConIndMsg.called_name,PRTFILE,2,ConIndMsg.called_name, ConIndMsg.called_name);
better_string(ConIndMsg.caller_name,NAMFILE,7,"1", helpstr);
if (!strcmp(helpstr,"1")) {
better_string(ConIndMsg.caller_name,NAMFILE,8,ringring_file , ringring_file );
better_string(ConIndMsg.caller_name,NAMFILE,3,welcome_file , welcome_file );
better_string(ConIndMsg.caller_name,NAMFILE,2,ConIndMsg.caller_name, ConIndMsg.caller_name);
}
if (config_file_read_ulong(STD_CFG_FILE,EXPAND_CALLER_ID,EXPAND_CALLER_ID_DEF) && !strcmp(msg->caller_name,ConIndMsg.caller_name)) strcat (ConIndMsg.caller_name,vorwahl_get_name(msg->caller_name));
strcpy (fh_ziel_name,NextFileName());
fh_ziel = fopen(fh_ziel_name, "wb");
if (strstr(welcome_file,WAV_EXT)) {
strcpy (help_welcome_file,welcome_file);
wav2alw_convert (help_welcome_file);
help = strstr(welcome_file,WAV_EXT);
*(++help) = 'a';
*(++help) = 'l';
*(++help) = 'w';
}
capitel_signal_function( 4 , (void *) &ConIndMsg );
if (config_file_read_ulong(STD_CFG_FILE,PLAY_RINGRING_WAVE, PLAY_RINGRING_WAVE_DEF)) capitel_signal_function( 10, (void *) &ringring_file );
status_isdn=1;
return;
}
void answer_connect_b3_act_ind (void *msg)
{
short cnt;
status_isdn = 2;
comm_clear_all_buffer();
if( !util_file_exist( welcome_file ) )
strcpy( welcome_file, util_strip_path(welcome_file) );
if( !util_file_exist( welcome_file ) )
strcpy( welcome_file,DEFALWFILE);
fh_ansage = fopen(welcome_file, "rb");
if (initRegistration()) max_beep_cnt = 4; else max_beep_cnt = 16;
if (do_nerv_message) {
if (!initRegistration()) {
if (conn_ind_cnt++ >= CONN_CNT_DEACT) {
capitel_signal_function( 11, NULL );
capitel_signal_function( 1 , msg_str_disable);
config_file_write_ulong (STD_CFG_FILE,CAPITEL_ACTIVE,0);
} else if (conn_ind_cnt > CONN_CNT_WARN) {
for (cnt=1;cnt <= (conn_ind_cnt-CONN_CNT_WARN); cnt++) capitel_signal_function( 1 , msg_str_reg);
}
}
}
return;
}
void answer_data_b3_ind (void *msg)
{
long cnt;
if( comm_data_available() ) {
if( (cnt = comm_read_block( cbuffer)) > 0 ) {
if( status_isdn == 4 ) {
if( fh_ziel != NULL ) fwrite( cbuffer, cnt, 1, fh_ziel);
if ((do_silence_find) && (!any_dtmf_detected)) silence_find (cbuffer,cnt);
}
if (do_dtmf_find) {
if (use_ulaw_codec) {
dtmf_find_ulaw (cbuffer,cnt);
} else {
dtmf_find_alaw (cbuffer,cnt);
}
}
}
}
return;
}
void answer_disc_b3_ind (void *msg)
{
status_isdn = 0;
if( fh_ansage ) fclose( fh_ansage );
if( fh_fern ) fclose( fh_fern );
fh_ansage = fh_fern = NULL;
return;
}
void answer_data_b3_conf(void *msg)
{
char cbuffer[1024];
short readsize;
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
if( status_isdn == 2 ) {
if((!raute) && (fh_ansage != NULL)) {
readsize=fread(cbuffer, 1, 1024, fh_ansage );
if (readsize) {
comm_write_block( cbuffer, readsize );
} else {
status_isdn = 3;
answer_data_b3_conf(NULL);
}
} else {
status_isdn = 3;
answer_data_b3_conf(NULL);
}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
else if( status_isdn == 3 ) {
if (play_beep)
{
if (beep_cnt++ < max_beep_cnt) {
comm_write_block( beepdata, 1024 );
} else {
comm_begin_of_record();
status_isdn = 4;
}
}
else
{
comm_begin_of_record();
status_isdn = 4;
}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
else if( status_isdn == 5 ) {
if (fh_fern != NULL) {
readsize = fread(cbuffer, 1, 1024, fh_fern );
if (readsize) comm_write_block( cbuffer, readsize );
}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
}
void answer_disc_ind (void *msg)
{
char proc[200],parm[200],title[200];
calllength = 0;
if( fh_ziel == NULL )
calllength = 0;
else
{
calllength = util_file_size(fh_ziel_name)/8192;
fclose( fh_ziel );
fh_ziel = NULL;
}
if (next_is_welcome) {
remove( welcomeFile );
rename( DEFALWFILE_NXT, welcomeFile );
next_is_welcome=0;
}
OsStartThread (convert_all_alw2wav);
if (config_file_read_ulong(STD_CFG_FILE,START_ON_DISCONNECT,START_ON_DISCONNECT_DEF)) {
config_file_read_string(STD_CFG_FILE,START_DISC_PROC ,proc ,START_DISC_PROC_DEF);
config_file_read_string(STD_CFG_FILE,START_DISC_PARM ,parm ,START_DISC_PARM_DEF);
config_file_read_string(STD_CFG_FILE,START_DISC_TITLE,title,START_DISC_TITLE_DEF);
dos_start (proc,parm,title);
}
}
static short dtmf_activ = 0;
void build_all_calls (void)
{
FileInfoTyp FileInfo;
short rc;
short idx;
FILE *inpdat, *outdat;
char buff2[256];
char nullbeep[1024];
memset (nullbeep, 0, 1024);
rc = OsFindFirst(&FileInfo,CALL_MASK_ALW);
remove (ALLFILE_ALW);
fh_fern = fopen (ALLFILE_ALW,"wb");
if (fh_fern) fclose (fh_fern);
while( rc == 0 ) {
fh_fern = fopen (ALLFILE_ALW,"ab");
if (fh_fern) {
fwrite (beepdata,1,1024,fh_fern);
fclose (fh_fern);
}
util_append_file(FileInfo.FileName ,ALLFILE_ALW);
rc = OsFindNext(&FileInfo);
}
OsFindClose(&FileInfo);
fh_fern = fopen (ALLFILE_ALW,"ab");
if (fh_fern) {
for (idx=1; idx <= 5; idx++) {
fwrite (nullbeep,1,1024,fh_fern);
fwrite (beepdata,1,1024,fh_fern);
}
fclose (fh_fern);
}
// calls als abgehoert markieren
rc = OsFindFirst(&FileInfo,CALL_MASK_IDX);
while( rc == 0 ) {
if(util_file_exist(FileInfo.FileName) && util_file_size(FileInfo.FileName)) {
if ((inpdat = fopen(FileInfo.FileName,"r")) != NULL){
if ((outdat = fopen (CALL_TMP,"w")) != NULL) {
for (idx=1;idx<=6;idx++) {fgets (buff2,sizeof(buff2),inpdat);fputs (buff2,outdat);};
fputs ("1\n",outdat);
fclose (outdat);
};
fclose (inpdat);
remove (FileInfo.FileName);
rename (CALL_TMP,FileInfo.FileName);
}
}
rc = OsFindNext(&FileInfo);
}
OsFindClose(&FileInfo);
}
void answer_dtmf_found (void *msg)
{
char dtmf_char[2] = {0,0};
short idx;
char pars_str[200];
char activ_str[200];
char proc[200],parm[200],title[200];
if (dtmf_activ) return;
dtmf_activ++;
dtmf_char[0] = *(char*)msg;
any_dtmf_detected=1;
switch (dtmf_char[0]) {
case '#': raute = 1; dtmf_str[0] = 0;break;
case '*': if (fernabfrage) loesch = 1;break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'A':
case 'B':
case 'C':
case 'D': strcat (dtmf_str,dtmf_char);break;
}
if (dtmf_setcallback) {
if (strlen(dtmf_str)) {
if (!isdigit(dtmf_str[strlen(dtmf_str)-1])) {
dtmf_str[strlen(dtmf_str)-1] = 0;
}
config_file_write_string(STD_CFG_FILE, CALL_BACK_NUMBER, dtmf_str);
is_callback = 1;
}
} else if ((!dtmf_str[0]==0) && (strlen(dtmf_str) > 3)) {
better_string(dtmf_str,ACTFILE,2,"DUMMY", pars_str);
better_string(dtmf_str,ACTFILE,6,"DUMMY", activ_str);
if ((strcmp("DUMMY",pars_str)==0) || (strcmp("0",activ_str)==0)) pars_str[0]=0;
if (pars_str[0] != 0) {
if (strcmp("REMOTECONTROL",pars_str)==0) {
dtmf_str[0] = 0;
fernabfrage = 1;
raute = 1;
// calls zusammenstellen
build_all_calls();
// calls abspielen
fh_fern = fopen(ALLFILE_ALW , "rb");
status_isdn = 5;
for (idx=1;idx<= CAPI_NUM_B3_BLK; idx++) answer_data_b3_conf(NULL); // nur zum neuanstossen...
} else if (strcmp("REBOOT",pars_str)==0) {
dtmf_str[0] = 0;
dtmf_job = 1;
comm_disc_req();
OsStartThread (boot);
} else if (strcmp("DEACTIVATE",pars_str)==0) {
dtmf_str[0] = 0;
dtmf_job = 1;
config_file_write_ulong (STD_CFG_FILE,CAPITEL_ACTIVE,0);
capitel_signal_function( 11, NULL);
} else if (strcmp("QUIT",pars_str)==0) {
dtmf_str[0] = 0;
dtmf_job = 1;
comm_disc_req();
OsStartThread (quit);
} else if (strcmp("SETCALLBACK",pars_str)==0) {
dtmf_str[0] = 0;
dtmf_job = 1;
dtmf_setcallback = 1;
} else {
dtmf_job = 1;
better_string(dtmf_str,ACTFILE,2,"", proc );
better_string(dtmf_str,ACTFILE,3,"", parm );
better_string(dtmf_str,ACTFILE,4,"", title);
dos_start(proc,parm,title);
dtmf_str[0]=0;
}
}
}
dtmf_activ--;
}
void answer_silence_found (void *msg)
{
comm_disc_req();
}
void answer_sigfunc( short num, void *msg )
{
switch( num ) {
case 1 : answer_connect_ind ( msg ); break;
case 2 : answer_connect_b3_act_ind( msg ); break;
case 3 : answer_data_b3_ind ( msg ); break;
case 4 : answer_disc_b3_ind ( msg ); break;
case 5 : answer_data_b3_conf ( msg ); break;
case 6 : answer_disc_ind ( msg ); break;
case 7 : capitel_signal_function ( 1, msg ); break; // warnings
case 8 : capitel_signal_function ( 2, msg ); break; // critical error
case 9 : capitel_signal_function ( 3, msg ); break; // fatal error
case 10: capitel_signal_function ( 7, msg ); break; // converting wav2alw
case 11: answer_dtmf_found ( msg ); break; // dtmf_found
case 12: answer_silence_found ( msg ); break; // silence_found
default : sprintf(help_str,"ANSWER: Unknown SigFunc: %d\n", num); capitel_signal_function( 1, help_str ); break;
}
return;
}
void _Optlink beep_thread ( void *arg)
{
short i;
for (;;) {
OsSleep (beep_on_calls_delay);
for (i=0;i<num_calls;i++) {
OSBeep (beep_on_calls_freq,beep_on_calls_dura);
// capitel_signal_function ( 10, "pop.wav" );
OsSleep (250);
}
}
}
short answer_init( void (*ctel_sigfunc)( short, void * ), short nerv_message, short language)
{
switch (language) {
case (LANGUAGE_GER): strcpy(msg_str_disable, DEF_DISABLE_MSG_GER);
strcpy(msg_str_reg , DEF_REG_MSG_GER );
strcpy(msg_str_cti , DEF_CTI_MSG_GER );
break;
default : strcpy(msg_str_disable, DEF_DISABLE_MSG_ENG);
strcpy(msg_str_reg , DEF_REG_MSG_ENG );
strcpy(msg_str_cti , DEF_CTI_MSG_ENG );
break;
}
OSSetPriority (config_file_read_ulong(STD_CFG_FILE,CAPITEL_PRIORITY,CAPITEL_PRIORITY_DEF));
OSProcessAffinity (config_file_read_ulong(STD_CFG_FILE,CAPITEL_AFFINITY,CAPITEL_AFFINITY_DEF));
use_ulaw_codec = config_file_read_ulong(STD_CFG_FILE,CAPITEL_CODEC_ULAW,CAPITEL_CODEC_ULAW_DEF);
if (config_file_read_ulong(STD_CFG_FILE,CAPITEL_ACTIVE_ON_STARTUP,CAPITEL_ACTIVE_ON_STARTUP_DEF)) {
config_file_write_ulong (STD_CFG_FILE,CAPITEL_ACTIVE,1);
}
wav2alw_convert_all();
do_nerv_message = nerv_message;
rescan_time_var = config_file_read_ulong (STD_CFG_FILE,RESCAN_TIME,RESCAN_TIME_DEF);
if (rescan_time_var) {
rescan_thread_id = OsStartThread (capitel_rescan);
}
if (config_file_read_ulong(STD_CFG_FILE,BEEP_ON_CALLS,BEEP_ON_CALLS_DEF)) {
beep_on_calls_freq = config_file_read_ulong(STD_CFG_FILE,BEEP_ON_CALLS_FREQ ,BEEP_ON_CALLS_FREQ_DEF );
beep_on_calls_dura = config_file_read_ulong(STD_CFG_FILE,BEEP_ON_CALLS_DURA ,BEEP_ON_CALLS_DURA_DEF );
beep_on_calls_delay = config_file_read_ulong(STD_CFG_FILE,BEEP_ON_CALLS_DELAY,BEEP_ON_CALLS_DELAY_DEF);
beep_thread_id = OsStartThread (beep_thread);
}
capitel_signal_function = ctel_sigfunc;
return(comm_init( answer_sigfunc));
}
void answer_exit (void)
{
comm_listen(0);
OsSleep (700);
comm_exit();
if (rescan_time_var) OsStopThread(rescan_thread_id);
if (beep_thread_id ) OsStopThread(beep_thread_id );
while (wav2alw_convert_runs()) OsSleep (250);
}
void answer_record_welcome ( char *name )
{
strcpy( welcomeFile, name );
next_is_welcome=1;
}
void answer_listen (void)
{
comm_listen(1);
use_ulaw_codec = config_file_read_ulong(STD_CFG_FILE,CAPITEL_CODEC_ULAW,CAPITEL_CODEC_ULAW_DEF);
}
short answer_cannot_close (void)
{
return (status_conv);
}
void answer_wav2alw_convert_all (void)
{
wav2alw_convert_all();
use_ulaw_codec = config_file_read_ulong(STD_CFG_FILE,CAPITEL_CODEC_ULAW,CAPITEL_CODEC_ULAW_DEF);
}
void answer_name_of_interface (char * name)
{
comm_name_of_interface (name);
return;
}
void answer_stop_bell (void)
{
num_calls = 0;
}
void answer_play_all (void)
{
short bitmode = 0;
bitmode = (!config_file_read_ulong(STD_CFG_FILE,GENERATE_16_BIT_WAVES,GENERATE_16_BIT_WAVES_DEF));
// calls zusammenstellen
build_all_calls();
// calls abspielen
alw2wav (ALLFILE_ALW, ALLFILE_WAV, bitmode);
capitel_signal_function ( 10, ALLFILE_WAV );
capitel_signal_function( 8, NULL); // neu scannen
}
void answer_cti (char * cti_number)
{
char def_unknown[200];
char cti_prg[200];
config_file_read_string(STD_CFG_FILE,TEXT_UNKNOWN_ISDN,def_unknown,TEXT_UNKNOWN_ISDN_DEF);
if (config_file_read_ulong(STD_CFG_FILE,CAPITEL_CTI_SUPPORT,CAPITEL_CTI_SUPPORT_DEF)) {
config_file_read_string (STD_CFG_FILE,CAPITEL_CTI_PROGRAM,cti_prg,CAPITEL_CTI_PROGRAM_DEF);
config_file_read_string (STD_CFG_FILE,TEXT_UNKNOWN_ISDN,def_unknown,TEXT_UNKNOWN_ISDN_DEF);
if (!strcmp(cti_number,def_unknown)) {
dos_start(cti_prg, "", msg_str_cti);
} else {
dos_start(cti_prg, cti_number, msg_str_cti);
}
}
}

22
answer/source/answer.h Normal file
View File

@ -0,0 +1,22 @@
short answer_init (void (*)(short, void *), short, short); // zweiter paramter: 0 = nerv_message OFF, 1 = nerv_message ON.
void answer_exit (void);
void answer_record_welcome (char *);
//short answer_version_expired (void);
short answer_cannot_close (void);
void answer_listen (void);
void answer_wav2alw_convert_all (void);
void answer_name_of_interface (char *);
void answer_stop_bell (void);
void answer_play_all (void);
void answer_cti (char *);
typedef struct {
char called_name [200];
char caller_org_name[200];
char caller_name [200];
char is_digital;
} TCapiInfo;
extern char* beepdata;

BIN
capitel/obj.unx/capitel.o Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

View File

@ -0,0 +1,119 @@
#define DefCntrFont "8.Helv"
#define Defv4CntrFont "9.WarpSans"
#define FCF_V4_NOTEBOOKS 0x800
#ifndef FCF_CLOSEBUTTON
#define FCF_CLOSEBUTTON 0x04000000
#endif
#define UM_FLYOVER_BEGIN 1054
#define UM_FLYOVER_END 1055
#define UM_WARNING (WM_USER+1)
#define UM_CRITICAL (WM_USER+2)
#define UM_FATAL (WM_USER+3)
#define UM_PLAYWAV (WM_USER+4)
#define ID_FRAME 100
#define ID_TOOLBAR 101
#define ID_STATUSBAR 102
#define ID_CNTR FID_CLIENT
#define ID_POPUP 103
#define ID_BMP_CALL0 150
#define ID_BMP_CALL1 151
#define ID_BMP_CALL2 152
#define ID_BMP_PORT0 153
#define ID_BMP_PORT1 154
#define ID_BMP_CALLER0 155
#define ID_BMP_CALLER1 156
#define ID_BMP_ACTION0 157
#define ID_BMP_ACTION1 158
#define ID_BMP_CALL3 159
#define IDS_GENERAL 200
#define IDI_SETUP 201
#define IDI_EXIT 202
#define IDI_TOGGLE 203
#define IDI_HIDE 204
#define IDI_REGISTRATION 205
#define IDS_HELP 210
#define IDI_INFO 211
#define IDI_README 212
#define IDI_WHATSNEW 213
#define IDI_LICENSE 214
#define IDI_ORDER 215
#define IDI_ORDERBMT 216
#define IDI_HOMEPAGE 217
#define IDI_PORTS 220
#define IDI_PEOPLE 221
#define IDI_DTMF 222
#define IDS_CALL 230
#define ID_CALL_PLAY 231
#define ID_CALL_DEL 232
#define ID_CALL_REC 233
#define ID_CALL_PLAY_ALL 234
#define ID_ADD_CALLER 235
#define ID_POPUP_PLAY 240
#define ID_POPUP_DEL 241
#define ID_POPUP_PLAY_ALL 242
#define ID_POPUP_ADD_CALLER 243
#define ID_RECDLG 300
#define ID_RECDLG_OK 301
#define ID_RECDLG_ENTRY 302
#define ID_RECDLG_CANCEL 303
#define ABOUT_DIALOG 320
#define ABOUT_OK 321
#define ABOUT_VERSION 322
#define ABOUT_REG 323
#define INCALL_DIALOG 340
#define INCALL_FROM 341
#define INCALL_ON 342
#define ID_INCALL_START 345
#define ID_INCALL_STOP 346
#define RECORD_DIALOG 350
#define RECORD_REC 351
#define RECORD_STATUS 352
#define ID_RECINFO_STOP 355
#define REG_DIALOG 360
#define REG_OK 361
#define REG_NAME 362
#define REG_CODE 363
#define IDD_MSGBOX 364
#define IDD_MSGBOXEX 365
#define IDC_ICONSTATIC 366
#define IDC_TEXT 367
#define IDC_CHECK 368
#define STR_OK_BUTTON 369
#define STR_CANCEL_BUTTON 370
#define STR_YES_BUTTON 371
#define STR_NO_BUTTON 372
typedef struct _CallInfo
{
char caller[255],
date[10],
time[10],
calledEAZ[255],
filename[255];
unsigned long seconds;
unsigned short heard;
unsigned short digital;
} TCallInfo;
extern HPOINTER iconCapiTel;
extern HWND hwndFrame, hwndCntr, hwndToolbar, hwndStatusbar;

View File

@ -0,0 +1,532 @@
#include <os2.h>
#include "capitel\source.os2\texte.h"
//#include "..\..\common\source\texte.h"
#include "capitel\source.os2\capitel.h"
#include "capitel\source.os2\configrc.h"
#include "common\source\global.h"
#include "common\source\version.h"
ICON ID_FRAME PRELOAD capitel\source.os2\bmpico\capitel.ico
ICON ID_BMP_CALL0 PRELOAD capitel\source.os2\bmpico\call0.ico
ICON ID_BMP_CALL1 PRELOAD capitel\source.os2\bmpico\call1.ico
ICON ID_BMP_CALL2 PRELOAD capitel\source.os2\bmpico\call2.ico
ICON ID_BMP_CALL3 PRELOAD capitel\source.os2\bmpico\call3.ico
ICON ID_BMP_PORT0 PRELOAD capitel\source.os2\bmpico\port0.ico
ICON ID_BMP_PORT1 PRELOAD capitel\source.os2\bmpico\port1.ico
ICON ID_BMP_CALLER0 PRELOAD capitel\source.os2\bmpico\caller0.ico
ICON ID_BMP_CALLER1 PRELOAD capitel\source.os2\bmpico\caller1.ico
ICON ID_BMP_ACTION0 PRELOAD capitel\source.os2\bmpico\action0.ico
ICON ID_BMP_ACTION1 PRELOAD capitel\source.os2\bmpico\action1.ico
BITMAP ID_CALL_DEL PRELOAD capitel\source.os2\bmpico\delete.bmp
BITMAP IDI_TOGGLE PRELOAD capitel\source.os2\bmpico\disable.bmp
BITMAP ID_CALL_PLAY PRELOAD capitel\source.os2\bmpico\play.bmp
BITMAP ID_CALL_PLAY_ALL PRELOAD capitel\source.os2\bmpico\playall.bmp
BITMAP ID_ADD_CALLER PRELOAD capitel\source.os2\bmpico\add.bmp
BITMAP IDI_PORTS PRELOAD capitel\source.os2\bmpico\ports.bmp
BITMAP IDI_PEOPLE PRELOAD capitel\source.os2\bmpico\people.bmp
BITMAP IDI_DTMF PRELOAD capitel\source.os2\bmpico\actions.bmp
BITMAP IDI_SETUP PRELOAD capitel\source.os2\bmpico\setup.bmp
MENU ID_FRAME PRELOAD
BEGIN
SUBMENU MENU_GENERAL, IDS_GENERAL, MIS_SUBMENU | MIS_TEXT, 0
BEGIN
MENUITEM MENU_ACTIVE, IDI_TOGGLE, MIS_TEXT, 0
MENUITEM MENU_CONTROLS, IDI_HIDE, MIS_TEXT, 0
MENUITEM MENU_PROPERTIES, IDI_SETUP, MIS_TEXT, 0
MENUITEM "", 0, MIS_SEPARATOR, 0
MENUITEM MENU_EXIT, IDI_EXIT, MIS_TEXT, 0
END
SUBMENU MENU_CALL, IDS_CALL, MIS_SUBMENU | MIS_TEXT, 0
BEGIN
MENUITEM MENU_PLAY, ID_CALL_PLAY, MIS_TEXT, 0
MENUITEM MENU_DELETE, ID_CALL_DEL, MIS_TEXT, 0
MENUITEM MENU_ADD_CALLER, ID_ADD_CALLER, MIS_TEXT, 0
MENUITEM "", 0, MIS_SEPARATOR, 0
MENUITEM MENU_PLAY_ALL, ID_CALL_PLAY_ALL, MIS_TEXT, 0
MENUITEM MENU_RECORD, ID_CALL_REC, MIS_TEXT, 0
END
SUBMENU MENU_HELP, IDS_HELP, MIS_SUBMENU | MIS_TEXT, 0
BEGIN
MENUITEM MENU_README, IDI_README, MIS_TEXT, 0
MENUITEM MENU_WHATSNEW, IDI_WHATSNEW, MIS_TEXT, 0
MENUITEM MENU_LICENSE, IDI_LICENSE, MIS_TEXT, 0
MENUITEM MENU_ORDER, IDI_ORDER, MIS_TEXT, 0
MENUITEM MENU_ORDERBMT, IDI_ORDERBMT, MIS_TEXT, 0
/* MENUITEM MENU_HOMEPAGE, IDI_HOMEPAGE, MIS_TEXT, 0 */
MENUITEM "", 0, MIS_SEPARATOR, 0
MENUITEM MENU_PRODUCT_INFO, IDI_INFO, MIS_TEXT, 0
END
END
MENU ID_POPUP PRELOAD
BEGIN
MENUITEM MENU_PLAY, ID_POPUP_PLAY, MIS_TEXT, 0
MENUITEM MENU_DELETE, ID_POPUP_DEL, MIS_TEXT, 0
MENUITEM MENU_ADD_CALLER, ID_POPUP_ADD_CALLER, MIS_TEXT, 0
MENUITEM "", 0, MIS_SEPARATOR, 0
MENUITEM MENU_PLAY_ALL, ID_POPUP_PLAY_ALL, MIS_TEXT, 0
MENUITEM MENU_RECORD, ID_CALL_REC, MIS_TEXT, 0
MENUITEM "", 0, MIS_SEPARATOR, 0
MENUITEM MENU_ACTIVE, IDI_TOGGLE, MIS_TEXT, 0
MENUITEM MENU_CONTROLS, IDI_HIDE, MIS_TEXT, 0
MENUITEM MENU_PROPERTIES, IDI_SETUP, MIS_TEXT, 0
MENUITEM "", 0, MIS_SEPARATOR, 0
MENUITEM MENU_PRODUCT_INFO, IDI_INFO, MIS_TEXT, 0
MENUITEM "", 0, MIS_SEPARATOR, 0
MENUITEM MENU_EXIT, IDI_EXIT, MIS_TEXT, 0
END
DLGTEMPLATE CFG_DIALOG LOADONCALL MOVEABLE DISCARDABLE
BEGIN
DIALOG MENU_CAPITEL_PROPERTIES, CFG_DIALOG, 55, 24, 392, 195, WS_VISIBLE, FCF_SYSMENU |
FCF_TITLEBAR | FCF_CLOSEBUTTON
BEGIN
DEFPUSHBUTTON MENU_SAVE, CFG_BUT_SAVE, 20, 4, 50, 14
PUSHBUTTON MENU_CANCEL, CFG_BUT_CANCEL, 75, 4, 50, 14
LTEXT MENU_HINT
0, 140, 10, 250, 8, DT_VCENTER
PRESPARAMS PP_FOREGROUNDCOLOR, 0x00FF0000L
PRESPARAMS PP_FONTNAMESIZE, "8.Helv"
NOTEBOOK CFG_NOTEBOOK, 0, 20, 392, 175, BKS_BACKPAGESBR |
BKS_MAJORTABRIGHT | BKS_STATUSTEXTCENTER |
BKS_SPIRALBIND | WS_GROUP | WS_CLIPSIBLINGS | FCF_V4_NOTEBOOKS
END
END
DLGTEMPLATE CFG_NB_PAGE1 LOADONCALL MOVEABLE DISCARDABLE
BEGIN
DIALOG "", CFG_NB_PAGE1, 0, 0, 300, 125, NOT FS_DLGBORDER | WS_VISIBLE
BEGIN
GROUPBOX MENU_DEFAULT_BEHAVIOUR, 0, 5, 5, 130, 130
AUTOCHECKBOX MENU_PLAY_RINGING, CFG_NBP1_RINGING,
10, 115, 120, 10, WS_GROUP
AUTOCHECKBOX MENU_REST_WIN_CALL, CFG_NBP1_FLASH,
10, 105, 120, 10, WS_GROUP
AUTOCHECKBOX MENU_CONF_CALL_DEL, CFG_NBP1_DELPROMPT,
10, 95, 120, 10
AUTOCHECKBOX MENU_IGNORE_EMPTY_CALLS, CFG_NBP1_IGNOREEMPTY,
10, 85, 120, 10
AUTOCHECKBOX MENU_SHOW_DIGITAL_CALLS, CFG_NBP1_SHOWDIGITAL,
10, 75, 120, 10
AUTOCHECKBOX MENU_EXPAND_CODE, CFG_NBP1_EXPAND,
10, 65, 120, 10
AUTOCHECKBOX MENU_DTMF_SUPPORT, CFG_NBP1_DTMF,
10, 55, 120, 10
AUTOCHECKBOX MENU_ULAW_CODEC, CFG_NBP1_ULAW_CODEC,
10, 45, 120, 10
LTEXT MENU_ANSWER_DELAY, 0, 10, 32, 70, 8, DT_VCENTER
ENTRYFIELD "", CFG_NBP1_DELAY, 80, 33, 15, 6, ES_RIGHT | ES_MARGIN
LTEXT MENU_SECONDS, 0, 100, 32, 30, 8, DT_VCENTER
LTEXT MENU_MAX_REC_TIME, 0, 10, 21, 70, 8, DT_VCENTER
ENTRYFIELD "", CFG_NBP1_MAXRECTIME, 80, 22, 15, 6, ES_RIGHT | ES_MARGIN
LTEXT MENU_SECONDS, 0, 100, 21, 30, 8, DT_VCENTER
LTEXT MENU_SILENCE_DETECTION, 0, 10, 10, 70, 8, DT_VCENTER
ENTRYFIELD "", CFG_NBP1_SILENCE, 80, 11, 15, 6, ES_RIGHT | ES_MARGIN
LTEXT MENU_SECONDS, 0, 100, 10, 30, 8, DT_VCENTER
GROUPBOX MENU_POPUP_GROUP, 0, 140, 103, 230, 26
LTEXT MENU_POPUP_DESC, 0, 145, 109, 100, 8, DT_VCENTER
CONTROL "", CFG_NBP1_POPUPWINDOW, 256, 68, 79, 50,
WC_COMBOBOX, CBS_DROPDOWNLIST | WS_GROUP |
WS_TABSTOP | WS_VISIBLE
GROUPBOX MENU_DEFAULT_FILES, 0, 140, 66, 230, 35
LTEXT MENU_WELCOME_WAV, 0, 145, 82, 60, 8, DT_VCENTER
ENTRYFIELD "", CFG_NBP1_WELCOME_FILE, 220, 83, 125, 6, ES_MARGIN
PUSHBUTTON "...", CFG_NBP1_WELCOME_FDLG, 350, 81, 15, 10
LTEXT MENU_RINGING_WAV, 0, 145, 71, 60, 8, DT_VCENTER
ENTRYFIELD "", CFG_NBP1_RINGING_FILE, 220, 72, 125, 6, ES_MARGIN
PUSHBUTTON "...", CFG_NBP1_RINGING_FDLG, 350, 70, 15, 10
GROUPBOX MENU_NOTIFY_GROUP, 0, 140, 40, 230, 24
LTEXT MENU_NOTIFY_TEXT, 0, 145, 45, 150, 8, DT_VCENTER
ENTRYFIELD "", CFG_NBP1_NOTIFY_NUMBER, 300, 46, 62, 6, ES_MARGIN
GROUPBOX MENU_LOGFILE, 0, 140, 5, 230, 33
LTEXT MENU_HINT_LOG,
0, 145, 20, 215, 8, DT_VCENTER
PRESPARAMS PP_FOREGROUNDCOLOR, 0x00FF0000L
ENTRYFIELD "", CFG_NBP1_LOGFILE, 147, 11, 215, 6, ES_MARGIN |
WS_GROUP
END
END
DLGTEMPLATE CFG_NB_PAGE2 LOADONCALL MOVEABLE DISCARDABLE
BEGIN
DIALOG "", CFG_NB_PAGE2, 0, 0, 0, 0, NOT FS_DLGBORDER |
WS_VISIBLE
BEGIN
CONTAINER CFG_NBP2_CNTR, 0, 0, 0, 0, CCS_SINGLESEL | CCS_MINIRECORDCORE | WS_GROUP
END
END
DLGTEMPLATE CFG_NB_PAGE3 LOADONCALL MOVEABLE DISCARDABLE
BEGIN
DIALOG "", CFG_NB_PAGE3, 0, 0, 0, 0, NOT FS_DLGBORDER |
WS_VISIBLE
BEGIN
CONTAINER CFG_NBP3_CNTR, 0, 0, 0, 0, CCS_SINGLESEL | CCS_MINIRECORDCORE | WS_GROUP
END
END
DLGTEMPLATE CFG_NB_PAGE4 LOADONCALL MOVEABLE DISCARDABLE
BEGIN
DIALOG "", CFG_NB_PAGE4, 0, 0, 0, 0, NOT FS_DLGBORDER |
WS_VISIBLE
BEGIN
CONTAINER CFG_NBP4_CNTR, 0, 0, 0, 0, CCS_SINGLESEL | CCS_MINIRECORDCORE | WS_GROUP
END
END
MENU CFG_PEOPLE_POPUP LOADONCALL MOVEABLE DISCARDABLE
BEGIN
MENUITEM MENU_ADD, CFG_PEOPLE_ADD, MIS_TEXT, 0
MENUITEM MENU_EDIT, CFG_PEOPLE_EDIT, MIS_TEXT, 0
MENUITEM MENU_DELETE_SHORT, CFG_PEOPLE_DEL, MIS_TEXT, 0
END
DLGTEMPLATE CFG_PEOPLE_EDITDLG LOADONCALL MOVEABLE DISCARDABLE
BEGIN
DIALOG MENU_EDIT_CALLER, CFG_PEOPLE_EDITDLG, 0, 0, 244, 187,
WS_VISIBLE, FCF_SYSMENU | FCF_TITLEBAR | FCF_CLOSEBUTTON
BEGIN
GROUPBOX " ", 0, 5, 23, 234, 161
AUTOCHECKBOX MENU_CALLER_ENABLED, CFG_PEOPLE_EDITDLG_ACTIVE, 12, 174,
100, 10, WS_GROUP
LTEXT MENU_NAME, 0, 12, 160, 50, 8, DT_VCENTER
ENTRYFIELD "", CFG_PEOPLE_EDITDLG_NAME, 68, 161, 160, 8,
ES_MARGIN | WS_GROUP
LTEXT MENU_NUMBER, 0, 12, 148, 50, 8, DT_VCENTER
ENTRYFIELD "", CFG_PEOPLE_EDITDLG_NUMBER, 68, 149, 160, 8,
ES_MARGIN
LTEXT MENU_CALLER_DEFHELP, 0, 12, 126, 220, 16, DT_WORDBREAK
PRESPARAMS PP_FONTNAMESIZE, "8.Helv"
LTEXT MENU_WELCOME, 0, 12, 113, 50, 8, DT_VCENTER
ENTRYFIELD "", CFG_PEOPLE_EDITDLG_FILE, 68, 114, 143, 8,
ES_MARGIN
PUSHBUTTON "...", CFG_PEOPLE_EDITDLG_FILEDLG, 214, 112, 17, 12
LTEXT MENU_RINGING, 0, 12, 101, 50, 8, DT_VCENTER
ENTRYFIELD "", CFG_PEOPLE_EDITDLG_RINGING, 68, 102, 143, 8,
ES_MARGIN
PUSHBUTTON "...", CFG_PEOPLE_EDITDLG_RINGING_FDLG, 214, 100, 17, 12
LTEXT MENU_REACTION_D, 0, 12, 84, 90, 8, DT_VCENTER
CONTROL "", CFG_PEOPLE_EDITDLG_REJECT, 109, 37, 73, 58,
WC_COMBOBOX, CBS_DROPDOWNLIST | WS_GROUP |
WS_TABSTOP | WS_VISIBLE
LTEXT MENU_ANSWER_DELAY_D, 0, 12, 67, 90, 8, DT_VCENTER
ENTRYFIELD "", CFG_PEOPLE_EDITDLG_DELAY, 111, 68, 21, 8,
ES_RIGHT | ES_MARGIN | WS_GROUP
LTEXT MENU_SECONDS, 0, 137, 67, 40, 8
LTEXT MENU_MAX_REC_TIME_D, 0, 12, 55, 90, 8, DT_VCENTER
ENTRYFIELD "", CFG_PEOPLE_EDITDLG_MAXRECTIM, 111, 56, 21, 8,
ES_RIGHT | ES_MARGIN
LTEXT MENU_SECONDS, 0, 137, 55, 40, 8
LTEXT MENU_NOTIFY_TEXT_D, 0, 12, 30, 120, 16, DT_WORDBREAK
ENTRYFIELD "", CFG_PEOPLE_EDITDLG_NOTIFY, 137, 31, 93, 8, ES_MARGIN
DEFPUSHBUTTON MENU_OK, CFG_PEOPLE_EDITDLG_OK, 5, 4, 50, 14, WS_GROUP
PUSHBUTTON MENU_CANCEL, CFG_PEOPLE_EDITDLG_CANCEL, 60, 4, 50, 14
END
END
MENU CFG_PORTS_POPUP LOADONCALL MOVEABLE DISCARDABLE
BEGIN
MENUITEM MENU_ADD, CFG_PORTS_ADD, MIS_TEXT, 0
MENUITEM MENU_EDIT, CFG_PORTS_EDIT, MIS_TEXT, 0
MENUITEM MENU_DELETE, CFG_PORTS_DEL, MIS_TEXT, 0
END
DLGTEMPLATE CFG_PORTS_EDITDLG LOADONCALL MOVEABLE DISCARDABLE
BEGIN
DIALOG MENU_EDITING_PORTS, CFG_PORTS_EDITDLG, 0, 0, 244, 187, WS_VISIBLE,
FCF_SYSMENU | FCF_TITLEBAR | FCF_CLOSEBUTTON
BEGIN
GROUPBOX " ", 0, 5, 23, 234, 161
AUTOCHECKBOX MENU_PORT_ENABLED, CFG_PORTS_EDITDLG_ACTIVE, 12, 174,
100, 10, WS_GROUP
LTEXT MENU_DESCRIPTION_D, 0, 12, 160, 50, 8, DT_VCENTER
ENTRYFIELD "", CFG_PORTS_EDITDLG_DESCR, 68, 161, 160, 8,
ES_MARGIN | WS_GROUP
LTEXT MENU_EAZ_D, 0, 12, 148, 50, 8, DT_VCENTER
ENTRYFIELD "", CFG_PORTS_EDITDLG_NUMBER, 68, 149, 160, 8,
ES_MARGIN | WS_GROUP
LTEXT MENU_PORT_DEFHELP, 0, 12, 126, 220, 16, DT_WORDBREAK
PRESPARAMS PP_FONTNAMESIZE, "8.Helv"
LTEXT MENU_WELCOME_D, 0, 12, 113, 50, 8, DT_VCENTER
ENTRYFIELD "", CFG_PORTS_EDITDLG_FILE, 68, 114, 143, 8,
ES_MARGIN
PUSHBUTTON "...", CFG_PORTS_EDITDLG_FILEDLG, 214, 112, 17, 12
LTEXT MENU_RINGING_D, 0, 12, 101, 50, 8, DT_VCENTER
ENTRYFIELD "", CFG_PORTS_EDITDLG_RINGING, 68, 102, 143, 8,
ES_MARGIN
PUSHBUTTON "...", CFG_PORTS_EDITDLG_RINGING_FDLG, 214, 100, 17, 12
LTEXT MENU_REACTION_D, 0, 12, 84, 90, 8, DT_VCENTER
CONTROL "", CFG_PORTS_EDITDLG_REJECT, 109, 47, 73, 48,
WC_COMBOBOX, CBS_DROPDOWNLIST | WS_TABSTOP |
WS_VISIBLE | WS_GROUP
LTEXT MENU_ANSWER_DELAY_D, 0, 12, 67, 90, 8, DT_VCENTER
ENTRYFIELD "", CFG_PORTS_EDITDLG_DELAY, 111, 68, 21, 8,
ES_RIGHT | ES_MARGIN | WS_GROUP
LTEXT MENU_SECONDS, 0, 137, 67, 40, 8
LTEXT MENU_MAX_REC_TIME_D, 0, 12, 55, 90, 8, DT_VCENTER
ENTRYFIELD "", CFG_PORTS_EDITDLG_MAXRECTIM, 111, 56, 21, 8,
ES_RIGHT | ES_MARGIN
LTEXT MENU_SECONDS, 0, 137, 55, 40, 8
LTEXT MENU_NOTIFY_TEXT_D, 0, 12, 30, 120, 16, DT_WORDBREAK
ENTRYFIELD "", CFG_PORTS_EDITDLG_NOTIFY, 137, 31, 93, 8, ES_MARGIN
DEFPUSHBUTTON MENU_OK, CFG_PORTS_EDITDLG_OK, 5, 4, 50, 14, WS_GROUP
PUSHBUTTON MENU_CANCEL, CFG_PORTS_EDITDLG_CANCEL, 60, 4, 50, 14
END
END
MENU CFG_DTMF_POPUP LOADONCALL MOVEABLE DISCARDABLE
BEGIN
MENUITEM MENU_ADD, CFG_DTMF_ADD, MIS_TEXT, 0
MENUITEM MENU_EDIT, CFG_DTMF_EDIT, MIS_TEXT, 0
MENUITEM MENU_DELETE_SHORT, CFG_DTMF_DEL, MIS_TEXT, 0
END
DLGTEMPLATE CFG_DTMF_EDITDLG LOADONCALL MOVEABLE DISCARDABLE
BEGIN
DIALOG MENU_EDITING_ACTION, CFG_DTMF_EDITDLG, 0, 0, 244, 158, WS_VISIBLE,
FCF_SYSMENU | FCF_TITLEBAR | FCF_CLOSEBUTTON
BEGIN
GROUPBOX " ", 0, 5, 23, 234, 131
AUTOCHECKBOX MENU_ACTION_ENABLED, CFG_DTMF_EDITDLG_ACTIVE, 12, 145, 100, 10, WS_GROUP
LTEXT MENU_DTMF_CODE, 0, 12, 132, 50, 8, DT_VCENTER
ENTRYFIELD "", CFG_DTMF_EDITDLG_CODE, 77, 133, 150, 8,
ES_MARGIN | WS_GROUP
AUTORADIOBUTTON MENU_REMOTE_CONTROL, CFG_DTMF_EDITDLG_RB_RCONTROL,
12, 115, 130, 10, WS_TABSTOP | WS_GROUP
AUTORADIOBUTTON MENU_SET_NOTIFY, CFG_DTMF_EDITDLG_RB_SETNOTIFY,
12, 105, 130, 10, WS_TABSTOP
AUTORADIOBUTTON MENU_REBOOT_CTEL, CFG_DTMF_EDITDLG_RB_REBOOT,
12, 95, 130, 10, WS_TABSTOP
AUTORADIOBUTTON MENU_DEACTIVATE_CTEL, CFG_DTMF_EDITDLG_RB_DEACT,
12, 85, 130, 10, WS_TABSTOP
AUTORADIOBUTTON MENU_QUIT_CTEL, CFG_DTMF_EDITDLG_RB_QUIT,