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 Makefile.am | 4 + Makefile.plugins | 5 + Makefile.tools | 9 +- client/bluetoothctl-telephony.rst | 95 ++ client/main.c | 3 + client/telephony.c | 676 ++++++++++ client/telephony.h | 12 + configure.ac | 7 + doc/org.bluez.Call.rst | 107 ++ doc/org.bluez.TelephonyAg.rst | 206 +++ profiles/audio/hfp-hf.c | 2092 +++++++++++++++++++++++++++++ profiles/audio/telephony.c | 808 +++++++++++ profiles/audio/telephony.h | 118 ++ 13 files changed, 4139 insertions(+), 3 deletions(-) create mode 100644 client/bluetoothctl-telephony.rst create mode 100644 client/telephony.c create mode 100644 client/telephony.h create mode 100644 doc/org.bluez.Call.rst create mode 100644 doc/org.bluez.TelephonyAg.rst create mode 100644 profiles/audio/hfp-hf.c create mode 100644 profiles/audio/telephony.c create mode 100644 profiles/audio/telephony.h -- 2.43.0