lcr/admin.h

174 lines
4.4 KiB
C

/*****************************************************************************\
** **
** PBX4Linux **
** **
**---------------------------------------------------------------------------**
** Copyright: Andreas Eversberg **
** **
** Administration tool header file **
** **
\*****************************************************************************/
#define SOCKET_NAME "/var/run/PBX4Linux.socket"
/* structures that define message between admin-tool and pbx */
enum { /* messages */
ADMIN_REQUEST_CMD_INTERFACE,
ADMIN_RESPONSE_CMD_INTERFACE,
ADMIN_REQUEST_CMD_ROUTE,
ADMIN_RESPONSE_CMD_ROUTE,
ADMIN_REQUEST_CMD_DIAL,
ADMIN_RESPONSE_CMD_DIAL,
ADMIN_REQUEST_CMD_RELEASE,
ADMIN_RESPONSE_CMD_RELEASE,
ADMIN_REQUEST_STATE,
ADMIN_RESPONSE_STATE,
ADMIN_RESPONSE_S_INTERFACE,
ADMIN_RESPONSE_S_PORT,
ADMIN_RESPONSE_S_EPOINT,
ADMIN_RESPONSE_S_CALL,
ADMIN_CALL_SETUP,
ADMIN_CALL_SETUP_ACK,
ADMIN_CALL_PROCEEDING,
ADMIN_CALL_ALERTING,
ADMIN_CALL_CONNECT,
ADMIN_CALL_DISCONNECT,
ADMIN_CALL_RELEASE,
ADMIN_CALL_NOTIFY,
ADMIN_TRACE_REQUEST,
ADMIN_TRACE_RESPONSE,
ADMIN_MESSAGE,
};
struct admin_response_cmd {
int error; /* error code 0 = ok*/
char message[256]; /* info / response text */
};
struct admin_response_state {
char version_string[64];
struct tm tm;
char logfile[128];
int interfaces;
int calls;
int epoints;
int ports;
};
struct admin_response_interface {
int portnum;
char interface_name[32];
int ntmode;
int ptp;
int pri;
int iftype;
int use; /* number of ports that use this interface */
int l1link; /* down(0) or up(1) */
int l2link; /* down(0) or up(1) */
int channels;
int busy[256]; /* if port is idle(0) busy(1) */
unsigned long port[256]; /* current port */
};
struct admin_response_call {
unsigned long serial; /* call serial number */
unsigned long partyline;
};
struct admin_response_epoint {
unsigned long serial;
unsigned long call; /* link to call */
// int call_notify; /* if relation notified on hold */
// int call_hold; /* if relation on hold */
int rx_state;
int tx_state;
int state;
char terminal[16];
char callerid[64];
char dialing[64];
char action[32];
int park; /* if parked */
int park_len;
unsigned char park_callid[8];
int crypt; /* crypt state */
};
struct admin_response_port {
unsigned long serial; /* port serial number */
char name[64]; /* name of port */
unsigned long epoint; /* link to epoint */
int state;
int isdn; /* if port is isdn */
int isdn_chan; /* bchannel number */
int isdn_hold; /* on hold */
int isdn_ces; /* ces to use (>=0)*/
};
struct admin_call {
char interface[64]; /* name of port */
char callerid[64]; /* use caller id */
char dialing[64]; /* number to dial */
int present; /* presentation */
int cause; /* cause to send */
int location;
int notify;
int bc_capa;
int bc_mode;
int bc_info1;
int hlc;
int exthlc;
};
struct admin_trace_req {
int detail;
char category[4];
char name[64];
int port;
char interface[64];
char caller[34];
char dialing[64];
};
struct admin_trace_rsp {
char text[512];
};
//struct admin_msg {
// int type; /* type of message */
// unsigned long ref; /* reference to individual endpoints */
// union parameter param; /* parameter union */
//};
struct admin_message {
int message; /* type of admin message */
union u {
struct admin_response_cmd x;
struct admin_response_state s;
struct admin_response_interface i;
struct admin_response_port p;
struct admin_response_epoint e;
struct admin_response_call c;
struct admin_call call;
// struct admin_msg msg;
struct admin_trace_req trace_req;
struct admin_trace_rsp trace_rsp;
} u;
};
/* call states */
enum {
ADMIN_STATE_IDLE,
ADMIN_STATE_IN_SETUP,
ADMIN_STATE_OUT_SETUP,
ADMIN_STATE_IN_OVERLAP,
ADMIN_STATE_OUT_OVERLAP,
ADMIN_STATE_IN_PROCEEDING,
ADMIN_STATE_OUT_PROCEEDING,
ADMIN_STATE_IN_ALERTING,
ADMIN_STATE_OUT_ALERTING,
ADMIN_STATE_CONNECT,
ADMIN_STATE_IN_DISCONNECT,
ADMIN_STATE_OUT_DISCONNECT,
};