summaryrefslogtreecommitdiffstats
path: root/call.h
blob: 2315b56477e934d0008fd97b834c8ad204af68ce (plain) (blame)
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
/*****************************************************************************\
**                                                                           **
** PBX4Linux                                                                 **
**                                                                           **
**---------------------------------------------------------------------------**
** Copyright: Andreas Eversberg                                              **
**                                                                           **
** call header file                                                          **
**                                                                           **
\*****************************************************************************/ 

enum { CALL_TYPE_NONE, CALL_TYPE_PBX, CALL_TYPE_ASTERISK};

/* call
 *
 * abstraction for pbx calls and asterisk calls
 */


class Call
{
	public:
	Call(class Endpoint *epoint);
	virtual ~Call();
	class Call *next;		/* next node in list of calls */
	virtual void message_epoint(unsigned long epoint_id, int message, union parameter *param);
	virtual int handler(void);
	virtual void release(unsigned long epoint_id, int hold, int location, int cause);

	unsigned long c_type;		/* call type (pbx or asterisk) */
	unsigned long c_serial;		/* serial/unique number of call */
}; 

void call_free(void);

extern class Call *call_first;

class Call *find_call_id(unsigned long call_id);