Hi Denis 2011/1/25 Denis Kenzior > Hi Tomasz, > > On 01/25/2011 03:43 PM, Tomasz Gregorek wrote: > > Hi Denis > > > > 2011/1/25 Denis Kenzior > > > > > 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