From: Denis Kenzior <denkenz@gmail.com>
To: Adam Pigg <adam@piggz.co.uk>, ofono@lists.linux.dev
Subject: Re: [PATCH v3 3/4] qmimodem: voicecall: Implement active call hangup
Date: Thu, 4 Apr 2024 16:03:30 -0500 [thread overview]
Message-ID: <63524371-e1be-41d6-80fa-e68e40008222@gmail.com> (raw)
In-Reply-To: <20240402212625.5348-3-adam@piggz.co.uk>
Hi Adam,
On 4/2/24 16:25, Adam Pigg wrote:
> hangup_active iterates the current list of calls, looking for the first
> active call and then calls release_specific. This then sets up the
> parameters for a call to QMI_VOICE_END_CALL, with the only paramters
typo: 'paramters'
> being the call-id.
>
> end_call_cb will then be called and will parse out the call-id and check
> for success.
> ---
> drivers/qmimodem/voice.h | 1 +
> drivers/qmimodem/voicecall.c | 84 +++++++++++++++++++++++++++++++++++-
> 2 files changed, 84 insertions(+), 1 deletion(-)
>
<snip>
> +static void release_specific(struct ofono_voicecall *vc, int id,
> + ofono_voicecall_cb_t cb, void *data)
> +{
> + struct voicecall_data *vd = ofono_voicecall_get_data(vc);
> + struct cb_data *cbd = cb_data_new(cb, data);
> + struct qmi_param *param = NULL;
> +
> + static const uint8_t QMI_VOICE_END_CALL_ID = 0x01;
> +
> + DBG("");
> + cbd->user = vc;
> +
> + param = qmi_param_new();
As mentioned before, qmi_param_new() can't fail, so feel free to drop !param check
> + if (!param)
> + goto error;
> +
> + if (!qmi_param_append_uint8(param, QMI_VOICE_END_CALL_ID, id))
> + goto error;
> +
> + if (qmi_service_send(vd->voice, QMI_VOICE_END_CALL, param, end_call_cb,
> + cbd, l_free) > 0)
item M4
> + return;
> +
> +error:
> + CALLBACK_WITH_FAILURE(cb, data);
> + l_free(cbd);
> + l_free(param);
> +}
> +
> +static void hangup_active(struct ofono_voicecall *vc, ofono_voicecall_cb_t cb,
> + void *data)
> +{
> + struct voicecall_data *vd = ofono_voicecall_get_data(vc);
> + struct ofono_call *call;
> + enum call_status active[] = {
> + CALL_STATUS_ACTIVE,
> + CALL_STATUS_DIALING,
> + CALL_STATUS_ALERTING,
> + CALL_STATUS_INCOMING,
> + };
> +
> + DBG("");
item M1
> + for (uint32_t i = 0; i < L_ARRAY_SIZE(active); i++) {
> + call = l_queue_find(vd->call_list, ofono_call_compare_by_status,
> + L_INT_TO_PTR(active[i]));
> +
> + if (call)
> + break;
> + }
> +
> + if (call == NULL) {
> + DBG("Can not find a call to hang up");
> + CALLBACK_WITH_FAILURE(cb, data);
> + return;
> + }
> +
> + release_specific(vc, call->id, cb, data);
> +}
> +
> static void create_voice_cb(struct qmi_service *service, void *user_data)
> {
> struct ofono_voicecall *vc = user_data;
> @@ -594,7 +674,7 @@ static void create_voice_cb(struct qmi_service *service, void *user_data)
> data->voice = qmi_service_ref(service);
>
> qmi_service_register(data->voice, QMI_VOICE_ALL_CALL_STATUS_IND,
> - all_call_status_ind, vc, NULL);
> + all_call_status_ind, vc, NULL);
This belongs in patch 1.
>
> ofono_voicecall_register(vc);
> }
Regards,
-Denis
next prev parent reply other threads:[~2024-04-04 21:03 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-02 21:25 [PATCH v3 1/4] qmimodem: voicecall: Implement call dialing Adam Pigg
2024-04-02 21:25 ` [PATCH v3 2/4] qmimodem: voicecall: Implement call answer Adam Pigg
2024-04-04 20:58 ` Denis Kenzior
2024-04-02 21:25 ` [PATCH v3 3/4] qmimodem: voicecall: Implement active call hangup Adam Pigg
2024-04-04 21:03 ` Denis Kenzior [this message]
2024-04-02 21:25 ` [PATCH v3 4/4] qmimodem: voicecall: Implement DTMF tones Adam Pigg
2024-04-04 21:33 ` Denis Kenzior
2024-04-02 21:46 ` [PATCH v3 1/4] qmimodem: voicecall: Implement call dialing Adam Pigg
2024-04-04 20:43 ` Denis Kenzior
2024-04-04 21:22 ` piggz1
2024-04-04 21:38 ` Denis Kenzior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=63524371-e1be-41d6-80fa-e68e40008222@gmail.com \
--to=denkenz@gmail.com \
--cc=adam@piggz.co.uk \
--cc=ofono@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.