From: Andre Carvalho de Matos <[email protected]>
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
[email protected]
http://lists.ofono.org/listinfo/ofono