From a2fc92ee693d6fa97af8f0bf9fcabbbdc8366010 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Fri, 4 Oct 2024 15:27:09 +0300 Subject: [PATCH] bluez5: backend-native: allow hanging up DIALING/ALERTING calls --- spa/plugins/bluez5/backend-native.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/spa/plugins/bluez5/backend-native.c b/spa/plugins/bluez5/backend-native.c index af2d29581..c701d3a10 100644 --- a/spa/plugins/bluez5/backend-native.c +++ b/spa/plugins/bluez5/backend-native.c @@ -1340,11 +1340,17 @@ static void hfp_hf_hangup(void *data, enum spa_bt_telephony_error *err) struct impl *backend = rfcomm->backend; char reply[20]; - if (call_data->call->state == CALL_STATE_INCOMING || call_data->call->state == CALL_STATE_ACTIVE) { + switch (call_data->call->state) { + case CALL_STATE_ACTIVE: + case CALL_STATE_DIALING: + case CALL_STATE_ALERTING: + case CALL_STATE_INCOMING: rfcomm_send_cmd(rfcomm, "AT+CHUP"); - } else if (call_data->call->state == CALL_STATE_WAITING) { + break; + case CALL_STATE_WAITING: rfcomm_send_cmd(rfcomm, "AT+CHLD=0"); - } else { + break; + default: spa_log_info(backend->log, "Call not incoming, waiting or active: skip hangup"); *err = BT_TELEPHONY_ERROR_INVALID_STATE; return;