Added 'extern' flag to interface.conf.
[lcr.git] / interface.h
index f97c28b..2c2ee23 100644 (file)
@@ -8,10 +8,6 @@
 ** interface header file                                                     **
 **                                                                           **
 \*****************************************************************************/ 
-
-#define FLAG_PORT_USE          1
-#define FLAG_PORT_PTP          (1<<1)
-
 enum { /* interface type */
        IF_TYPE_DIRECT,
        IF_TYPE_EXTENSION,
@@ -48,14 +44,28 @@ struct interface_port {
        struct interface        *interface; /* link to interface */
        struct mISDNport        *mISDNport; /* link to port */
        int                     portnum; /* port number */
+       char                    portname[64]; /* alternately: port name */
        int                     ptp; /* force load stack in PTP mode */
        int                     ptmp; /* force load stack in PTP mode */
        int                     nt; /* load stack in NT-mode */
+       int                     tespecial; /* special TE-mode behavior */
+       int                     l1hold; /* hold layer 1 (1=on, 0=off) */
+       int                     l2hold; /* hold layer 2 (1=force, -1=disable, 0=default) */
+       int                     gsm; /* interface is an GSM interface */
        int                     channel_force; /* forces channel by protocol */
        int                     nodtmf; /* disables DTMF */
        struct select_channel   *out_channel; /* list of channels to select */
        struct select_channel   *in_channel; /* the same for incoming channels */
        int                     block; /* set if interface is blocked */
+        int                    tout_setup;
+        int                    tout_dialing;
+        int                    tout_proceeding;
+        int                    tout_alerting;
+        int                    tout_disconnect;
+//     int                     tout_hold;
+//     int                     tout_park;
+       int                     dialmax; /* maximum number of digits to dial */
+       char                    tones_dir[128];
 };
 
 struct interface_msn {
@@ -76,6 +86,7 @@ struct interface_screen {
 struct interface {
        struct interface        *next;
        char                    name[64]; /* name of interface */
+       int                     external; /* interface used for extranl calls */
        int                     extension; /* calls are handled as extension */
        int                     is_tones; /* generate tones */
        int                     is_earlyb; /* bridge tones during call setup */
@@ -85,18 +96,18 @@ struct interface {
        struct interface_msn    *ifmsn; /* link to interface msn list */
        struct interface_screen *ifscreen_in; /* link to screening list */
        struct interface_screen *ifscreen_out; /* link to screening list */
-       int                     gain_tx, gain_rx; /* filter gain */
+       int                     tx_gain, rx_gain; /* filter gain */
        char                    pipeline[256]; /* filter pipeline */
        unsigned char           bf_key[56]; /* filter blowfish */
        int                     bf_len; /* filter length of blowfish */
 };
 
 struct interface_param {
-       char                    *name;
+       const char              *name;
 /*      return value           (pointer of function)(args ...) */
        int                     (*func)(struct interface *, char *, int, char *, char*);
-       char                    *usage;
-       char                    *help;
+       const char              *usage;
+       const char              *help;
 };