summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2009-01-08 15:26:44 +0200
committerJohan Hedberg <johan.hedberg@nokia.com>2009-01-08 15:26:44 +0200
commit5ea0f5e65c4307aadb797851388f5f5a2583717c (patch)
treeedab13cc951f8b7a2e16cdb47c6460e4ba41aea2 /audio
parent2e258fc221e00fe5ceb0f57646d578db829e3b75 (diff)
Fix AT+CHLD=3 as well
AT+CHLD=3 should use the special Conference() D-Bus method instead of Unhold().
Diffstat (limited to 'audio')
-rw-r--r--audio/telephony-maemo.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/audio/telephony-maemo.c b/audio/telephony-maemo.c
index 64e0e409..7daed665 100644
--- a/audio/telephony-maemo.c
+++ b/audio/telephony-maemo.c
@@ -408,6 +408,23 @@ static int swap_calls(void)
return 0;
}
+static int create_conference(void)
+{
+ DBusMessage *msg;
+
+ msg = dbus_message_new_method_call(CSD_CALL_BUS_NAME, CSD_CALL_PATH,
+ CSD_CALL_INTERFACE,
+ "Conference");
+ if (!msg) {
+ error("Unable to allocate new D-Bus message");
+ return -ENOMEM;
+ }
+
+ g_dbus_send_message(connection, msg);
+
+ return 0;
+}
+
static int call_transfer(void)
{
DBusMessage *msg;
@@ -777,7 +794,7 @@ void telephony_call_hold_req(void *telephony_device, const char *cmd)
case '3':
call = find_call_with_status(CSD_CALL_STATUS_HOLD);
if (call)
- err = unhold_call(call);
+ create_conference();
break;
case '4':
err = call_transfer();