[asterisk-ss7] Fwd: dahdi chunk_size chan_ss7

Goke M Aruna goksie at gmail.com
Mon Apr 12 19:42:44 CDT 2010


hi all,

Can you please help me out? I tried setting up asterisk-1.6.2.6 +
wanpipe-3.5.10 dahdi-2.2.1.1 and chan_ss7-1.3.

i got the signalling up but its lost the signalling to t7 timeout after a
while and i have to restart wanrouter and asterisk to get the signaling
INSERVICE again.

i have done my little effort without luck,  I have tried disabling the sltm
but i keep getting unknown config option in ss7.

kindly help.

goksie
---------- Forwarded message ----------
From: Ngo-Vi Hoai-Anh <hoaianh at gmx.de>
Date: Mon, Mar 15, 2010 at 2:25 PM
Subject: Re: [asterisk-ss7] dahdi chunk_size chan_ss7
To: asterisk-ss7 at lists.digium.com


We have managed to make it work with DAHDI_CHUNKSIZE 40.

We use:
- Sangoma A 108
- Chan_ss7 1.3
- Dahdi-linux-2.2.1

It works but we don't know for sure how stable it is. I would be very
thankful if someone tries and give us some feedback.

Patch on chan_ss7

diff -ur chan_ss7-1.3/mtp.c chan_ss7-chunk40-1.3/mtp.c
--- chan_ss7-1.3/mtp.c    2009-12-06 10:34:42.000000000 +0100
+++ chan_ss7-chunk40-1.3/mtp.c    2010-03-15 11:09:07.000000000 +0100
@@ -1829,7 +1829,8 @@
    gettimeofday(&now, NULL);
    tdiff = timediff_usec(now, last);
 #ifndef MTP_OVER_UDP
-    if (tdiff > 5000)
+    //if (tdiff > 5000)
+    if (tdiff > 25000)
      if (n_mtp2_state)
    fifo_log(m, LOG_NOTICE, "Excessive poll delay %d!\n", tdiff);//xxxx
 #endif
diff -ur chan_ss7-1.3/transport.h chan_ss7-chunk40-1.3/transport.h
--- chan_ss7-1.3/transport.h    2009-12-06 10:34:42.000000000 +0100
+++ chan_ss7-chunk40-1.3/transport.h    2010-03-15 10:49:10.000000000 +0100
@@ -37,7 +37,8 @@
 #ifdef MTP_OVER_UDP
  ZAP_BUF_SIZE = 64,
 #else
-  ZAP_BUF_SIZE = 16,
+  //ZAP_BUF_SIZE = 16,
+  ZAP_BUF_SIZE = 80,
 #endif
 };




Patch on dahdi

diff -ur dahdi-linux-2.2.1/drivers/dahdi/dahdi-base.c
/var/tmp/dahdi-linux-2.2.1/drivers/dahdi/dahdi-base.c
--- dahdi-linux-2.2.1/drivers/dahdi/dahdi-base.c    2009-12-28
20:16:37.000000000 +0100
+++ /var/tmp/dahdi-linux-2.2.1/drivers/dahdi/dahdi-base.c    2010-03-15
13:20:23.000000000 +0100
@@ -3047,7 +3047,8 @@
            case DAHDI_TONE_MFR1_ST2P:
            case DAHDI_TONE_MFR1_ST3P:
                /* signaling control tones are always 100ms */
-                t->tonesamples = 100 * DAHDI_CHUNKSIZE;
+                /* t->tonesamples = 100 * DAHDI_CHUNKSIZE; */
+                t->tonesamples = 100 * DAHDI_DEFAULT_CHUNKSIZE;
                break;
            default:
                t->tonesamples = global_dialparams.mfv1_tonelen;
@@ -4249,27 +4250,37 @@
                continue;

            for (i = 0; i < ARRAY_SIZE(z->dtmf); i++) {
-                z->dtmf[i].tonesamples = global_dialparams.dtmf_tonelen
* DAHDI_CHUNKSIZE;
+                // z->dtmf[i].tonesamples =
global_dialparams.dtmf_tonelen * DAHDI_CHUNKSIZE;
+                z->dtmf[i].tonesamples = global_dialparams.dtmf_tonelen
* DAHDI_DEFAULT_CHUNKSIZE;
            }

            /* for MFR1, we only adjust the length of the digits */
            for (i = DAHDI_TONE_MFR1_0; i <= DAHDI_TONE_MFR1_9; i++) {
-                z->mfr1[i - DAHDI_TONE_MFR1_BASE].tonesamples =
global_dialparams.mfv1_tonelen * DAHDI_CHUNKSIZE;
+                //z->mfr1[i - DAHDI_TONE_MFR1_BASE].tonesamples =
global_dialparams.mfv1_tonelen * DAHDI_CHUNKSIZE;
+                z->mfr1[i - DAHDI_TONE_MFR1_BASE].tonesamples =
global_dialparams.mfv1_tonelen * DAHDI_DEFAULT_CHUNKSIZE;
            }

            for (i = 0; i < ARRAY_SIZE(z->mfr2_fwd); i++) {
-                z->mfr2_fwd[i].tonesamples =
global_dialparams.mfr2_tonelen * DAHDI_CHUNKSIZE;
+                //z->mfr2_fwd[i].tonesamples =
global_dialparams.mfr2_tonelen * DAHDI_CHUNKSIZE;
+                z->mfr2_fwd[i].tonesamples =
global_dialparams.mfr2_tonelen * DAHDI_DEFAULT_CHUNKSIZE;
            }

            for (i = 0; i < ARRAY_SIZE(z->mfr2_rev); i++) {
-                z->mfr2_rev[i].tonesamples =
global_dialparams.mfr2_tonelen * DAHDI_CHUNKSIZE;
+                //z->mfr2_rev[i].tonesamples =
global_dialparams.mfr2_tonelen * DAHDI_CHUNKSIZE;
+                z->mfr2_rev[i].tonesamples =
global_dialparams.mfr2_tonelen * DAHDI_DEFAULT_CHUNKSIZE;
            }
        }
        write_unlock(&zone_lock);
