Hi Denis
2011/1/25 Denis Kenzior <denkenz(a)gmail.com>
Hi Tomasz,
On 01/25/2011 03:43 PM, Tomasz Gregorek wrote:
> Hi Denis
>
> 2011/1/25 Denis Kenzior <denkenz(a)gmail.com <mailto:denkenz@gmail.com>>
>
> 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