Add FXS support
[lcr.git] / message.h
index 6330654..68abd5d 100644 (file)
--- a/message.h
+++ b/message.h
@@ -126,33 +126,34 @@ enum { /* isdnsignal */
        mISDNSIGNAL_DELAY,              /* use delay or adaptive jitter */
 };
 
-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 */
-       BCHANNEL_REMOVE_ACK,            /* application acknowledges */
-};
 enum {
        B_STATE_IDLE,           /* not open */
        B_STATE_ACTIVATING,     /* DL_ESTABLISH sent */
        B_STATE_ACTIVE,         /* channel active */
        B_STATE_DEACTIVATING,   /* DL_RELEASE sent */
-       B_STATE_EXPORTING,      /* BCHANNEL_ASSIGN sent */
-       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 */
 };
 
+enum {
+       MEDIA_TYPE_ALAW = 1,
+       MEDIA_TYPE_ULAW,
+       MEDIA_TYPE_GSM,
+       MEDIA_TYPE_GSM_EFR,
+       MEDIA_TYPE_AMR,
+       MEDIA_TYPE_GSM_HR,
+};
+
 /* rtp-info structure */
 struct rtp_info {
-       int payload_type;
-       unsigned int ip;
-       unsigned short port;
+       int payloads;                   /* number of payloads offered */
+       unsigned char payload_types[32];/* rtp payload types */
+       int media_types[32];            /* media type of given payload */
+       unsigned int ip;                /* peer's IP */
+       unsigned short port;            /* peer's port */
 };
 
 /* call-info structure CALLER */
@@ -183,6 +184,8 @@ struct dialing_info {
        int sending_complete;           /* end of dialing */
        char display[84];               /* display information */
        char keypad[33];                /* send keypad facility */
+       char context[32];               /* asterisk context */
+       int flash;                      /* flash key caused setup of call */
 };
 
 /* call-info structure CONNECT */
@@ -277,7 +280,6 @@ struct message_setup {
        struct useruser_info useruser;          /* user-user */
        struct progress_info progress;          /* info on call progress */
        struct rtp_info rtpinfo;                /* info about RTP peer */
-       char context[128];                      /* asterisk context */
 };
 
 /* call-info structure PARK */
@@ -335,7 +337,18 @@ struct param_bchannel {
 
 struct param_newref {
         int direction; /* who requests a refe? */
-       int mode; /* 0 = direct-mode, 1 = PBX mode */
+       char interface[32]; /* interface name for selecting remote interface */
+};
+
+struct param_traffic {
+       int len;        /* how much data */
+       unsigned char data[160];        /* 20ms */
+};
+
+struct param_3pty {
+       int begin, end;
+       int invoke, result, error;
+       unsigned char invoke_id;
 };
 
 /* structure of message parameter */
@@ -363,6 +376,9 @@ union parameter {
        struct param_bchannel bchannel; /* MESSAGE_BCHANNEL */
        struct param_newref newref; /* MESSAGE_NEWREF */
        unsigned int bridge_id; /* MESSAGE_BRIDGE */
+       struct param_traffic traffic; /* MESSAGE_TRAFFIC */
+       struct param_3pty threepty; /* MESSAGE_TRAFFIC */
+       unsigned int queue; /* MESSAGE_DISABLE_DEJITTER */
 };
 
 enum { /* message flow */
@@ -416,6 +432,10 @@ enum { /* messages between entities */
        MESSAGE_HELLO,          /* hello message for remote application */
        MESSAGE_NEWREF,         /* special message to create and inform ref */
        MESSAGE_BRIDGE,         /* control port bridge */
+       MESSAGE_TRAFFIC,        /* exchange bchannel traffic */
+       MESSAGE_3PTY,           /* 3PTY call invoke */
+       MESSAGE_TRANSFER,       /* call transfer invoke */
+       MESSAGE_DISABLE_DEJITTER/* tell (mISDN) port not to dejitter */
 };
 
 #define MESSAGES static const char *messages_txt[] = { \
@@ -451,6 +471,10 @@ enum { /* messages between entities */
        "MESSAGE_HELLO", \
        "MESSAGE_NEWREF", \
        "MESSAGE_BRIDGE", \
+       "MESSAGE_TRAFFIC", \
+       "MESSAGE_3PTY", \
+       "MESSAGE_TRANSFER", \
+       "MESSAGE_DISABLE_DEJITTER", \
 };