Data-Over-Voice
[lcr.git] / chan_lcr.h
index 54a181c..ab7101d 100644 (file)
@@ -9,17 +9,14 @@
 **                                                                           **
 \*****************************************************************************/
 
-/* structure for all calls */
-struct bchannel;
 struct chan_call {
        struct chan_call        *next;  /* link to next call instance */
        int                     state;  /* current call state CHAN_LCR_STATE */
        unsigned int            ref;    /* callref for this channel */
+       int                     ref_was_assigned;
        void                    *ast;   /* current asterisk channel */
        int                     pbx_started;
                                        /* indicates if pbx que is available */
-       struct bchannel         *bchannel;
-                                       /* reference to bchannel, if set */
        int                     audiopath;
                                        /* audio is available */
        int                     cause, location;
@@ -28,6 +25,8 @@ struct chan_call {
                                        /* queue dialing prior setup ack */
        char                    oad[64];/* caller id in number format */
 
+       struct caller_info      callerinfo;
+       struct redir_info       redirinfo;
        struct connect_info     connectinfo;
                                        /* store connectinfo form lcr */
        int                     bridge_id;
@@ -44,29 +43,40 @@ struct chan_call {
                                        /* LCR interface name for setup */
        char                    dialstring[64];
                                        /* cached dial string for setup */
+#ifndef AST_PARTY_CALLER
         char                    cid_num[64]; /* cached cid for setup */
        char                    cid_name[64]; /* cached cid for setup */
        char                    cid_rdnis[64]; /* cached cid for setup */
+#endif
        char                    display[128];
                                        /* display for setup */
-       int                     dtmf;
-                                       /* shall dtmf be enabled */
-       int                     no_dtmf;
-                                       /* dtmf disabled by option */
+       int                     dsp_dtmf;
+                                       /* decode dtmf by dsp */
+       int                     inband_dtmf; /* generate dtmf tones, if
+                                             requested by asterisk */
         int                     rebuffer; /* send only 160 bytes frames
                                             to asterisk */
+
+       int                     framepos; /* send only 160 bytes frames to asterisk */
+       
         int                     on_hold; /* track hold management, since
                                            sip phones sometimes screw it up */
        char                    pipeline[256];
                                        /* echo cancel pipeline by option */
        int                     tx_gain, rx_gain;
                                        /* gain by option */
+       int                     keypad;
+                                       /* use keypad to dial number */
        unsigned char           bf_key[56];
        int                     bf_len; /* blowfish crypt key */
-       int                     nodsp, hdlc;
+       struct ast_dsp          *dsp; /* ast dsp processor for fax/tone detection */
+       struct ast_trans_pvt    *trans; /* Codec translation path as fax/tone detection requires slin */
+       int                     tx_queue, hdlc, faxdetect, ast_dsp;
                                        /* flags for bchannel mode */
        char                    queue_string[64];
                                        /* queue for asterisk */
+       int                     has_pattern;
+                                       /* pattern are available, PROGRESS has been indicated */
                
 };
 
@@ -122,6 +132,8 @@ enum {
 };
 
 
+#define SOCKET_RETRY_TIMER     5
+
 #define CERROR(call, ast, arg...) chan_lcr_log(__LOG_ERROR, __FILE__, __LINE__,  __FUNCTION__, call, ast, ##arg)
 #define CDEBUG(call, ast, arg...) chan_lcr_log(__LOG_NOTICE, __FILE__, __LINE__,  __FUNCTION__, call, ast, ##arg)
 void chan_lcr_log(int type, const char *file, int line, const char *function,  struct chan_call *call, struct ast_channel *ast, const char *fmt, ...);