Hi Denis

2011/1/25 Denis Kenzior <[email protected]>

> Hi Tomasz,
>
> On 01/25/2011 03:43 PM, Tomasz Gregorek wrote:
> > Hi Denis
> >
> > 2011/1/25 Denis Kenzior <[email protected] <mailto:[email protected]>>
> >
> >     Hi Tomasz,
> >
> >     > Shouldn’t ReleaseAndAnswere() release the active call and bring
> >     back the
> >     > held one in such situation?
> >     >
> >
> >     You shouldn't be using ReleaseAndAnswer in this case, instead you
> should
> >     use SwapCalls.  SwapCalls has the added benefit of allowing swapping
> of
> >     held and active calls even if there is a call waiting (if your modem
> >     hardware supports this.)
> >
> >
> > SwapCalls wont release active call. This would be a case when we finished
> > active call and we want to disconnect and get back to the held one.
> > Though this can also be done with Release on active call followed
> > by SwapCalls.
> >
>
> Yep, Hangup or HangupMultiparty then SwapCalls.  If you feel that a
> single operation to accomplish hangup + swap is required we can
> certainly consider it.  For now it didn't pass our API is Minimal +
> Complete test.  Perhaps ReleaseAndSwap()...?
>

I would go with easy solution by just changing src/voicecall.c line 1418

static DBusMessage *manager_release_and_answer(DBusConnection *conn,
                        DBusMessage *msg, void *data)
{
...

1418:
-    if (!voicecalls_have_waiting(vc))
+    if (!voicecalls_have_waiting(vc) && !voicecalls_have_with_status(vc,
CALL_STATUS_HELD))
        return __ofono_error_failed(msg);

...
    vc->driver->release_all_active(vc, generic_callback, vc);

    return NULL;
}

This would give ReleaseAndAnswer full functionality of +CHLD=1.

(sorry for pseudo-patch, working temporary on windows machine)


>
> >     >
> >     > There also could be a little more description of behavior for a
> case
> >     > when we have held and waiting calls saying that the waiting call
> >     will be answered and
> >     > that held won’t be released.
> >     >
> >
> >     The documentation says: "Releases currently active call and answers
> the
> >     currently waiting call".
> >
> >     Is this not enough? Can you suggest better wording?
> >
> >
> > If we are not touching held calls with this function than it is enough.
> > I would only add "if any exist" as this function works when there are
> held
> > and waiting calls.
> >
> > "Releases currently active call if any exists, and answers the
> > currently waiting call."
> >
>
> Fair enough, fixed with commit b937d99791abc8c33ef968be40f193f3985bca8d.
>
Thanks.


>
> Regards,
> -Denis
>

Br
Tomasz
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to