summaryrefslogtreecommitdiffstats
path: root/admin.h
diff options
context:
space:
mode:
Diffstat (limited to 'admin.h')
-rw-r--r--admin.h147
1 files changed, 147 insertions, 0 deletions
diff --git a/admin.h b/admin.h
new file mode 100644
index 0000000..3e7b7ed
--- /dev/null
+++ b/admin.h
@@ -0,0 +1,147 @@
+/*****************************************************************************\
+** **
+** 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,
+};
+
+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_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;
+ } 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,
+};