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

Reply via email to