]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Fixes to support QSIG over T1
authorDavid Yat Sin <dyatsin@sangoma.com>
Tue, 8 Feb 2011 16:52:40 +0000 (11:52 -0500)
committerDavid Yat Sin <dyatsin@sangoma.com>
Tue, 8 Feb 2011 17:10:19 +0000 (12:10 -0500)
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cfg.c

index bd5b13bfec90a11735889a6cd3273130ae7aa52c..9fe28190e195a0441a2cc94bcf619adb875c3db2 100644 (file)
@@ -84,6 +84,8 @@ static ftdm_status_t parse_switchtype(const char* switch_name, ftdm_span_t *span
                                signal_data->switchtype = SNGISDN_SWITCH_4ESS;
                        } else if (!strcasecmp(switch_name, "dms100")) {
                                signal_data->switchtype = SNGISDN_SWITCH_DMS100;
+                       } else if (!strcasecmp(switch_name, "qsig")) {
+                               signal_data->switchtype = SNGISDN_SWITCH_QSIG;
                        } else {
                                ftdm_log(FTDM_LOG_ERROR, "%s:Unsupported switchtype %s for trunktype:%s\n", span->name, switch_name, ftdm_trunk_type2str(span->trunk_type));
                                return FTDM_FAIL;
index a52a624dd0df8f47c4fbbef0619a3cda23b55bef..1bd2753e8131ed846a67bdb35eea50c08e276dbc 100644 (file)
@@ -667,25 +667,33 @@ ftdm_status_t sngisdn_stack_cfg_q931_dlsap(ftdm_span_t *span)
        cfg.t.cfg.s.inDLSAP.maxBSrvCnt = 2;
        cfg.t.cfg.s.inDLSAP.maxDSrvCnt = 2;
 #endif /* ISDN_SRV */
-       
-       if (signal_data->signalling == SNGISDN_SIGNALING_NET) {
-               cfg.t.cfg.s.inDLSAP.ackOpt = TRUE;
-               cfg.t.cfg.s.inDLSAP.intType = NETWORK;
-               cfg.t.cfg.s.inDLSAP.clrGlr = FALSE;                     /* in case of glare, do not clear local call */
-               cfg.t.cfg.s.inDLSAP.statEnqOpt = TRUE;
 
-               if (signal_data->switchtype == SNGISDN_SWITCH_EUROISDN ||
-                       signal_data->switchtype == SNGISDN_SWITCH_INSNET) {
-                       cfg.t.cfg.s.inDLSAP.rstOpt = FALSE;
-               } else {
-                       cfg.t.cfg.s.inDLSAP.rstOpt = TRUE;
-               }
-       } else {
-               cfg.t.cfg.s.inDLSAP.ackOpt = FALSE;
-               cfg.t.cfg.s.inDLSAP.intType = USER;
+       if (signal_data->switchtype == SNGISDN_SWITCH_QSIG) {
+               cfg.t.cfg.s.inDLSAP.ackOpt = TRUE;
+               cfg.t.cfg.s.inDLSAP.intType = SYM_USER;
                cfg.t.cfg.s.inDLSAP.clrGlr = TRUE;                      /* in case of glare, clear local call */
                cfg.t.cfg.s.inDLSAP.statEnqOpt = FALSE;
                cfg.t.cfg.s.inDLSAP.rstOpt = FALSE;
+       } else {
+               if (signal_data->signalling == SNGISDN_SIGNALING_NET) {
+                       cfg.t.cfg.s.inDLSAP.ackOpt = TRUE;
+                       cfg.t.cfg.s.inDLSAP.intType = NETWORK;
+                       cfg.t.cfg.s.inDLSAP.clrGlr = FALSE;                     /* in case of glare, do not clear local call */
+                       cfg.t.cfg.s.inDLSAP.statEnqOpt = TRUE;
+
+                       if (signal_data->switchtype == SNGISDN_SWITCH_EUROISDN ||
+                               signal_data->switchtype == SNGISDN_SWITCH_INSNET) {
+                               cfg.t.cfg.s.inDLSAP.rstOpt = FALSE;
+                       } else {
+                               cfg.t.cfg.s.inDLSAP.rstOpt = TRUE;
+                       }
+               } else {
+                       cfg.t.cfg.s.inDLSAP.ackOpt = FALSE;
+                       cfg.t.cfg.s.inDLSAP.intType = USER;
+                       cfg.t.cfg.s.inDLSAP.clrGlr = TRUE;                      /* in case of glare, clear local call */
+                       cfg.t.cfg.s.inDLSAP.statEnqOpt = FALSE;
+                       cfg.t.cfg.s.inDLSAP.rstOpt = FALSE;
+               }
        }
 
        /* Override the restart options if user selected that option */