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 > ======================================= > > >