Added keypad forwarding, keypad parameter, chan_lcr keypad option 'k'.
[lcr.git] / message.h
index 8283aaf..63abc65 100644 (file)
--- a/message.h
+++ b/message.h
 #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,
+       INFO_ITYPE_VBOX
 };
 
 enum { /* number types */
+       INFO_NTYPE_NOTPRESENT = 0,
        INFO_NTYPE_UNKNOWN,
        INFO_NTYPE_SUBSCRIBER,
        INFO_NTYPE_NATIONAL,
-       INFO_NTYPE_INTERNATIONAL,
+       INFO_NTYPE_INTERNATIONAL
 };
 
 enum { /* number presentation */
-       INFO_PRESENT_NULL,
-       INFO_PRESENT_ALLOWED,
-       INFO_PRESENT_RESTRICTED,
        INFO_PRESENT_NOTAVAIL,
+       INFO_PRESENT_ALLOWED,
+       INFO_PRESENT_RESTRICTED
 };
 
 enum { /* number presentation */
        INFO_SCREEN_USER, /* user provided */
-       INFO_SCREEN_NETWORK, /* network provided */
+       INFO_SCREEN_USER_VERIFIED_PASSED,
+       INFO_SCREEN_USER_VERIFIED_FAILED,
+       INFO_SCREEN_NETWORK /* network provided */
 };
 
 enum { /* redirection reason */
-       INFO_REDIR_UNKNOWN,
+       INFO_REDIR_UNKNOWN = 0,
        INFO_REDIR_BUSY,
        INFO_REDIR_NORESPONSE,
        INFO_REDIR_UNCONDITIONAL,
        INFO_REDIR_OUTOFORDER,
-       INFO_REDIR_CALLDEFLECT,
+       INFO_REDIR_CALLDEFLECT
 };
 
 #define        INFO_NOTIFY_NONE                        0x00
@@ -129,6 +131,7 @@ enum { /* isdnsignal */
 
 enum { /* bchannel assignment */
        BCHANNEL_REQUEST,               /* application requests bchannel */
+       BCHANNEL_RELEASE,               /* application releases bchannel */
        BCHANNEL_ASSIGN,                /* bchannel assigned by LCR */
        BCHANNEL_ASSIGN_ACK,            /* application acknowledges */
        BCHANNEL_REMOVE,                /* bchannel removed by LCR */
@@ -144,14 +147,8 @@ enum {
        B_STATE_IMPORTING,      /* BCHANNEL_REMOVE sent */
 };
 enum {
-       B_EVENT_USE,            /* activate/export bchannel */
-       B_EVENT_EXPORTREQUEST,  /* remote app requests bchannel */
-       B_EVENT_ACTIVATED,      /* DL_ESTABLISH received */
-       B_EVENT_DROP,           /* deactivate/re-import bchannel */
-       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 */
+       B_MODE_TRANSPARENT,     /* normal transparent audio */
+       B_MODE_HDLC,            /* hdlc data mode */
 };
 
 /* call-info structure CALLER */
@@ -166,6 +163,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 */
@@ -175,6 +177,8 @@ struct dialing_info {
        int itype;                      /* type of interface */
        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 */
@@ -189,6 +193,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 */
@@ -212,6 +217,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,... */
@@ -249,7 +255,6 @@ struct useruser_info {
 struct message_setup {
        int isdn_port; /* card number 1...n (only on calls from isdn port) */
        int port_type; /* type of port (only required if message is port -> epoint) */
-       int dtmf; /* used to enabled dtmf dialing at setup state */
        int partyline; /* if set, call will be a conference room */
        int partyline_jingle; /* if set, the jingle will be played on conference join */
        struct caller_info callerinfo;          /* information about the caller */
@@ -257,6 +262,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 context[128];                      /* asterisk context */
 };
 
 /* call-info structure PARK */
@@ -310,7 +316,7 @@ struct param_hello {
 
 struct param_bchannel {
        int type; /* BCHANNEL_* */
-       unsigned long handle; /* bchannel stack/portid */
+       unsigned int handle; /* bchannel stack/portid */
        int tx_gain, rx_gain;
        char pipeline[256];
        unsigned char crypt[128];
@@ -356,8 +362,8 @@ 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 */
-       unsigned long id_to;
+       unsigned int id_from; /* in case of flow==PORT_TO_EPOINT: id_from is the port's serial, id_to is the epoint's serial */
+       unsigned int id_to;
        int keep;
        union parameter param;
 };
@@ -366,6 +372,7 @@ enum { /* messages between entities */
        MESSAGE_NONE,           /* no message */
        MESSAGE_TONE,           /* set information tone (to isdn port) */
        MESSAGE_DTMF,           /* dtmf digit (from isdn port) */
+       MESSAGE_ENABLEKEYPAD,   /* remote application requests keypad/dtmf */
        MESSAGE_mISDNSIGNAL,    /* special mixer command (down to isdn port) */
        MESSAGE_SETUP,          /* setup message */
        MESSAGE_INFORMATION,    /* additional digit information */
@@ -400,6 +407,7 @@ enum { /* messages between entities */
        "MESSAGE_NONE", \
        "MESSAGE_TONE", \
        "MESSAGE_DTMF", \
+       "MESSAGE_ENABLEKEYPAD", \
        "MESSAGE_mISDNSIGNAL", \
        "MESSAGE_SETUP", \
        "MESSAGE_INFORMATION", \