> 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) && I guess you mean || here. > !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) > > Anyhow, I don't agree, we want the API to reflect what is going to happen. The various scenarios involving CHLD are pretty bizarre and hard to explain to a developer who hasn't learned 22.030 by heart. Regards, -Denis