Hi,
I am using 1.6.0.26, with chan_ss7 and chunk size 80 as I found the
1.6.1 and 1.6.2 branches unstable. I have a A108 with HWEC.
The patch chan_ss7-1.3-160.patch will allow you to patch chan_ss7-1.3 so
that it will compile with asterisk-1.6.0.26
First install the vanilla dahdi-linux-complete-2.2.1+2.2.1
Then install wanpipe 3.5.10 or 3.4.8 and specify chunk size 80. I am
using 3.4.8.
(Install asterisk if it is not already installed).
patch chan_ss7 with chan_ss7-1.3-160.patch so that it will work 1.6.0.26
Then patch with chan_ss7-1.3-160-chunk80.patch so that chunk size 80
works with chan_ss7.
Cheers,
Amish
On 04/13/2010 02:42 AM, Goke M Aruna wrote:
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* <hoai...@gmx.de <mailto:hoai...@gmx.de>>
Date: Mon, Mar 15, 2010 at 2:25 PM
Subject: Re: [asterisk-ss7] dahdi chunk_size chan_ss7
To: asterisk-ss7@lists.digium.com <mailto:asterisk-ss7@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 - cerv...@njs.netlab.cz <mailto:cerv...@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
diff -Naur chan_ss7-1.3/l4isup.c chan_ss7-1.3-160/l4isup.c
--- chan_ss7-1.3/l4isup.c 2009-12-06 09:34:42.000000000 +0000
+++ chan_ss7-1.3-160/l4isup.c 2010-03-12 13:37:23.000000000 +0000
@@ -286,7 +286,7 @@
#ifdef USE_ASTERISK_1_4
#define FRAME_DATA(fr,offset) (((unsigned char*) (fr)->data) + offset)
#else
-#define FRAME_DATA(fr,offset) (((unsigned char*) (fr)->data.ptr) + offset)
+#define FRAME_DATA(fr,offset) (((unsigned char*) (fr)->data) + offset)
#endif
#endif
@@ -4592,7 +4592,7 @@
#if defined(USE_ASTERISK_1_2) || defined(USE_ASTERISK_1_4)
ast_dsp_digitmode(pvt->dsp, DSP_DIGITMODE_DTMF | (link->relaxdtmf ?
DSP_DIGITMODE_RELAXDTMF : 0));
#else
- ast_dsp_set_digitmode(pvt->dsp, DSP_DIGITMODE_DTMF | (link->relaxdtmf ?
DSP_DIGITMODE_RELAXDTMF : 0));
+ ast_dsp_digitmode(pvt->dsp, DSP_DIGITMODE_DTMF | (link->relaxdtmf ?
DSP_DIGITMODE_RELAXDTMF : 0));
#endif
}
/* Set gain - Channel must be in audiomode when setting gain */
diff -Naur chan_ss7-1.3/mtp.c chan_ss7-1.3-160/mtp.c
--- chan_ss7-1.3/mtp.c 2009-12-06 09:34:42.000000000 +0000
+++ chan_ss7-1.3-160/mtp.c 2010-03-12 07:15:14.000000000 +0000
@@ -151,7 +151,7 @@
/* Counts of raw bytes read and written, used to timestamp raw dumps.
Make them double to avoid overflow for quite a while. */
- double readcount, writecount;
+ unsigned long long int readcount, writecount;
/* Sequence numbers and indicator bits to be sent in signalling units. */
int send_fib;
@@ -325,6 +325,8 @@
format = "linkset %s, link %s/%d %s, sls %d, total: %6llu, %6llu\n";
sprintf(r, format, m->link->linkset->name, m->link->name, m->schannel+1,
s, m->sls, m->readcount, m->writecount);
strcat(buff, r);
+ m->readcount = 0;
+ m->writecount = 0;
}
return 0;
}
diff -Naur chan_ss7-1.3-160/mtp.c chan_ss7-1.3-160-chunk80/mtp.c
--- chan_ss7-1.3-160/mtp.c 2010-03-12 07:15:14.000000000 +0000
+++ chan_ss7-1.3-160-chunk80/mtp.c 2010-03-23 18:24:24.000000000 +0000
@@ -1831,7 +1831,8 @@
gettimeofday(&now, NULL);
tdiff = timediff_usec(now, last);
#ifndef MTP_OVER_UDP
- if (tdiff > 5000)
+ //if (tdiff > 5000)
+ if (tdiff > 50000)
if (n_mtp2_state)
fifo_log(m, LOG_NOTICE, "Excessive poll delay %d!\n", tdiff);//xxxx
#endif
diff -Naur chan_ss7-1.3-160/transport.h chan_ss7-1.3-160-chunk80/transport.h
--- chan_ss7-1.3-160/transport.h 2009-12-06 09:34:42.000000000 +0000
+++ chan_ss7-1.3-160-chunk80/transport.h 2010-03-23 18:25:47.000000000
+0000
@@ -37,7 +37,8 @@
#ifdef MTP_OVER_UDP
ZAP_BUF_SIZE = 64,
#else
- ZAP_BUF_SIZE = 16,
+ //ZAP_BUF_SIZE = 16,
+ ZAP_BUF_SIZE = 160,
#endif
};
--
_____________________________________________________________________
-- 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