isdn4k-utils/lib/libisdn.h

285 lines
7.8 KiB
C
Raw Permalink Normal View History

1997-03-03 04:23:12 +00:00
/* $Id: libisdn.h,v 1.15 2007/01/05 03:45:50 tobiasb Exp $
1997-03-03 04:23:12 +00:00
*
* ISDN accounting for isdn4linux.
*
* Copyright 1997 by Stefan Luethje (luethje@sl-gw.lake.de)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: libisdn.h,v $
* Revision 1.15 2007/01/05 03:45:50 tobiasb
* - replaced prototype for basename() by #include <libgen.h>
* - include <linux/limits.h> only if __linux__ is defined, try
* <limits.h> otherwise
*
* Revision 1.14 2002/01/31 20:03:59 paul
* Add "#define CCODE_OTHER 9999" for defining behaviour in
* non-specified countries.
*
* Revision 1.13 2000/09/05 08:05:03 paul
* Now isdnlog doesn't use any more ISDN_XX defines to determine the way it works.
* It now uses the value of "COUNTRYCODE = 999" to determine the country, and sets
* a variable mycountrynum to that value. That is then used in the code to set the
* way isdnlog works.
* It works for me, please check it! No configure.in / doc changes yet until
* it has been checked to work.
* So finally a version of isdnlog that can be compiled and distributed
* internationally.
*
* Revision 1.12 1999/10/26 18:17:17 akool
* isdnlog-3.58
* - big cleanup ( > 1.3 Mb removed!)
* - v0.02 of destination support - better, but not perfect
* (does't work with gcc-2.7.2.3 yet - use egcs!)
*
* Revision 1.11 1999/08/20 19:43:48 akool
* removed avon-, vorwahl- and areacodes-support
*
1998-10-13 21:53:17 +00:00
* Revision 1.10 1998/10/13 21:53:33 luethje
* isdnrep and lib: bugfixes
*
1998-05-11 19:43:43 +00:00
* Revision 1.9 1998/05/11 19:43:51 luethje
* Some changes for "vorwahlen.dat"
*
1998-05-10 22:11:47 +00:00
* Revision 1.8 1998/05/10 22:12:04 luethje
* Added support for VORWAHLEN2.EXE
*
* Revision 1.7 1997/05/19 22:58:29 luethje
* - bugfix: it is possible to install isdnlog now
* - improved performance for read files for vbox files and mgetty files.
* - it is possible to decide via config if you want to use avon or
* areacode.
*
* Revision 1.6 1997/04/08 21:57:07 luethje
* Create the file isdn.conf
* some bug fixes for pid and lock file
* make the prefix of the code in `isdn.conf' variable
*
* Revision 1.5 1997/04/08 00:02:25 luethje
* Bugfix: isdnlog is running again ;-)
* isdnlog creates now a file like /var/lock/LCK..isdnctrl0
* README completed
* Added some values (countrycode, areacode, lock dir and lock file) to
* the global menu
*
* Revision 1.4 1997/03/20 00:28:02 luethje
* Inserted lines into the files for the revision tool.
*
1997-03-03 04:23:12 +00:00
*/
#ifndef _LIB_H_
#define _LIB_H_
#ifdef __linux__
1997-03-03 04:23:12 +00:00
#include <linux/limits.h>
#else
#include <limits.h>
#endif
1997-03-03 04:23:12 +00:00
#include "policy.h"
#include "conffile.h"
#if 0 /* DELETE_ME AK:18-Aug-99 */
#include "areacode/areacode.h"
#include "avon/createDB.h"
#endif
1997-03-03 04:23:12 +00:00
/****************************************************************************/
#include <libgen.h>
1997-03-03 04:23:12 +00:00
/****************************************************************************/
1998-10-13 21:53:17 +00:00
#ifndef NUMBER_SIZE
# define NUMBER_SIZE 40
#endif
#ifndef CONFDIR_VAR
# define CONFDIR_VAR "ISDN_CONF_PATH"
#endif
1997-03-03 04:23:12 +00:00
#define C_SLASH '/'
/* #define C_SLASH '\\' */
#ifndef TMPDIR
# define TMPDIR P_tmpdir
#endif
#ifndef I4LCONFDIR
# define I4LCONFDIR "/etc/isdn"
#endif
#ifndef RUNDIR
# define RUNDIR "/var/run"
#endif
#ifndef LOCKDIR
# define LOCKDIR "/var/lock"
#endif
#ifndef LOCKFILE
# define LOCKFILE "LCK.."
#endif
1997-03-03 04:23:12 +00:00
#ifndef CONFFILE
# define CONFFILE "isdn.conf"
#endif
#ifndef CALLERIDFILE
# define CALLERIDFILE "callerid.conf"
#endif
1997-03-03 04:23:12 +00:00
#ifndef USERCONFFILE
# define USERCONFFILE "~/.isdn"
#endif
#ifndef S_COUNTRY_PREFIX
# define S_COUNTRY_PREFIX "+" /* "00" */
#endif
#ifndef S_AREA_PREFIX
# define S_AREA_PREFIX "0"
#endif
#if 0 /* DELETE_ME AK:18-Aug-99 */
1998-05-10 22:11:47 +00:00
#ifndef S_AREA_DIFF_FILE
# define S_AREA_DIFF_FILE "vorwahlen.dat"
#endif
1997-03-03 04:23:12 +00:00
#ifndef AVON
# define AVON "avon"
#endif
#endif
1997-03-03 04:23:12 +00:00
/****************************************************************************/
#define CONF_SEC_GLOBAL "GLOBAL"
#define CONF_ENT_COUNTRY_PREFIX "COUNTRYPREFIX"
#define CONF_ENT_AREA_PREFIX "AREAPREFIX"
#define CONF_ENT_COUNTRY "COUNTRYCODE"
#define CONF_ENT_AREA "AREACODE"
#if 0 /* Fixme: tools.h defines these - should they be global ??? */
#define CONF_ENT_VBN "VBN"
#define CONF_ENT_VBNLEN "VBNLEN"
#define CONF_ENT_PRESELECT "PRESELECTED"
#endif
#if 0 /* DELETE_ME AK:18-Aug-99 */
#define CONF_ENT_AREALIB "AREALIB"
#define CONF_ENT_AVONLIB "AVON"
#define CONF_ENT_CODELIB "CODELIB"
1998-05-10 22:11:47 +00:00
#define CONF_ENT_AREADIFF "AREADIFF"
#endif
1997-03-03 04:23:12 +00:00
#define CONF_SEC_VAR "VARIABLES"
1997-03-03 04:23:12 +00:00
#define CONF_SEC_NUM "NUMBER"
#define CONF_SEC_MSN "MSN"
#define CONF_ENT_NUM "NUMBER"
#define CONF_ENT_ALIAS "ALIAS"
#define CONF_ENT_ZONE "ZONE"
#define CONF_ENT_INTFAC "INTERFACE"
#define CONF_ENT_SI "SI"
#define CONF_ENT_START "START"
1997-03-03 04:23:12 +00:00
/****************************************************************************/
#define C_NUM_DELIM ','
1997-03-03 04:23:12 +00:00
/****************************************************************************/
#define C_NO_ERROR 1
#define C_NO_WARN 2
#define C_NO_EXPAND 4
/****************************************************************************/
#define START_PROG 1
#define STOP_PROG 2
/****************************************************************************/
/* some country codes to change behaviour of isdnlog in different countries */
#define CCODE_NL 31
#define CCODE_CH 41
#define CCODE_AT 43
#define CCODE_DE 49
#define CCODE_LU 352
#define CCODE_OTHER 9999
/****************************************************************************/
#if 0 /* DELETE_ME AK:18-Aug-99 */
1998-05-10 22:11:47 +00:00
#define AREA_ERROR -1
#define AREA_UNKNOWN 0
#define AREA_LOCAL 1
#define AREA_R50 2
#define AREA_FAR 3
1998-05-11 19:43:43 +00:00
#define AREA_ABROAD 4
#endif
1998-05-10 22:11:47 +00:00
/****************************************************************************/
1997-03-03 04:23:12 +00:00
#ifdef _ISDNTOOLS_C_
#define _EXTERN
#define SET_NULL = ""
1998-05-10 22:11:47 +00:00
#define SET_NULL2 = NULL
#define SET_AREA_PREFIX = S_AREA_PREFIX
#define SET_COUNTRY_PREFIX = S_COUNTRY_PREFIX
1997-03-03 04:23:12 +00:00
#else
#define _EXTERN extern
#define SET_NULL
1998-05-10 22:11:47 +00:00
#define SET_NULL2
#define SET_AREA_PREFIX
#define SET_COUNTRY_PREFIX
1997-03-03 04:23:12 +00:00
#endif
_EXTERN char *mycountry SET_NULL;
_EXTERN int mycountrynum;
_EXTERN char *myarea SET_NULL;
_EXTERN char *areaprefix SET_AREA_PREFIX;
_EXTERN char *countryprefix SET_COUNTRY_PREFIX;
#if 0 /* DELETE_ME AK:18-Aug-99 */
1998-05-10 22:11:47 +00:00
_EXTERN char *areadifffile SET_NULL2;
#endif
1997-03-03 04:23:12 +00:00
_EXTERN void set_print_fct_for_lib(int (*new_print_msg)(const char *, ...));
1997-03-03 04:23:12 +00:00
_EXTERN int num_match(char *Pattern, char *number);
_EXTERN char *expand_number(char *s);
_EXTERN char *expand_file(char *s);
_EXTERN char *confdir(void);
_EXTERN int handle_runfiles(const char *_progname, char **_devices, int flag);
1997-03-03 04:23:12 +00:00
_EXTERN int Set_Codes(section* Section);
#if 0 /* DELETE_ME AK:18-Aug-99 */
1997-03-03 04:23:12 +00:00
_EXTERN char *get_areacode(char *code, int *Len, int flag);
#endif
_EXTERN int read_conffiles(section **Section, char *groupfile);
_EXTERN int paranoia_check(char *cmd);
#if 0 /* DELETE_ME AK:18-Aug-99 */
1998-05-10 22:11:47 +00:00
_EXTERN int area_diff(char* _code, char *_diffcode);
_EXTERN const char* area_diff_string(char* number1, char* number2);
#endif
1997-03-03 04:23:12 +00:00
#undef SET_NULL
1998-05-10 22:11:47 +00:00
#undef SET_NULL2
#undef SET_AREA_PREFIX
#undef SET_COUNTRY_PREFIX
1997-03-03 04:23:12 +00:00
#undef _EXTERN
/****************************************************************************/
#endif