File: libvbox.h

package info (click to toggle)
isdnutils 1%3A3.25%2Bdfsg1-3.5
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 18,188 kB
  • ctags: 12,236
  • sloc: ansic: 98,041; sh: 19,044; perl: 4,948; makefile: 3,145; cpp: 2,708; tcl: 22
file content (178 lines) | stat: -rw-r--r-- 6,955 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
/*
** $Id: libvbox.h,v 1.9 2007/05/17 15:02:43 keil Exp $
**
** Copyright (C) 1996, 1997 Michael 'Ghandi' Herold
*/

#ifndef _VBOX_LIBVBOX_H
#define _VBOX_LIBVBOX_H 1

#include <stdio.h>
#include <asm/types.h>

/**************************************************************************/
/** VBOXD                                                                **/
/**************************************************************************/

/** Defines ***************************************************************/

#define VBOXD_GET_MSG_TIMEOUT     (30) /* Timeout get message from server */
#define VBOXD_MAX_LINE           (256)     /* Max line length from server */

#define VBOXD_VAL_HELP           "180"                   /* Help messages */
#define VBOXD_VAL_COUNT          "181"              /* Count new messages */
#define VBOXD_VAL_MESSAGE        "182"                   /* Get a message */
#define VBOXD_VAL_HEADER         "183"            /* Get a message header */
#define VBOXD_VAL_LIST           "184"                   /* List messages */
#define VBOXD_VAL_STATUSCTRL     "185"                  /* Control status */
#define VBOXD_VAL_CREATECTRL     "186"                  /* Create control */
#define VBOXD_VAL_REMOVECTRL     "187"                  /* Remove control */
#define VBOXD_VAL_TOGGLE         "188"         /* Toggle message new flag */

#define VBOXD_VAL_SERVEROK       "280"                    /* Server ready */
#define VBOXD_VAL_SERVERQUIT     "281"                     /* Server quit */
#define VBOXD_VAL_ACCESSOK       "282"                       /* Access ok */
#define VBOXD_VAL_LOGINOK        "283"                   /* User login ok */
#define VBOXD_VAL_STATUSCTRLOK   "284"               /* Control status ok */
#define VBOXD_VAL_CREATECTRLOK   "285"               /* Create control ok */
#define VBOXD_VAL_REMOVECTRLOK   "286"               /* Remove control ok */
#define VBOXD_VAL_DELETEOK       "287"               /* Delete message ok */

#define VBOXD_VAL_ACCESSDENIED   "580"                       /* No access */
#define VBOXD_VAL_BADARGS        "583"     /* Not enough or too many args */
#define VBOXD_VAL_BADPASSWD      "584"                    /* Bad password */
#define VBOXD_VAL_BADMESSAGE     "585"                     /* Bad message */
#define VBOXD_VAL_BADCOMMAND     "586"                     /* Bad command */
#define VBOXD_VAL_TEMPERROR      "589"                      /* Misc error */

#define VBOXC_ERR_OK             ( 0)
#define VBOXC_ERR_UNKNOWNHOST    (-1)
#define VBOXC_ERR_NOSOCKET       (-2)
#define VBOXC_ERR_NOCONNECT      (-3)
#define VBOXC_ERR_NOFILEIO       (-4)
#define VBOXC_ERR_GETMESSAGE     (-5)
#define VBOXC_ERR_LOGIN          (-6)

/** Variables *************************************************************/

extern int   vboxd_r_fd;                          /* Read file descriptor */
extern int   vboxd_w_fd;                         /* Write file descriptor */

/** Prototypes ************************************************************/

extern int   vboxd_connect(char *, int);
extern int   vboxd_login(char *, char *);
extern int   vboxd_test_response(char *);
extern void  vboxd_disconnect(void);
extern void  vboxd_put_message(char *, ...);
extern char *vboxd_get_message(void);

/**************************************************************************/
/** CONTROL FILES                                                        **/
/**************************************************************************/

/** Defines ***************************************************************/

#define CTRL_NAME_MAGIC       "vboxctrl-"

#define CTRL_NAME_STOP		CTRL_NAME_MAGIC "stop"
#define CTRL_NAME_ANSWERNOW	CTRL_NAME_MAGIC "answernow"
#define CTRL_NAME_ANSWERALL	CTRL_NAME_MAGIC "answerall"
#define CTRL_NAME_REJECT	CTRL_NAME_MAGIC "reject"
#define CTRL_NAME_AUDIO		CTRL_NAME_MAGIC "audio"
#define CTRL_NAME_SUSPEND	CTRL_NAME_MAGIC "suspend"

#define CTRL_MODE_REMOVE		(0)
#define CTRL_MODE_CREATE		(1)

/** Prototypes ************************************************************/

extern int ctrl_create(char *, char *);
extern int ctrl_remove(char *, char *);
extern int ctrl_ishere(char *, char *);

/**************************************************************************/
/** VOICE AUDIO SUPPORT                                                  **/
/**************************************************************************/

/** Defines ***************************************************************/

#define KERNEL_SAMPLE_FREQ		(8000)

#define VAH_MAGIC					"VBOX"							     /* Magic id */
#define VAH_MAX_MAGIC			(4)
#define VAH_MAX_NAME				(32)
#define VAH_MAX_CALLERID		(32)
#define VAH_MAX_PHONE			(32)
#define VAH_MAX_LOCATION		(64)
#define VHA_MAX_RESERVED_A    (32)
#define VHA_MAX_RESERVED_B    (64)

/** Variables ************************************************************/

extern char *compressions[];

/** Structures ***********************************************************/

typedef struct
{
	char					magic[4];
	__u32	time;
	__u32	compression;
	char					callerid[VAH_MAX_CALLERID + 1];
	char					name[VAH_MAX_NAME + 1];
	char					phone[VAH_MAX_PHONE + 1];
	char					location[VAH_MAX_LOCATION + 1];
	char              reserved1[VHA_MAX_RESERVED_A + 1];
	char              reserved2[VHA_MAX_RESERVED_A + 1];
	char              reserved3[VHA_MAX_RESERVED_B + 1];
	char              reserved4[VHA_MAX_RESERVED_B + 1];
} vaheader_t;

/** Prototypes ************************************************************/

extern int header_put(int, vaheader_t *);
extern int header_get(int, vaheader_t *);
extern int get_nr_messages(char *, int);
extern int get_message_ptime(int, int);

/**************************************************************************/
/** MISC UTILS                                                           **/
/**************************************************************************/

/** Defines ***************************************************************/

#ifdef TRUE
#undef TRUE
#endif

#ifdef FALSE
#undef FALSE
#endif

#define TRUE					   (1)
#define FALSE					   (0)

#define returnerror()		    return(FALSE)
#define returnok()			    return(TRUE)
#define returntrue()           return(TRUE)
#define printstring			    sprintf
#define close_and_mone(F)      { close(F); F = -1; }
#define close_and_null(S)      { fclose(S); S = NULL; }
#define VBOX_ONE_FD_MASK(M, F) { FD_ZERO(M); FD_SET(F, M); }

#if HAVE_VSNPRINTF
#   define vnprintstring(B, S, F, A) vsnprintf(B, S, F, A)
#else
#   define vnprintstring(B, S, F, A) vsprintf(B, F, A)
#endif

/** Prototypes ***********************************************************/

extern void          xstrncpy(char *, char *, int);
extern void          xstrncat(char *, char *, int);
extern void          xpause(unsigned long);
extern long          xstrtol(char *, long);
extern unsigned long xstrtoul(char *, unsigned long);

#endif /* _VBOX_LIBVBOX_H */