After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 655356 - Empathy cancel DTMF tones without minimal delay
Empathy cancel DTMF tones without minimal delay
Status: RESOLVED FIXED
Product: empathy
Classification: Core
Component: VoIP
unspecified
Other Linux
: Normal normal
: ---
Assigned To: empathy-maint
Depends on:
Blocks: 605086
 
 
Reported: 2011-07-26 15:49 UTC by Nicolas Dufresne (ndufresne)
Modified: 2011-09-19 11:31 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
CallWindow: emit tones using MultipleTones (4.34 KB, patch)
2011-09-09 10:07 UTC, Emilio Pozuelo Monfort
committed Details | Review
CallWindow: unconditionally connect to notify::call-channel (1.71 KB, patch)
2011-09-09 10:08 UTC, Emilio Pozuelo Monfort
committed Details | Review

Description Nicolas Dufresne (ndufresne) 2011-07-26 15:49:48 UTC
In Empathy, the dial-pad uses key_down/up event to start/stop tone. On certain CM implementation, this causes very short tone to be played, which may fail to be detected by some systems.

Essentially what we want is a minimal playing delay (e.g. 250ms) and some queueing so we can type faster then the playing rate.

While testing with some digital phones I had at home (cellular and wireless landlines phones), I found that most of them does not let you play songs with DTMF. It simply plays every key with a fixed length and queue the next key if not done with current one.

Base on that, we could change the Empathy implementation to only use MultipleTones() calls, queue tones during playback and flush the queued tones when StoppedTones is signalled. This will let the CM decide the appropriate duration and delay between tones, and avoid all the grey zone of StartTone/StopTone API.
Comment 1 Emilio Pozuelo Monfort 2011-09-09 10:07:59 UTC
Created attachment 196081 [details] [review]
CallWindow: emit tones using MultipleTones
Comment 2 Emilio Pozuelo Monfort 2011-09-09 10:08:03 UTC
Created attachment 196082 [details] [review]
CallWindow: unconditionally connect to notify::call-channel

Since we can get a new call channel if we e.g. hangup and
then call again.
Comment 3 Guillaume Desmottes 2011-09-09 11:02:53 UTC
Review of attachment 196081 [details] [review]:

Looks good; feel free to merge once you have added the comment.

::: src/empathy-call-window.c
@@ +190,3 @@
   gdouble volume;
 
   GtkWidget *dtmf_panel;

Please add a comment explaining the logic of this variable.
Comment 4 Emilio Pozuelo Monfort 2011-09-19 11:31:46 UTC
Attachment 196081 [details] pushed as add501b - CallWindow: emit tones using MultipleTones
Attachment 196082 [details] pushed as a3086b1 - CallWindow: unconditionally connect to notify::call-channel