MaxSok / asterisk-chan-dongle

Automatically exported from code.google.com/p/asterisk-chan-dongle
Other
0 stars 0 forks source link

channel.c: DTMF begin passthrough 'A' on Dongle #133

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
I don't know how to reproduce this but on all 3 network in Romania Orange, 
Cosmote and Vodafone I get this error in the log:

[2013-06-07 12:37:44] VERBOSE[3398] app_dial.c: -- Dongle/dongle1-01000000a1 
answered SIP/101-000003bd

[2013-06-07 12:38:28] DTMF[3398] channel.c: DTMF begin 'A' received on 
Dongle/dongle1-01000000a1
[2013-06-07 12:38:28] DTMF[3398] channel.c: DTMF begin passthrough 'A' on 
Dongle/dongle1-01000000a1

and after last 2 messages in log a long beep is heard on both sides. I've 
attached also the beep fragment of the conversation.

According to chan_dongle wiki 
(http://wiki.e1550.mobi/doku.php?id=troubleshooting#dtmf_symbols_a_b_c_d_not_sen
t_by_chan_dongle):
"DTMF symbols A,B,C,D not sent by chan_dongle"

Can be something wrong with my setup? Can I disable asterisk sending those 
DTMFs to dongles?

I mention the problem appears on both ways DONGLE > SIP or SIP > DONGLE and 
also in DONGLE > DONGLE (with follow me) if I remember right.

I have this problem for more than an year of using chan_dongle.

By the way thank you very much for this module it save'd me a lot.

Original issue reported on code.google.com by sil...@magazinulcuscule.ro on 7 Jun 2013 at 11:15

Attachments:

GoogleCodeExporter commented 9 years ago
And I forgot to mention, I'm using 5 hwawei K3765 dongles all with 
11.126.03.09.00 firmware. No output in dmesg when error occurs (dongles are not 
reconecting or something).
I'm using chan_dongle version 1.1 revision 14 (the featured one) with asterisk 
1.8 (current Asterisk 1.8.20.0 but it had changed over last year and the 
problem persisted).

As far as I understood the dongle channel.c file, I should get the following 
error (@see line 418):

