From: "Frédéric Danis" <frederic.danis@linux.intel.com>
To: linux-bluetooth@vger.kernel.org
Subject: [PATCH v17 01/15] doc: Add telephony interface documents
Date: Fri, 3 Aug 2012 14:07:06 +0200 [thread overview]
Message-ID: <1343995640-19784-2-git-send-email-frederic.danis@linux.intel.com> (raw)
In-Reply-To: <1343995640-19784-1-git-send-email-frederic.danis@linux.intel.com>
---
Makefile.am | 2 +-
doc/audio-api.txt | 87 +++++++++++++++++++++++++++++++++
doc/audio-telephony-design.txt | 106 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 194 insertions(+), 1 deletion(-)
create mode 100644 doc/audio-telephony-design.txt
diff --git a/Makefile.am b/Makefile.am
index 45a811c..1aa302c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -381,7 +381,7 @@ EXTRA_DIST += doc/manager-api.txt \
doc/network-api.txt doc/input-api.txt doc/audio-api.txt \
doc/control-api.txt doc/hfp-api.txt doc/health-api.txt \
doc/sap-api.txt doc/media-api.txt doc/assigned-numbers.txt \
- doc/supported-features.txt
+ doc/supported-features.txt doc/audio-telephony-design.txt
AM_YFLAGS = -d
diff --git a/doc/audio-api.txt b/doc/audio-api.txt
index ca430fc..c620a7d 100644
--- a/doc/audio-api.txt
+++ b/doc/audio-api.txt
@@ -423,3 +423,90 @@ properties boolean Connected [readonly]
uint16 MicrophoneGain [readonly]
The speaker gain when available.
+
+
+Telephony hierarchy
+===================
+
+Service org.bluez
+Interface org.bluez.Telephony
+Object path [variable prefix]/{hci0,hci1,...}
+
+Methods void RegisterAgent(object path, dict properties)
+
+ Register a TelephonyAgent to sender, the sender can
+ register as many agents as it likes.
+ Object path should be unique for an agent and a UUID.
+
+ Note: If the sender disconnects its agents are
+ automatically unregistered.
+
+ possible properties:
+
+ string UUID:
+
+ UUID of the profile which the agent is
+ for.
+
+ uint16 Version:
+
+ Version of the profile which the agent
+ implements.
+
+ uint16 Features:
+
+ Agent supported features as defined in
+ profile spec e.g. HFP.
+
+ Possible Errors: org.bluez.Error.InvalidArguments
+
+ void UnregisterAgent(object path)
+
+ Unregister sender agent.
+
+TelephonyAgent hierarchy
+========================
+
+Service unique name
+Interface org.bluez.TelephonyAgent
+Object path freely definable
+
+Methods void NewConnection(filedescriptor fd, dict properties)
+
+ This method gets called whenever a new connection
+ has been established. This method assumes that D-Bus
+ daemon with file descriptor passing capability is
+ being used.
+
+ The agent should only return successfully once the
+ establishment of the service level connection (SLC)
+ has been completed. In the case of Handsfree this
+ means that BRSF exchange has been performed and
+ necessary initialization has been done.
+
+ possible properties:
+
+ object Device:
+
+ BlueZ remote device object.
+
+ uint16 Version:
+
+ Remote profile version.
+
+ uint16 Features:
+
+ Remote profile features.
+
+ object Transport:
+
+ Optional. MediaTransport object path.
+
+ Possible Errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.Failed
+
+ void Release()
+
+ This method gets called whenever the service daemon
+ unregisters the agent or whenever the Adapter where
+ the TelephonyAgent registers itself is removed.
diff --git a/doc/audio-telephony-design.txt b/doc/audio-telephony-design.txt
new file mode 100644
index 0000000..a5936f6
--- /dev/null
+++ b/doc/audio-telephony-design.txt
@@ -0,0 +1,106 @@
+The org.bluez.Telephony interface will simplify BlueZ code by focusing on
+the Bluetooth communication part and by letting the external application (i.e.
+oFono) take charge of the Telephony tasks (AT parsing and modem specific code).
+So, it becomes simpler, easier to maintain and debug.
+
+External applications, which should implement AT parsing and telephony
+part of HeadSet or HandsFree Profiles, will have to register an
+org.bluez.TelephonyAgent using this new interface. This will setup a SDP record
+for the profile and a RFCOMM server listening for incoming connection.
+
+When a new device is connected, NewConnection method of TelephonyAgent is
+called. The telephony agent should reply to it after proper communication
+establishment (directly for HSP or after SLC setup completes for HFP).
+
+Interaction with the audio component (i.e. PulseAudio) will be done through the
+MediaTransport object (passed to telephony agent during NewConnection call).
+
+Here is some flowcharts of interactions between BlueZ, telephony agent (oFono)
+and audio component (PulseAudio):
+
+ .....> Bluetooth communication between headset and phone
+ -----> Dbus messages and signals
+
+SCO connection - AG initiated
+
+ PulseAudio BlueZ HF
+ | | |
+ | transport acquire | |
+ |------------------------>| |
+ | | connect SCO |
+ | |<.............>|
+ | return SCO fd | |
+ |<------------------------| |
+ | | |
+
+SCO connection - HF initiated
+
+ PulseAudio BlueZ HF
+ | | |
+ | | connect SCO |
+ | |<.............>|
+ | state changed signal | |
+ |<------------------------| |
+ | | |
+ | transport acquire | |
+ |------------------------>| |
+ | | |
+ | return SCO fd | |
+ |<------------------------| |
+ | | |
+
+AT+NREC
+
+ HF oFono BlueZ PulseAudio
+ | AT+NREC | | |
+ |................>| | |
+ | | SetProperty | |
+ | |-------------->| |
+ | | | property changed |
+ | | | signal |
+ | | |----------------->|
+
+
++BSIR
+
+ HF oFono BlueZ PulseAudio app
+ | | | | |
+ | | | |<------------|
+ | | | SetProperty | |
+ | | |<--------------| |
+ | | | | |
+ | | property changed signal | |
+ | |<------------*-------------->| |
+ | +BSIR:x | | | |
+ |<............| | | |
+ | | | | |
+
+
+AT+VGS,AT+VGM
+
+ HF oFono BlueZ PulseAudio app
+ | | | | |
+ | AT+VGS=xx | | | |
+ |............>| | | |
+ | | SetProperty | | |
+ | |------------>| | |
+ | | | | |
+ | | property changed signal | |
+ | |<------------*-------------->| |
+ | | | |------------>|
+ | | | | |
+
+
++VGS,+VGM
+
+ HF oFono BlueZ PulseAudio app
+ | | | | |
+ | | | |<------------|
+ | | | SetProperty | |
+ | | |<--------------| |
+ | | | | |
+ | | property changed signal | |
+ | |<------------*-------------->| |
+ | +VGS:xx | | | |
+ |<............| | |------------>|
+ | | | | |
--
1.7.9.5
next prev parent reply other threads:[~2012-08-03 12:07 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-03 12:07 [PATCH v17 00/15] Add org.bluez.Telephony interface Frédéric Danis
2012-08-03 12:07 ` Frédéric Danis [this message]
2012-08-05 4:37 ` [PATCH v17 01/15] doc: Add telephony interface documents Marcel Holtmann
2012-08-06 20:30 ` Luiz Augusto von Dentz
2012-08-09 10:03 ` Frederic Danis
2012-08-09 14:42 ` Luiz Augusto von Dentz
2012-08-10 10:09 ` Frederic Danis
2012-08-03 12:07 ` [PATCH v17 02/15] doc: Add HSP HS channel to assigned numbers Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 03/15] audio: Move telephony drivers to D-Bus interface Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 04/15] audio: Simplify org.bluez.Headset Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 05/15] audio: Remove dummy telephony driver Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 06/15] audio: Remove maemo5 " Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 07/15] audio: Remove maemo6 " Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 08/15] audio: Remove oFono " Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 09/15] audio: Move HFP/HSP AG servers to telephony.c Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 10/15] audio: Send transport path to telephony agent Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 11/15] audio: Move HFP HF server to telephony.c Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 12/15] audio: Add DUN GW to org.bluez.Telephony Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 13/15] audio: Add SAP " Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 14/15] adapter: Add API to get fast connectable mode Frédéric Danis
2012-08-03 12:07 ` [PATCH v17 15/15] audio: Add fast connectable to telephony interface Frédéric Danis
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=1343995640-19784-2-git-send-email-frederic.danis@linux.intel.com \
--to=frederic.danis@linux.intel.com \
--cc=linux-bluetooth@vger.kernel.org \
/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.