From: Andre Carvalho de Matos <andre.carvalho.ma...@stericsson.com>

transfer method should fail if you have a multiparty call, according to 22.091
section 8.11
---
 src/voicecall.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/voicecall.c b/src/voicecall.c
index f3f6a9b..f959f55 100644
--- a/src/voicecall.c
+++ b/src/voicecall.c
@@ -1339,6 +1339,7 @@ static DBusMessage *manager_transfer(DBusConnection *conn,
        struct ofono_voicecall *vc = data;
        int numactive;
        int numheld;
+       int numconn;
 
        if (vc->pending)
                return __ofono_error_busy(msg);
@@ -1350,11 +1351,12 @@ static DBusMessage *manager_transfer(DBusConnection 
*conn,
         * implementing the call transfer operation for a call that is
         * still dialing/alerting.
         */
-       numactive += voicecalls_num_connecting(vc);
+       numconn = voicecalls_num_connecting(vc);
 
        numheld = voicecalls_num_held(vc);
 
-       if ((numactive != 1) && (numheld != 1))
+       if ((numactive > 1 || numheld > 1) ||
+               ((numheld + numactive + numconn) != 2))
                return __ofono_error_failed(msg);
 
        if (vc->driver->transfer == NULL)
-- 
1.7.0.4

_______________________________________________
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono

Reply via email to