From 4f62cd989705b938cd36535d25439d49146ec4b6 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Thu, 8 Jan 2009 15:53:39 +0200 Subject: 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. --- audio/telephony-maemo.c | 6 +++--- 1 file 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; -- cgit