Hi Denis,
On Mon, Feb 7, 2011 at 8:46 PM, Denis Kenzior <denkenz(a)gmail.com> wrote:
Hi Andre,
> @@ -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))
I don't get it, isn't the above condition taking care of this already?
Its been a while but the precondition of ECT is:
Held Call
Outgoing or an Active call. You cannot have an Outgoing and an Active
call at the same time. Hence numactive == 1 && numheld == 1 should work
just fine.
What you wrote is correct. transfer works when it supposed to work.
The changes i did takes care of the negative cases.
This means calling transfer should fail if we have:
multiparty call active and one held call
one active call and one held multiparty call
only one active call
only one held call
etc...
> + if ((numactive > 1 || numheld > 1) ||
this checks if there is multiparty
+ ((numheld + numactive + numconn) != 2))
this makes sure we have the the two call necessary for a transfer.
return __ofono_error_failed(msg);
>
> if (vc->driver->transfer == NULL)
Regards,
-Denis
With my change oFono doesn't send unnecessary queries to the modem.
Best regards,
André