Re: [RFC BlueZ v2 00/27] New Telephony interface for HSP, HFP and CCP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Frédéric,

On Fri, Jun 27, 2025 at 10:52 AM Frédéric Danis
<frederic.danis@xxxxxxxxxxxxx> wrote:
>
> This will introduce a new Telephony interface wich is intended to be
> shared by the profiles able to control telephony calls.
>
> The idea is to split the call control interface from the audio streaming,
> as it is done for AVRCP and A2DP.
> As for A2DP, the audio part will be delegated to the audio daemon (like
> PipeWire) by the creation of new endpoints for CVSD and mSBC, LC3 endpoint
> already exists.
>
> The interface is mostly based on the one done for PipeWire's native
> backend.
>
> This will simplify the qualification of the telephony related profiles as
> the qualification will no more depend on external projects, and calls can
> be controlled from bluetoothctl.
>
> A first implementation allows to dial or hangup a call using HFP.
>
> v1->v2:
>   - Rename org.bluez.TelephonyCall1 to org.bluez.Call1
>   - Remove reference to profiles in org.bluez.TelephonyAg1 object path
>   - Add profile UUID property to org.bluez.TelephonyAg1
>   - Add OperatorName property to org.bluez.TelephonyAg1
>   - Rename telephony_set_call_state() to telephony_call_set_state()
>   - Use first available index of call for new call
>   - Fix DBus message memory leak in hfp_dial_cb()
>   - Display UUID and OperatorName in bluetoothctl telephony.show command
>   - Add hangup-active and hangup-held support
>   - Add SendTones support
>   - Remove HFP specific comments in documentation
>   - Add HFP HF server and related SDP record
>   - Add OperatorName support to HFP HF
>   - Add call line identification property support to HFP HF
>   - Disable NREC during HFP HF connection phase
>   - Enable Waiting call event to HFP HF
>   - Enable Extended error support in HFP HF
>   - Add telephony_call_set_multiparty() to telephony API
>   - Enable Enhanced call status support in HFP HF, and use it to update
>     calls status if available on both side
>
> Frédéric Danis (27):
>   doc: Add new telephony related profiles interfaces
>   audio/telephony: Add shared interfaces implementation
>   audio/telephony: Add skeleton for HFP profile
>   audio/hfp-hf: Add HFP SLC connection and event support
>   audio/hfp-hf: Add dial support
>   audio/hfp-hf: Add hangup all calls support
>   audio/hfp-hf: Add answer a specific call support
>   client/telephony: Add new submenu
>   audio/hfp-hf: Remove call interface during profile disconnection
>   audio/hfp-hf: Create existing call during SLC phase
>   audio/telephony: Add hangup_active and hangup_held functions
>   audio/hfp-hf: Add hangup_active and hangup_held support
>   client/telephony: Add hangup_active and hangup_held support
>   audio/hfp-hf: Add SendTones support
>   client/telephony: Add SendTones support
>   doc: Make telephony docs more generic
>   client/telephony: Remove IncomingLine
>   audio/telephony: Remove IncomingLine
>   audio/hfp-hf: Add HFP HF server and SDP record
>   audio/hfp-hf: Add operator name support
>   audio/telephony: Add call line identication property support
>   audio/hfp-hf: Add call line idenfication support
>   audio/hfp-hf: Disable NREC during connection setup
>   audio/hfp-hf: Enable waiting call if supported by remote AG
>   audio/hfp-hf: Enable extended error if supported by remote AG
>   audio/telephony: Add call multiparty property support
>   audio/hfp-hf: Enable enhanced call status if supported by remote AG

This is sort of too big to review all at once, Id start just with
documentation so we can nail down the interfaces first, then we can
proceed to other details, anyway from the brief looking at it some
things already show in the design:

1. The usage of glib function is not recommended on new code, things
like g_new0/g_free, etc, shall be replaced with util helpers or just
plain libc function.
2. There doesn't seem to be anything added to src/shared/hfp.h which
will make it really tricky to do unit testing since a lot of things
seems to be done in plugin, if the idea is to really have something
that is qualifiable Id look into expanding test-hfp to handle HFP
testing spec test cases which should enable us to determine what needs
to be inside shared/hfp and what doesn't.

-- 
Luiz Augusto von Dentz





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux