removed dynamic switching from transparent to hdlc mode. Instead we've got a config...
authorChristian Richter <christian.richter@beronet.com>
Mon, 20 Mar 2006 18:04:05 +0000 (18:04 +0000)
committerChristian Richter <christian.richter@beronet.com>
Mon, 20 Mar 2006 18:04:05 +0000 (18:04 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@13637 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_misdn.c
channels/misdn/chan_misdn_config.h
channels/misdn/isdn_lib.c
channels/misdn_config.c
configs/misdn.conf.sample

index 4290a30..6d517c3 100644 (file)
@@ -1105,6 +1105,21 @@ static int update_config (struct chan_list *ch, int orig)
        
        chan_misdn_log(1,port,"update_config: Getting Config\n");
 
+
+       int hdlc=0;
+       misdn_cfg_get( port, MISDN_CFG_HDLC, &hdlc, sizeof(int));
+       
+       if (hdlc) {
+               switch (bc->capability) {
+               case INFO_CAPABILITY_DIGITAL_UNRESTRICTED:
+               case INFO_CAPABILITY_DIGITAL_RESTRICTED:
+                       chan_misdn_log(1,bc->port," --> CONF HDLC\n");
+                       bc->hdlc=1;
+                       break;
+               }
+               
+       }
+       
        
        int pres, screen;
                        
@@ -1244,7 +1259,19 @@ static int read_config(struct chan_list *ch, int orig) {
 
        misdn_cfg_get( port, MISDN_CFG_NEED_MORE_INFOS, &bc->need_more_infos, sizeof(int));
        
-
+       int hdlc=0;
+       misdn_cfg_get( port, MISDN_CFG_HDLC, &hdlc, sizeof(int));
+       
+       if (hdlc) {
+               switch (bc->capability) {
+               case INFO_CAPABILITY_DIGITAL_UNRESTRICTED:
+               case INFO_CAPABILITY_DIGITAL_RESTRICTED:
+                       chan_misdn_log(1,bc->port," --> CONF HDLC\n");
+                       bc->hdlc=1;
+                       break;
+               }
+               
+       }
        /*Initialize new Jitterbuffer*/
        {
                misdn_cfg_get( port, MISDN_CFG_JITTERBUFFER, &ch->jb_len, sizeof(int));
@@ -1573,7 +1600,7 @@ static int misdn_call(struct ast_channel *ast, char *dest, int timeout)
 
                /* update screening and presentation */ 
                update_config(ch,ORG_AST);
-
+               
                /* fill in some ies from channel vary*/
                import_ies(ast, newbc);
                
index d30e148..9717e78 100644 (file)
@@ -27,6 +27,7 @@ enum misdn_cfg_elements {
        MISDN_CFG_TXGAIN,              /* int */
        MISDN_CFG_TE_CHOOSE_CHANNEL,   /* int (bool) */
        MISDN_CFG_PMP_L1_CHECK,        /* int (bool) */
+       MISDN_CFG_HDLC,                /* int (bool) */
        MISDN_CFG_CONTEXT,             /* char[] */
        MISDN_CFG_LANGUAGE,            /* char[] */
        MISDN_CFG_MUSICCLASS,            /* char[] */
index a699d7f..b0e9477 100644 (file)
@@ -818,9 +818,11 @@ int setup_bc(struct misdn_bchannel *bc)
        int channel=bc->channel-1-(bc->channel>16);
        int b_stid=stack->b_stids[channel>=0?channel:0];
 
+#if 0
        if (bc->hdlc) {
                clean_up_bc(bc);
        }
+#endif
        
        if (bc->upset) {
                cb_log(4, stack->port, "$$$ bc already upsetted stid :%x\n", b_stid);
@@ -946,9 +948,7 @@ int setup_bc(struct misdn_bchannel *bc)
        
        bc->upset=1;
        
-       
        manager_bchannel_deactivate(bc);
-       
        return 0;
 }
 
index fa712d5..ee31441 100644 (file)
@@ -88,6 +88,7 @@ static const struct misdn_cfg_spec port_spec[] = {
        { "txgain", MISDN_CFG_TXGAIN, MISDN_CTYPE_INT, "0", NONE },
        { "te_choose_channel", MISDN_CFG_TE_CHOOSE_CHANNEL, MISDN_CTYPE_BOOL, "no", NONE },
        { "pmp_l1_check", MISDN_CFG_PMP_L1_CHECK, MISDN_CTYPE_BOOL, "yes", NONE },
+       { "hdlc", MISDN_CFG_HDLC, MISDN_CTYPE_BOOL, "no", NONE },
        { "context", MISDN_CFG_CONTEXT, MISDN_CTYPE_STR, "default", NONE },
        { "language", MISDN_CFG_LANGUAGE, MISDN_CTYPE_STR, "en", NONE },
        { "musicclass", MISDN_CFG_MUSICCLASS, MISDN_CTYPE_STR, "default", NONE },
index 479d6bb..67c144b 100644 (file)
@@ -287,6 +287,12 @@ jitterbuffer=4000
 jitterbuffer_upper_threshold=0
 
 
+;
+; change this to yes, if you want to bridge a mISDN data channel to 
+; another channel type or to an application.
+;
+hdlc=no
+
 [intern]
 ; define your ports, e.g. 1,2 (depends on mISDN-driver loading order) 
 ports=1,2