[Freeswitch-dev] FXS bridged on FXO ports and DTMF - Deja Vu
Moises Silva
moises.silva at gmail.com
Wed Jun 30 14:14:37 PDT 2010
Can you try 3.5.12 with and without hw ec enabled and check if cid is there?
Moises Silva
Senior Software Engineer
Sangoma Technologies Inc. | 50 McIntosh Drive, Suite 120, Markham ON L3R 9T3
Canada
t. 1 905 474 1990 x 128 | e. moy at sangoma.com
On Wed, Jun 30, 2010 at 2:58 PM, François Legal <devel at thom.fr.eu.org>wrote:
> Hello,
>
>
>
> did try to upgrade to wanpipe 3.5.12 (from 3.5.11) and thought the DTMF
> problem seems to be fixed (did not had the opportunity to really test it
> thourougthly), I seem to have lost the CID feature in the upgrade.
>
> Roll back to 3.5.11 and CID is back there.
>
>
>
> François
>
>
>
>
>
> On Mon, 28 Jun 2010 18:54:19 -0400, Moises Silva wrote:
>
> Hello,
>
> I spent a few hours playing with DTMF stuff and analog cards and it seems
> there is 2 issues at hand.
>
> 1. Bleeding DTMF.
> 2. Echo DTMF.
>
> The first issue, for software DTMF, can be solved with Anthony's pre buffer
> size feature. However that introduces delay by design, and it will not work
> for large DTMFs (if the dtmf is larger than the buffer).
>
> For hardware DTMF a new driver was just released that includes a
> configuration to allow the EC chip to perform the dtmf tone removal which
> cuts down the bleeding to only 20ms (in my testing) there is no way a DTMF
> detector will consider that a valid DTMF and therefore the bleeding should
> be solved with no delay introduced. The option is HWEC_DTMF_REMOVAL = YES,
> must be added along with the usual TDMV_HW_DTMF = YES in wanpipex.conf
>
> Ideally the software DTMF detector (in this case teletone) should cut it at
> the same time that it detects it. I thought may be spandsp would help, but
> it seems spandsp does not have an option to squelch the dtmf tone. May be
> Steve can help with that. I pinged him on IRC and he said he may get some
> code working, but there is no date for that and also that would involve
> integrating spandsp into FreeTDM, any reason to not do this now that spandsp
> is LGPL?
>
> As for the echo dtmf. It seems sometimes an outgoing DTMF may be detected
> as incoming DTMF due to echo. There is not much we can do there if you don't
> have echo cancellation. If however you have this issue even with HW EC, call
> Sangoma tech support and we will be happy to look at the issue.
>
> In another note, I added a variable and application to disable DTMF.
>
>
>
> That will disable DTMF (either software or hardware) in the leg executing
> that app. If you want to disable in the outgoing leg (before a bridge), you
> must export a special variable:
>
>
>
> The DTMF is enabled automatically on each call, so there is no need to
> enable it for each call. But in case you need to enable it:
>
>
>
> Moises Silva
> Senior Software Engineer
> Sangoma Technologies Inc. | 50 McIntosh Drive, Suite 120, Markham ON L3R
> 9T3 Canada
> t. 1 905 474 1990 x 128 | e. moy at sangoma.com
>
>
> On Wed, Jun 16, 2010 at 12:09 PM, Anthony Minessale <
> anthony.minessale at gmail.com> wrote:
>
>> openzap_pre_buffer_size is a variable you can set to specific number of MS
>> 60 for example.
>> it will pre_buffer the audio on the channel so when you detect dtmf it
>> will completely drop the buffer so all of the original
>> dtmf should be dropped as well. probably if the dtmf is too long then it
>> will cause problems anyway.
>> if that pre buffer does not fix anything it would point to echo or
>> bleeding.
>> We could make a variable to disable dtmf detection completely on a
>> per-call basis possibly but you will still probably hear it bleeding.
>> This type of problem was reported fixed with sangoma because of the
>> echo canceler.
>> I don't use dahdi or digium stuff much so I can't comment on what happens
>> when you use it.
>>
>>
>>
>> On Wed, Jun 16, 2010 at 3:41 AM, François Legal <devel at thom.fr.eu.org>wrote:
>>
>>> Does this really fix it ?
>>> I wonder because the problem I see here is also that the FXS side detects
>>> the DTMF and then queues it on the FXO side for generation. That leads to
>>> the called party receiving twice the DTMF, the first one is the inband
>>> DTMF, the second is the one queued/generated by the FXO channel.
>>>
>>> For a clean fix, I guess some kind of application should be created, that
>>> would prevent DTMF to be queued on the other channel. Such application
>>> would then be called before the bridge. Maybe there is a cleaner way to
>>> do
>>> this.
>>>
>>> François
>>>
>>> On Tue, 15 Jun 2010 18:23:13 -0500, "Jeroen C. van Gelderen"
>>> <jeroeng at thegreek.com> wrote:
>>> > Hi everybody,
>>> >
>>> > I have a problem that is very similar to a problem
>>> > reported by François [1] except for the fact that
>>> > my FXS and FXO ports are on a Xorcom Astribank
>>> > device instead of a Sangoma.
>>> >
>>> > To quote François: "The problem is that each leg of
>>> > the bridge is detecting the inband DTMF, and so
>>> > [F]reeswitch sends each detected DTMF from one leg
>>> > to the other, and so on and so forth (as each leg
>>> > detects the DTMF again and again)"
>>> >
>>> > HIS words but evidenced by the MY log :)
>>> >
>>> > The snippet below has DTMF coming in on the FXS port
>>> > (1:1) and bouncing between it and the FXO port (3:1).
>>> > The ports are simply bridged together with
>>> >
>>> > "bridge(OpenZap/3/1/F)" or "bridge(OpenZap/3/1/w)"
>>> >
>>> > I'm running:
>>> >
>>> > FreeSWITCH version: 1.0.head (git-01c0c69 2010-06-08 16-22-21 -0500)
>>> > dahdi: Version: SVN-trunk-r8762
>>> >
>>> > Output of lsdahdi at end of message.
>>> >
>>> > ----8<----8<----8<----8<----8<----8<----8<----
>>> > [...]
>>> > 2010-06-13 04:18:39.217256 [DEBUG] mod_openzap.c:721 queue DTMF [4]
>>> > 2010-06-13 04:18:39.256255 [DEBUG] zap_io.c:2062 3:1 GENERATE DTMF [4]
>>> > 2010-06-13 04:18:39.397253 [DEBUG] mod_openzap.c:721 queue DTMF [4]
>>> > 2010-06-13 04:18:39.439252 [DEBUG] mod_openzap.c:780 Dropping frame!
>>> (write
>>> > not ready)
>>> > 2010-06-13 04:18:39.439252 [DEBUG] zap_io.c:2062 1:1 GENERATE DTMF [4]
>>> > 2010-06-13 04:18:39.637249 [DEBUG] mod_openzap.c:721 queue DTMF [4]
>>> > 2010-06-13 04:18:39.676248 [DEBUG] zap_io.c:2062 3:1 GENERATE DTMF [4]
>>> > 2010-06-13 04:18:39.859244 [DEBUG] mod_openzap.c:780 Dropping frame!
>>> (write
>>> > not ready)
>>> > [...ad infinitum...]
>>> > ----8<----8<----8<----8<----8<----8<----8<----
>>> >
>>> > Because I needed DTMF pass-through working "now"
>>> > I applied an ugly HACK. This drops DTMF tones
>>> > detected on spans 3 and 4 (which are my FXO
>>> > spans). This is very WRONG but it does solve
>>> > my immediate problem:
>>> >
>>> > ----8<----8<----8<----8<----8<----8<----8<----
>>> > diff --git a/libs/openzap/mod_openzap/mod_openzap.c
>>> > b/libs/openzap/mod_openzap/mod_openzap.c
>>> > index 5aebfea..ff3b081 100644
>>> > --- a/libs/openzap/mod_openzap/mod_openzap.c
>>> > +++ b/libs/openzap/mod_openzap/mod_openzap.c
>>> > @@ -718,8 +718,12 @@ static switch_status_t
>>> > channel_read_frame(switch_core_session_t *session, switch
>>> > for (p = dtmf; p && *p; p++) {
>>> > if (is_dtmf(*p)) {
>>> > _dtmf.digit = *p;
>>> > - zap_log(ZAP_LOG_DEBUG, "queue DTMF
>>> [%c]\n",
>>> > *p);
>>> > - switch_channel_queue_dtmf(channel,
>>> &_dtmf);
>>> > + if (tech_pvt->zchan->span_id == 3 ||
>>> > tech_pvt->zchan->span_id == 4) {
>>> > + zap_log(ZAP_LOG_DEBUG,
>>> "Ignoring
>>> > DTMF [%c] on FXO port %d:%d\n", *p, tech_pvt->zchan->span_id,
>>> > tech_pvt->zchan->chan_id)
>>> > ;
>>> > + } else {
>>> > + zap_log(ZAP_LOG_DEBUG, "queue
>>> DTMF
>>> > [%c]\n", *p);
>>> > +
>>> switch_channel_queue_dtmf(channel,
>>> > &_dtmf);
>>> > + }
>>> > }
>>> > }
>>> > }
>>> > ----8<----8<----8<----8<----8<----8<----8<----
>>> >
>>> > Can someone point me in the "right" direction
>>> > instead? Do I need to do this at the OpenZAP/DAHDI
>>> > level by disabling some kind of DTMF detection
>>> > like was done for the Sangoma driver?
>>> >
>>> > Any and all pointers appreciated.
>>> >
>>> > Cheers,
>>> > -Slim
>>> >
>>> > [1] [Freeswitch-dev] FXS bridged on FXO ports and DTMF
>>> >
>>>
>>> http://www.mail-archive.com/freeswitch-dev@lists.freeswitch.org/msg02830.htm
>>> > l
>>> >
>>> > [Freeswitch-dev] Problem with sending
>>> > DTMF on FXS port bridged to an FXO port
>>> >
>>>
>>> http://lists.freeswitch.org/pipermail/freeswitch-dev/2010-April/003607.html
>>> >
>>> >
>>> > ----8<----8<----8<----8<----8<----8<----8<----
>>> > [root at localhost freeswitch]# lsdahdi
>>> > ### Span 1: XBUS-00/XPD-00 "Xorcom XPD #00/00: FXS" (MASTER)
>>> > 1 FXS FXOKS
>>> > 2 FXS FXOKS
>>> > 3 FXS FXOKS
>>> > 4 FXS FXOKS
>>> > 5 FXS FXOKS
>>> > 6 FXS FXOKS
>>> > 7 FXS FXOKS
>>> > 8 FXS FXOKS
>>> > 9 Output FXOKS
>>> > 10 Output FXOKS
>>> > 11 Input FXOKS
>>> > 12 Input FXOKS
>>> > 13 Input FXOKS
>>> > 14 Input FXOKS
>>> > ### Span 2: XBUS-00/XPD-10 "Xorcom XPD #00/10: FXS"
>>> > 15 FXS FXOKS
>>> > 16 FXS FXOKS
>>> > 17 FXS FXOKS
>>> > 18 FXS FXOKS
>>> > 19 FXS FXOKS
>>> > 20 FXS FXOKS
>>> > 21 FXS FXOKS
>>> > 22 FXS FXOKS
>>> > ### Span 3: XBUS-00/XPD-20 "Xorcom XPD #00/20: FXO"
>>> > 23 FXO FXSKS RED
>>> > 24 FXO FXSKS RED
>>> > 25 FXO FXSKS RED
>>> > 26 FXO FXSKS RED
>>> > 27 FXO FXSKS RED
>>> > 28 FXO FXSKS RED
>>> > 29 FXO FXSKS RED
>>> > 30 FXO FXSKS RED
>>> > ### Span 4: XBUS-00/XPD-30 "Xorcom XPD #00/30: FXO"
>>> > 31 FXO FXSKS RED
>>> > 32 FXO FXSKS RED
>>> > 33 FXO FXSKS RED
>>> > 34 FXO FXSKS RED
>>> > 35 FXO FXSKS RED
>>> > 36 FXO FXSKS RED
>>> > 37 FXO FXSKS RED
>>> > 38 FXO FXSKS RED
>>> > ----8<----8<----8<----8<----8<----8<----8<----
>>> >
>>> >
>>> > Cheers,
>>> > -Slim
>>> > --
>>> > Jeroen C. "Slim" van Gelderen
>>> > Olympic Sports Data Services
>>> > Email: jeroeng at thegreek.com
>>> > Phone: +1 876 953 6182 x128
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > FreeSWITCH-dev mailing list
>>> > FreeSWITCH-dev at lists.freeswitch.org
>>> > http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>>> > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>>> > http://www.freeswitch.org
>>>
>>> _______________________________________________
>>> FreeSWITCH-dev mailing list
>>> FreeSWITCH-dev at lists.freeswitch.org
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>>> http://www.freeswitch.org
>>>
>>
>>
>>
>> --
>> Anthony Minessale II
>>
>> FreeSWITCH http://www.freeswitch.org/
>> ClueCon http://www.cluecon.com/
>> Twitter: http://twitter.com/FreeSWITCH_wire
>>
>> AIM: anthm
>> MSN:anthony_minessale at hotmail.com <MSN%3Aanthony_minessale at hotmail.com>
>> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com<PAYPAL%3Aanthony.minessale at gmail.com>
>> IRC: irc.freenode.net #freeswitch
>>
>> FreeSWITCH Developer Conference
>> sip:888 at conference.freeswitch.org <sip%3A888 at conference.freeswitch.org>
>> googletalk:conf+888 at conference.freeswitch.org<googletalk%3Aconf%2B888 at conference.freeswitch.org>
>> pstn:+19193869900
>>
>> _______________________________________________
>> FreeSWITCH-dev mailing list
>> FreeSWITCH-dev at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>> http://www.freeswitch.org
>>
>>
>
> _______________________________________________
> FreeSWITCH-dev mailing list
> FreeSWITCH-dev at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
> http://www.freeswitch.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20100630/7ecc3e38/attachment-0001.html
More information about the FreeSWITCH-dev
mailing list