Data-Over-Voice
[lcr.git] / chan_lcr.h
index 75ad693..ab7101d 100644 (file)
@@ -9,24 +9,24 @@
 **                                                                           **
 \*****************************************************************************/
 
-/* 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 long           ref;    /* callref for this channel */
+       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;
                                        /* store cause from lcr */
-       unsigned char           dialque[64];
+       char                    dialque[64];
                                        /* 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;
@@ -39,6 +39,45 @@ struct chan_call {
                                        /* read buffer for frame */
        struct ast_frame        read_fr;
                                        /* frame for read */
+       char                    interface[32];
+                                       /* 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                     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 */
+       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 */
+               
 };
 
 enum {
@@ -93,7 +132,10 @@ enum {
 };
 
 
-#define CERROR(call, ast, arg...) chan_lcr_log(__LOG_ERROR, __FILE__, __LINE__, call, ast, ##arg)
-#define CDEBUG(call, ast, arg...) chan_lcr_log(__LOG_DEBUG, __FILE__, __LINE__, call, ast, ##arg)
-void chan_lcr_log(int type, const char *file, int line, struct chan_call *call, struct ast_channel *ast, const char *fmt, ...);
+#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, ...);
+extern unsigned char flip_bits[256];
+void lcr_in_dtmf(struct chan_call *call, int val);