Media-hub fails to get the call started/ended signals from telepathy-bridge

Bug #1409125 reported by Ricardo Salveti on 2015-01-09
This bug affects 1 person
Affects Status Importance Assigned to Milestone
media-hub (Ubuntu)
Ricardo Salveti

Bug Description

phablet@ubuntu-phablet:~$ system-image-cli -i
current build number: 60
device name: mako
channel: ubuntu-touch/vivid-proposed
last update: 2015-01-09 16:47:15
version version: 60
version ubuntu: 20150109
version device: 20141213
version custom: 20150109

Sometimes media-hub is unable to get the call started/ended from telepathy bridge, making it unable to stop/resume the playback when you receive a call.

It works just fine if I restart media-hub after the system is fully up, so it might be a race with telepathy.

Ricardo Salveti (rsalveti) wrote :

If using RTM, you can easily reproduce the bug using the packages available at (including some extra debugging messages).

Check the log that is available at /home/phablet/.cache/upstart/media-hub.log when play an audio and calling your phone.

When it works, you should get the following:
Got call started signal, pausing all multimedia sessions
Pausing Player with key: 0

summary: - Media-hub fails to get the call started/ended from telepathy-bridge
+ Media-hub fails to get the call started/ended signals from telepathy-
+ bridge
Ricardo Salveti (rsalveti) wrote :

After adding some debug lines, the problem is that sometimes there is no audiocalls or videocalls caps when starting media-hub, so it never really connects the off/on hook signals.

150 void checkAndAddAccount(const Tp::AccountPtr& account)
151 {
152 Tp::ConnectionCapabilities caps = account->capabilities();
154 // anything call like, perhaps overkill?
155 if (caps.audioCalls() || caps.videoCalls() || caps.videoCallsWithAudio() || caps.streamedMediaCalls()) {
156 auto tcm = new TelepathyCallMonitor(account);
157 connect(tcm, SIGNAL(offHook()), SLOT(offHook()));
158 connect(tcm, SIGNAL(onHook()), SLOT(onHook()));
159 mCallMonitors.push_back(tcm);
160 }
161 }

Ricardo Salveti (rsalveti) wrote :

Added a debug line in order to get the connection status (account->connection()->status()), and was able to get a crash when I reproduced this issue:
#0 0xb6b2e27c in Tp::Connection::status() const () from /usr/lib/arm-linux-gnueabihf/
No symbol table info available.
#1 0x0014ec44 in ?? ()
No symbol table info available.
#2 0xb68140e4 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/arm-linux-gnueabihf/
No symbol table info available.
#3 0xb6beb60c in Tp::PendingOperation::finished(Tp::PendingOperation*) () from /usr/lib/arm-linux-gnueabihf/
No symbol table info available.
#4 0xb6bed286 in ?? () from /usr/lib/arm-linux-gnueabihf/
No symbol table info available.
#5 0xb6814b60 in QObject::event(QEvent*) () from /usr/lib/arm-linux-gnueabihf/

Which means the connection is probably not fully up at that stage.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package media-hub - 2.0.0+15.04.20150112.2-0ubuntu1

media-hub (2.0.0+15.04.20150112.2-0ubuntu1) vivid; urgency=low

  [ Ubuntu daily release ]
  * New rebuild forced

  [ Ricardo Salveti de Araujo ]
  * service_implementation: adding debug for call started/ended signals.
    Make sure account and connection are available when setting up
    account manager (patch from Gustavo Boiko). call_monitor: don't
    check caps when hooking up on/off signals, until bug 1409125 is
    fixed. Enable parallel building . (LP: #1409125)
 -- Ubuntu daily release <email address hidden> Mon, 12 Jan 2015 21:38:39 +0000

Changed in media-hub (Ubuntu):
status: New → Fix Released
Ricardo Salveti (rsalveti) wrote :

Reopening as we pushed a workaround instead.

Changed in media-hub (Ubuntu):
status: Fix Released → In Progress
assignee: nobody → Ricardo Salveti (rsalveti)
importance: Undecided → Medium
Jim Hodapp (jhodapp) on 2015-07-29
Changed in media-hub (Ubuntu):
status: In Progress → Fix Released
status: Fix Released → In Progress
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers