Hi Frédéric, >>> + switch (ofono_emulator_request_get_type(req)) { >>> + case OFONO_EMULATOR_REQUEST_TYPE_COMMAND_ONLY: >>> + if (vc->driver->release_specific == NULL&& >>> + vc->driver->hangup_active == NULL) >>> + goto fail; >>> + >>> + if (vc->driver->hangup_active) { >>> + vc->driver->hangup_active(vc, emulator_generic_cb, em); >>> + goto done; >>> + } >>> + >>> + /* if there is already a CHUP pending we return an error */ >>> + if (vc->hfp_release_list) >>> + goto fail; >> >> Why are you checking this here? Shouldn't you check this before >> potentially sending a hangup_active? > As far as I understand AT+CHUP, it releases all active calls (active + > incoming + dialing + alerting), so we do not need a call list and are > not able to know that we already perform one. > > Is it correct ? Yes you're right. I jumped ahead slightly. Since I'd like to re-use release_queue, it would be safer to check for the release list prior to issuing any driver commands (just in case the release_list was set by something else.) Regards, -Denis