summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2009-01-08 15:53:39 +0200
committerJohan Hedberg <johan.hedberg@nokia.com>2009-01-08 15:53:39 +0200
commit4f62cd989705b938cd36535d25439d49146ec4b6 (patch)
treeb81f672b6a86b862a4c35f9516439f069aa1a842
parent7d2e5fd3f017cd2d48a77cd3c47a3005ddb65338 (diff)
Another fix to AT+CHLD=2
Swap() can't actually be used for calls in WAITING state. Instead simply call Answer() for a waiting call and it will automatically put any previously active call on hold.
-rw-r--r--audio/telephony-maemo.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/audio/telephony-maemo.c b/audio/telephony-maemo.c
index e32da967..669c7d95 100644
--- a/audio/telephony-maemo.c
+++ b/audio/telephony-maemo.c
@@ -780,15 +780,15 @@ void telephony_call_hold_req(void *telephony_device, const char *cmd)
held = find_call_with_status(CSD_CALL_STATUS_HOLD);
wait = find_call_with_status(CSD_CALL_STATUS_WAITING);
- if (call && (held || wait))
+ if (wait)
+ err = answer_call(wait);
+ else if (call && held)
err = swap_calls();
else {
if (call)
err = hold_call(call);
if (held)
err = unhold_call(held);
- if (wait)
- err = answer_call(wait);
}
}
break;