Since this banch only is for debugging the chan_lcr deadlock problem, i will commit...
[lcr.git] / message.h
index a1f5baf..471e2c8 100644 (file)
--- a/message.h
+++ b/message.h
@@ -9,31 +9,31 @@
 **                                                                           **
 \*****************************************************************************/ 
 
-#define ISDN_TRANSMIT  256 // samples
-
 enum { /* interface types */
-       INFO_ITYPE_ISDN,
+       INFO_ITYPE_ISDN, /* call from external */
        INFO_ITYPE_ISDN_EXTENSION, /* call from internal extension */
        INFO_ITYPE_CHAN,
        INFO_ITYPE_VBOX
 };
 
 enum { /* number types */
-       INFO_NTYPE_UNKNOWN = 0,
+       INFO_NTYPE_NOTPRESENT = 0,
+       INFO_NTYPE_UNKNOWN,
        INFO_NTYPE_SUBSCRIBER,
        INFO_NTYPE_NATIONAL,
        INFO_NTYPE_INTERNATIONAL
 };
 
 enum { /* number presentation */
-       INFO_PRESENT_NULL = 0,
+       INFO_PRESENT_NOTAVAIL,
        INFO_PRESENT_ALLOWED,
-       INFO_PRESENT_RESTRICTED,
-       INFO_PRESENT_NOTAVAIL
+       INFO_PRESENT_RESTRICTED
 };
 
 enum { /* number presentation */
        INFO_SCREEN_USER, /* user provided */
+       INFO_SCREEN_USER_VERIFIED_PASSED,
+       INFO_SCREEN_USER_VERIFIED_FAILED,
        INFO_SCREEN_NETWORK /* network provided */
 };
 
@@ -144,6 +144,10 @@ enum {
        B_STATE_REMOTE,         /* bchannel assigned to remote application */
        B_STATE_IMPORTING,      /* BCHANNEL_REMOVE sent */
 };
+enum {
+       B_MODE_TRANSPARENT,     /* normal transparent audio */
+       B_MODE_HDLC,            /* hdlc data mode */
+};
 
 /* call-info structure CALLER */
 struct caller_info {
@@ -157,6 +161,11 @@ struct caller_info {
        int present;                    /* presentation */
        int screen;                     /* who provided the number */
        char display[84];               /* display information */
+       char id2[32];                   /* second callerid */
+       int ntype2;                     /* second type of number */
+       int present2;                   /* second presentation */
+       int screen2;                    /* second who provided the number */
+       char imsi[16];                  /* IMSI for gsm originated calls */
 };
 
 /* call-info structure DIALING */
@@ -167,6 +176,7 @@ struct dialing_info {
        int ntype;                      /* type of number */
        int sending_complete;           /* end of dialing */
        char display[84];               /* display information */
+       char keypad[33];                /* send keypad facility */
 };
 
 /* call-info structure CONNECT */
@@ -181,6 +191,7 @@ struct connect_info {
        int present;                    /* presentation */
        int screen;                     /* who provided the number */
        char display[84];               /* display information */
+       char imsi[16];                  /* IMSI for gsm terminated calls */
 };
 
 /* call-info structure DISCONNECT */
@@ -188,6 +199,7 @@ struct disconnect_info {
        int cause;                      /* reason for disconnect */
        int location;                   /* disconnect location */
        char display[84];               /* optional display information */
+       int force;                      /* special flag to release imediately */
 };
 
 /* call-info structure REDIR */
@@ -204,6 +216,7 @@ struct redir_info {
 
 /* call-info structure capability */
 struct capa_info {
+       int source_mode;                /* forward mode */
        int bearer_capa;                /* capability */
        int bearer_mode;                /* circuit/packet */
        int bearer_info1;               /* alaw,ulaw,... */
@@ -224,6 +237,12 @@ struct notify_info {
        int local;                      /* if set, endpoints gets information about audio channel (open/close) */
 };
 
+/* call-info structure PROGRESS */
+struct progress_info {
+       int progress;                   /* progress indicator */
+       int location;                   /* progress location */
+};
+
 /* call-info structure FACILITY */
 struct facility_info {
        char data[256];                 /* data info about facility */
@@ -248,6 +267,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 */
+//     struct progress_info progress;          /* info on call progress */
        char context[128];                      /* asterisk context */
 };
 
@@ -257,10 +277,11 @@ struct park_info {
        int len;
 };
 
+#define ISDN_TRANSMIT 256
 /* DATA */
 struct param_data {
-       unsigned char data[ISDN_TRANSMIT]; /* audio/hdlc data */
-       int len; /* audio/hdlc data */
+       unsigned char data[ISDN_TRANSMIT]; /* audio data */
+       int len; /* audio data */
 };
 
 struct param_play {
@@ -319,6 +340,7 @@ union parameter {
        struct connect_info connectinfo; /* CONNECT INFO */
        struct disconnect_info disconnectinfo; /* DISCONNECT INFO */
        struct notify_info notifyinfo; /* some notifications */
+       struct progress_info progressinfo; /* some progress */
        struct facility_info facilityinfo; /* some notifications */
        struct park_info parkinfo; /* MESSAGE_SUSPEND, MESSAGE_RESUME */
        int state; /* MESSAGE_TIMEOUT */
@@ -369,7 +391,8 @@ enum { /* messages between entities */
        MESSAGE_DISCONNECT,     /* disconnect with cause */
        MESSAGE_RELEASE,        /* release with cause */
        MESSAGE_TIMEOUT,        /* protocol state has timed out (port->epoint) */
-       MESSAGE_NOTIFY,         /* used to send progress and notify infos */
+       MESSAGE_NOTIFY,         /* used to send notify info */
+       MESSAGE_PROGRESS,       /* used to send progress info */
        MESSAGE_FACILITY,       /* used to facility infos, like aocd */
        MESSAGE_SUSPEND,        /* suspend port */
        MESSAGE_RESUME,         /* resume port */
@@ -430,6 +453,7 @@ 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);
-
+void init_message(void);
+void cleanup_message(void);