You probably want to remove the i4l handling of DTMF and silence suppression. You can do this by commenting out the signal processing routines in the kernel i4l code. This stops wasted work from being done. I posted the patch below a while back - not sure it it still works.
Iain
--- /build/linux-2.4.20/drivers/isdn/isdn_tty.c Fri Dec 21 17:41:54 2001
+++ isdn_tty.c Sat Feb 1 09:14:33 2003
@@ -133,9 +133,9 @@
if (info->online) {
r = 0;
#ifdef CONFIG_ISDN_AUDIO
- isdn_audio_eval_dtmf(info);
- if ((info->vonline & 1) && (info->emu.vpar[1]))
- isdn_audio_eval_silence(info);
+// isdn_audio_eval_dtmf(info);
+// if ((info->vonline & 1) && (info->emu.vpar[1]))
+// isdn_audio_eval_silence(info);
#endif
if ((tty = info->tty)) {
if (info->mcr & UART_MCR_RTS) {
@@ -190,10 +190,10 @@
#ifdef CONFIG_ISDN_AUDIO
ifmt = 1;
- if ((info->vonline) && (!info->emu.vpar[4]))
- isdn_audio_calc_dtmf(info, skb->data, skb->len, ifmt);
- if ((info->vonline & 1) && (info->emu.vpar[1]))
- isdn_audio_calc_silence(info, skb->data, skb->len, ifmt);
+// if ((info->vonline) && (!info->emu.vpar[4]))
+// isdn_audio_calc_dtmf(info, skb->data, skb->len, ifmt);
+// if ((info->vonline & 1) && (info->emu.vpar[1]))
+// isdn_audio_calc_silence(info, skb->data, skb->len, ifmt);
#endif
if ((info->online < 2)
#ifdef CONFIG_ISDN_AUDIO--On Tuesday, June 17, 2003 11:36 pm +0200 The Traveller <[EMAIL PROTECTED]> wrote:
Yo Iain,
On Tue, Jun 17, 2003 at 21:48:34 +0100, Iain McWilliams wrote:
Hi,
I'm trying to get asterisk running on kernel 2.4.20 however trawling through the archives I've found a few references to patches to remove i4l's dtmf detection, but have been unable to find the patch itself (I think it is isdn_audio.c). Can anyone point me in the right direction?
The problem I'm seeing is connecting a SIP softphone (tried a few) to an external number via an Hisax type 35 isdn card causes 1-2 sec silences in the audio on the SIP phone.
Any pointers?
I recently did this myself. Here's my patch. Works for me. Your mileage may vary. :-)
Grtz,
Oliver
Index: channels/chan_modem_i4l.c =================================================================== RCS file: /usr/cvsroot/asterisk/channels/chan_modem_i4l.c,v retrieving revision 1.2 diff -u -r1.2 chan_modem_i4l.c --- channels/chan_modem_i4l.c 27 Apr 2003 21:34:27 -0000 1.2 +++ channels/chan_modem_i4l.c 17 Jun 2003 21:52:04 -0000 @@ -265,7 +265,7 @@ if (option_debug) ast_log(LOG_DEBUG, "Ignoring Escaped character '%c' (%d)\n", esc, esc); return &p->fr; - case '0': + /* case '0': case '1': case '2': case '3': @@ -280,7 +280,7 @@ ast_log(LOG_DEBUG, "DTMF: '%c' (%d)\n", esc, esc); p->fr.frametype=AST_FRAME_DTMF; p->fr.subclass=esc; - return &p->fr; + return &p->fr; */ case 0: /* Pseudo signal */ return &p->fr; default: _______________________________________________ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
_______________________________________________ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
