Use release_all_held to release a single held call
authorDenis Kenzior <denkenz@gmail.com>
Thu, 12 Nov 2009 23:54:49 +0000 (17:54 -0600)
committerDenis Kenzior <denkenz@gmail.com>
Fri, 13 Nov 2009 01:16:32 +0000 (19:16 -0600)
src/voicecall.c

index 02ec484..fea7a73 100644 (file)
@@ -296,6 +296,14 @@ static DBusMessage *voicecall_hangup(DBusConnection *conn,
                return NULL;
        }
 
+       if (num_calls == 1 && vc->driver->release_all_held &&
+                       call->status == CALL_STATUS_HELD) {
+               vc->pending = dbus_message_ref(msg);
+               vc->driver->release_all_held(vc, generic_callback, vc);
+
+               return NULL;
+       }
+
        if (vc->driver->release_specific == NULL)
                return __ofono_error_not_implemented(msg);