work on chan_lcr
[lcr.git] / message.h
index 1db509c..f1b4e30 100644 (file)
--- a/message.h
+++ b/message.h
@@ -9,6 +9,8 @@
 **                                                                           **
 \*****************************************************************************/ 
 
+#define ISDN_TRANSMIT  256 // samples
+
 enum { /* interface types */
        INFO_ITYPE_ISDN,
        INFO_ITYPE_ISDN_EXTENSION, /* call from internal extension */
@@ -17,14 +19,14 @@ enum { /* interface types */
 };
 
 enum { /* number types */
-       INFO_NTYPE_UNKNOWN,
+       INFO_NTYPE_UNKNOWN = 0,
        INFO_NTYPE_SUBSCRIBER,
        INFO_NTYPE_NATIONAL,
        INFO_NTYPE_INTERNATIONAL,
 };
 
 enum { /* number presentation */
-       INFO_PRESENT_NULL,
+       INFO_PRESENT_NULL = 0,
        INFO_PRESENT_ALLOWED,
        INFO_PRESENT_RESTRICTED,
        INFO_PRESENT_NOTAVAIL,
@@ -36,7 +38,7 @@ enum { /* number presentation */
 };
 
 enum { /* redirection reason */
-       INFO_REDIR_UNKNOWN,
+       INFO_REDIR_UNKNOWN = 0,
        INFO_REDIR_BUSY,
        INFO_REDIR_NORESPONSE,
        INFO_REDIR_UNCONDITIONAL,
@@ -149,9 +151,9 @@ enum {
        B_EVENT_DEACTIVATED,    /* DL_RELEASE received */
        B_EVENT_EXPORTED,       /* BCHANNEL_ASSIGN received */
        B_EVENT_IMPORTED,       /* BCHANNEL_REMOVE received */
+       B_EVENT_TIMEOUT,        /* timeout for bchannel state */
 };
 
-
 /* call-info structure CALLER */
 struct caller_info {
        char id[32];                    /* id of caller (user number) */
@@ -255,6 +257,7 @@ struct message_setup {
        struct redir_info redirinfo;            /* info on redirection (to the calling user) */
        struct capa_info capainfo;              /* info on l2,l3 capability */
        struct useruser_info useruser;          /* user-user */
+       char exten[128];                        /* asterisk extension */
 };
 
 /* call-info structure PARK */
@@ -265,7 +268,7 @@ struct park_info {
 
 /* DATA */
 struct param_data {
-       unsigned char data[512]; /* audio/hdlc data */
+       unsigned char data[ISDN_TRANSMIT]; /* audio/hdlc data */
        int len; /* audio/hdlc data */
 };
 
@@ -286,8 +289,8 @@ struct param_counter {
 
 struct param_mISDNsignal {
        int message;
-       int rxvol;
-       int txvol;
+       int tx_gain;
+       int rx_gain;
        int conf;
        int joindata;
        int tone;
@@ -309,6 +312,11 @@ struct param_hello {
 struct param_bchannel {
        int type; /* BCHANNEL_* */
        unsigned long handle; /* bchannel stack/portid */
+       int tx_gain, rx_gain;
+       char pipeline[256];
+       unsigned char crypt[128];
+       int crypt_len;
+       int crypt_type; /* 1 = blowfish */
 };
 
 /* structure of message parameter */
@@ -345,8 +353,8 @@ enum { /* message flow */
 };
 
 /* message structure */
-struct message {
-       struct message *next;
+struct lcr_msg {
+       struct lcr_msg *next;
        int type; /* type of message */
        int flow; /* from where to where */
        unsigned long id_from; /* in case of flow==PORT_TO_EPOINT: id_from is the port's serial, id_to is the epoint's serial */
@@ -360,7 +368,6 @@ enum { /* messages between entities */
        MESSAGE_TONE,           /* set information tone (to isdn port) */
        MESSAGE_DTMF,           /* dtmf digit (from isdn port) */
        MESSAGE_mISDNSIGNAL,    /* special mixer command (down to isdn port) */
-
        MESSAGE_SETUP,          /* setup message */
        MESSAGE_INFORMATION,    /* additional digit information */
        MESSAGE_OVERLAP,        /* call accepted, send more information */
@@ -372,18 +379,14 @@ enum { /* messages between entities */
        MESSAGE_TIMEOUT,        /* protocol state has timed out (port->epoint) */
        MESSAGE_NOTIFY,         /* used to send progress and notify infos */
        MESSAGE_FACILITY,       /* used to facility infos, like aocd */
-
        MESSAGE_SUSPEND,        /* suspend port */
        MESSAGE_RESUME,         /* resume port */
-
        MESSAGE_AUDIOPATH,      /* set status of audio path to endpoint (to call, audio is also set) */
 //     MESSAGE_REMOTE_AUDIO,   /* tell remote to set audio status */
        MESSAGE_PATTERN,        /* pattern information tones available */
        MESSAGE_NOPATTERN,      /* pattern information tones unavailable */
        MESSAGE_CRYPT,          /* encryption message */
-
        MESSAGE_DATA,           /* audio/hdlc data */
-
        MESSAGE_VBOX_PLAY,      /* play recorded file */
        MESSAGE_VBOX_PLAY_SPEED,/* change speed of file */
        MESSAGE_VBOX_TONE,      /* set answering VBOX tone */
@@ -429,11 +432,11 @@ enum { /* messages between entities */
 };
 
 
-struct message *message_create(int id_from, int id_to, int flow, int type);
-void message_put(struct message *message);
-struct message *message_forward(int id_from, int id_to, int flow, union parameter *param);
-struct message *message_get(void);
-void message_free(struct message *message);
+struct lcr_msg *message_create(int id_from, int id_to, int flow, int type);
+void message_put(struct lcr_msg *message);
+struct lcr_msg *message_forward(int id_from, int id_to, int flow, union parameter *param);
+struct lcr_msg *message_get(void);
+void message_free(struct lcr_msg *message);