ast_log (LOG_WARNING, "[%s] Sending DTMF %c not supported by dongle. Tell 
Asterisk to generate inband\n", PVT_ID(pvt), digit);

but I don't see it and also no other error appers in log file after "DTMF begin 
passthrough 'A' on Dongle" just that both parties hear the long beep and they 
need to hangup and call again.

If you need any other info please tell me.

Original comment by sil...@magazinulcuscule.ro on 7 Jun 2013 at 11:29

GoogleCodeExporter commented 9 years ago
You should set dtmf=off in dongle.conf to disable dtmf detection.

http://wiki.e1550.mobi/doku.php?id=configuration

Probleme cu apeluri intrerupte nu ai avut? La mine se si intrerupeau apelurile 
inainte sa dezactivez detectia dtmf...

Original comment by lucibunea@gmail.com on 11 Jun 2013 at 12:44

GoogleCodeExporter commented 9 years ago
I know that I can turn dtmf off from dongle.conf but I'm using those dongles 
with an IVR so this solution is not ok for me.

Si la mine se intrerup apelurile si se aude un bip (vezi atasament). Daca ti se 
intrerupeau apelurile si dongle-ul se deconecta si apoi se reconecta e de la 
alimentare (e prost hub-ul USB). Eu acum il folosesc intr-un HUB LogiLink cu 4 
dongle-uri conectate si merge perfect.
Acum incerc GSMOpen - freeswitch dar nu am reusit inca sa o fac sa primeasca 
comenzi AT de monitirizare, adica pot suna si se aude mai bine decat 
chan_dongle dar nu semnalizeaza cand a raspuns sau cand a inchis. Ai incercat 
mod_gsmopen de la freeswitch?

Original comment by sil...@magazinulcuscule.ro on 11 Jun 2013 at 5:59

GoogleCodeExporter commented 9 years ago
My problem was somehow similar. 
My system: FreeBSD 9.1 64bit + asterisk 1.8.20. + chan_dongle r16.

Before disabling DTM detection I was experiencing random dropped calls:

[Mar 25 16:25:09] DTMF[38269] channel.c: DTMF begin 'A' received on 
Dongle/stick1-0100000030
[Mar 25 16:25:09] DTMF[38269] channel.c: DTMF begin passthrough 'A' on 
Dongle/stick1-0100000030
[Mar 25 16:25:12] VERBOSE[38269] app_macro.c:   == Spawn extension 
(macro-intrare, s, 35) exited non-zero on 'Dongle/stick1-0100000030' in macro 
'intrare'

[Mar 27 09:52:33] DTMF[38269] channel.c: DTMF begin 'A' received on 
Dongle/stick1-0100000063
[Mar 27 09:52:33] DTMF[38269] channel.c: DTMF begin passthrough 'A' on 
Dongle/stick1-0100000063
[Mar 27 09:52:33] DTMF[38269] channel.c: DTMF begin 'A' received on 
Dongle/stick1-0100000063
[Mar 27 09:52:33] DTMF[38269] channel.c: DTMF begin passthrough 'A' on 
Dongle/stick1-0100000063
[Mar 27 09:52:35] VERBOSE[38269] app_macro.c:   == Spawn extension 
(macro-intrare, s, 37) exited non-zero on 'Dongle/stick1-0100000063' in macro 
'intrare'

[Mar 28 09:45:40] DTMF[77342] channel.c: DTMF begin 'A' received on 
Dongle/stick2-0100000009
[Mar 28 09:45:40] DTMF[77342] channel.c: DTMF begin passthrough 'A' on 
Dongle/stick2-0100000009
[Mar 28 09:45:43] VERBOSE[77342] pbx.c:   == Spawn extension (extern, 18, 1) 
exited non-zero on 'Dongle/stick2-0100000009'

Since disabling DTMF detection I haven´t had a single dropped call... 

Btw, your beep file contains DTMF tone generated by the dongle.

Nu am incercat inca cu freeswitch...

Original comment by lucibunea@gmail.com on 14 Jun 2013 at 8:22

Attachments:

GoogleCodeExporter commented 9 years ago
I tryed freeswitch but is worse than asterisk so is not an option for me. Hope 
someone will fix this bug soon and my asterisk + chan dongle than will be 
perfect.

Original comment by sil...@magazinulcuscule.ro on 24 Jun 2013 at 8:10

GoogleCodeExporter commented 9 years ago
 WARNING[10309]: channel.c:418 channel_digit_begin: [dongle2] Sending DTMF D not supported by dongle. Tell Asterisk to generate inband

Same problem but with diffrent key.

Original comment by silviuch...@gmail.com on 12 Jul 2013 at 9:19

GoogleCodeExporter commented 9 years ago
Seems like this project is abandoned?!

Original comment by silviuch...@gmail.com on 24 Jul 2013 at 12:07

GoogleCodeExporter commented 9 years ago
This not a problem of chan_dongle

This problem of detection end of DTMF signal and echo in GSM networks and 
phones.

set 
dtmf=off 

for nofity chan_dongle to not detect DTMF tones in GSM stream.

in ANY case DTMF will be passed in-band. 
GSM has't other way to send DTMF !

For AVR + continue with voice call after AVR may be dialplan function need.
For control this feature. Start incoming call with DTMF on, and off when call 
passed to other leg.

Right ?

Original comment by bg_...@mail.ru on 30 Jul 2013 at 7:34

GoogleCodeExporter commented 9 years ago
We cannot disable DTMF during anytime of the call because we will not be able 
to transfer, park or any other call operations that are using DTMF during calk 
(for example an operator press ## to transfer the call to other departament 
queue or other op or puts the call on hold  - parking - untill he gots an 
answer to client's problem).

Could be posible to support A,B,C,D DTMFs in chan_dongle or set Asterisk not to 
send them?
I think the problem is related somehow also to mobile phone. There are clients  
that we got this hang on every call on that terminal...

Original comment by silviuch...@gmail.com on 31 Jul 2013 at 12:31

GoogleCodeExporter commented 9 years ago
I adding CHANNEL(dtmf) function for reading and writting to channel-local 
DTMF setting in r33 

Dongle not able to send A-D DTMF, if able  say me command  :)

In ANY case, when chan_dongle declain sending of A-D with dongle natively,
its report to asterisk - send this tones inband with internal asterisk's 
functions.

In any case, handle DTMF in asterisk only BEFORE create other call leg.
If call have both legs, handling DTMF inside asterisk will cause duplicate of 
DTMF, and with echo in GSM and  phones may cause infinite DTMF.

Remember - DTMF in GSM ALLWAYS passed inband. 
This mean asterisk pass DTMF digit to other leg inband with voice.
And secondary, if allowed, detect DTMF, and  pass secondary, w/o voice,
nativelly for other leg channel driver (for example SIP). 
But on other leg ends this digits in any case converted to sound
So, DTMF duplicated.

Multiply on echo effects and got infinite DTMF.

Original comment by bg_...@mail.ru on 31 Jul 2013 at 9:48

GoogleCodeExporter commented 9 years ago
And also remember.

dtmf settings refer only to DTMF detection (recv side).

because _dongle_ support sending (on tx side) DTMF digits (but not all) 
internally  we use in. In cause of A-D dongle not able to generate this digits
and chan_dongle return error code to asterisk. This code mean asterisk must 
generate DTMF inside inband.

Please try send command  AT^DTMF to dongle.

Original comment by bg_...@mail.ru on 31 Jul 2013 at 9:54