-
+
+        /**
        dtmf_silence.tonesamples = global_dialparams.dtmf_tonelen *
DAHDI_CHUNKSIZE;
        mfr1_silence.tonesamples = global_dialparams.mfv1_tonelen *
DAHDI_CHUNKSIZE;
        mfr2_silence.tonesamples = global_dialparams.mfr2_tonelen *
DAHDI_CHUNKSIZE;
+        */
+
+        dtmf_silence.tonesamples = global_dialparams.dtmf_tonelen *
DAHDI_DEFAULT_CHUNKSIZE;
+        mfr1_silence.tonesamples = global_dialparams.mfv1_tonelen *
DAHDI_DEFAULT_CHUNKSIZE;
+        mfr2_silence.tonesamples = global_dialparams.mfr2_tonelen *
DAHDI_DEFAULT_CHUNKSIZE;

        break;
    }
diff -ur dahdi-linux-2.2.1/drivers/dahdi/digits.h
/var/tmp/dahdi-linux-2.2.1/drivers/dahdi/digits.h
--- dahdi-linux-2.2.1/drivers/dahdi/digits.h    2008-08-06
01:56:00.000000000 +0200
+++ /var/tmp/dahdi-linux-2.2.1/drivers/dahdi/digits.h    2010-03-15
13:23:02.000000000 +0100
@@ -19,10 +19,14 @@
 #ifndef _DIGITS_H
 #define _DIGITS_H

-#define DEFAULT_DTMF_LENGTH    100 * DAHDI_CHUNKSIZE
-#define DEFAULT_MFR1_LENGTH    68 * DAHDI_CHUNKSIZE
-#define DEFAULT_MFR2_LENGTH    100 * DAHDI_CHUNKSIZE
-#define    PAUSE_LENGTH        500 * DAHDI_CHUNKSIZE
+//#define DEFAULT_DTMF_LENGTH    100 * DAHDI_CHUNKSIZE
+#define DEFAULT_DTMF_LENGTH    100 * DAHDI_DEFAULT_CHUNKSIZE
+//#define DEFAULT_MFR1_LENGTH    68 * DAHDI_CHUNKSIZE
+#define DEFAULT_MFR1_LENGTH    68 * DAHDI_DEFAULT_CHUNKSIZE
+//#define DEFAULT_MFR2_LENGTH    100 * DAHDI_CHUNKSIZE
+#define DEFAULT_MFR2_LENGTH    100 * DAHDI_DEFAULT_CHUNKSIZE
+//#define    PAUSE_LENGTH        500 * DAHDI_CHUNKSIZE
+#define    PAUSE_LENGTH        500 * DAHDI_DEFAULT_CHUNKSIZE

 /* At the end of silence, the tone stops */
 static struct dahdi_tone dtmf_silence = {
diff -ur dahdi-linux-2.2.1/include/dahdi/kernel.h
/var/tmp/dahdi-linux-2.2.1/include/dahdi/kernel.h
--- dahdi-linux-2.2.1/include/dahdi/kernel.h    2009-11-12
21:02:24.000000000 +0100
+++ /var/tmp/dahdi-linux-2.2.1/include/dahdi/kernel.h    2010-03-15
13:13:00.000000000 +0100
@@ -94,9 +94,11 @@
 /*! Default chunk size for conferences and such -- static right now,
might make
   variable sometime.  8 samples = 1 ms = most frequent service
interval possible
   for a USB device */
-#define DAHDI_CHUNKSIZE         8
+/*! oroginal  #define DAHDI_CHUNKSIZE          8 */
+#define DAHDI_CHUNKSIZE         40
 #define DAHDI_MIN_CHUNKSIZE     DAHDI_CHUNKSIZE
-#define DAHDI_DEFAULT_CHUNKSIZE     DAHDI_CHUNKSIZE
+/*! original #define DAHDI_DEFAULT_CHUNKSIZE     DAHDI_CHUNKSIZE */
+#define DAHDI_DEFAULT_CHUNKSIZE     8
 #define DAHDI_MAX_CHUNKSIZE      DAHDI_CHUNKSIZE
 #define DAHDI_CB_SIZE         2





marek cervenka schrieb:
>> Dear folk,
>>
>> I've found this interesting document
>>
http://www.sangoma.com/assets/docs/misc/2009_10_09_How_to_Reduce_Asterisk_System_Loads.pdf
.
>>
>> After having read it I've tried to set chunk size to 40 for using
>> sangoma + chan_ss7. But it doesn't work. Chan_ss7 seems not to be able
>> able to setup link on mtp level. I got this permanently:
>> ...
>>
>> Has someone already struggled with the same problem? Is there any patch
>> for this?
>>
>
> i have the same problem. no solution
>
> ---------------------------------------
> jabber          - cervajs at njs.netlab.cz
> Marek Cervenka
> =======================================
>
>
>


--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-ss7 mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-ss7
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-ss7/attachments/20100413/d58707ec/attachment.htm 


More information about the asterisk-ss7 mailing list