summaryrefslogtreecommitdiff
path: root/doc/profile-api.txt
blob: 183c6c11a7ba8eea1ed7df5ad6ae6c26da4f1776 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
BlueZ D-Bus Profile API description
***********************************


Profile Manager hierarchy
=========================

Service		org.bluez
Interface	org.bluez.ProfileManager1
Object path	/org/bluez

		void RegisterProfile(object profile, string uuid, dict options)

			This registers a profile implementation.

			If an application disconnects from the bus all
			its registered profiles will be removed.

			Some predefined services:

			HFP AG UUID: 0000111f-0000-1000-8000-00805f9b34fb

				Default profile Version is 1.7, profile Features
				is 0b001001 and RFCOMM channel is 13.
				Authentication is required.

			HFP HS UUID: 0000111e-0000-1000-8000-00805f9b34fb

				Default profile Version is 1.7, profile Features
				is 0b000000 and RFCOMM channel is 7.
				Authentication is required.

			HSP AG UUID: 00001112-0000-1000-8000-00805f9b34fb

				Default profile Version is 1.2, RFCOMM channel
				is 12 and Authentication is required. Does not
				support any Features, option is ignored.

			HSP HS UUID: 00001108-0000-1000-8000-00805f9b34fb

				Default profile Version is 1.2, profile Features
				is 0b0 and RFCOMM channel is 6. Authentication
				is required. Features is one bit value, specify
				capability of Remote Audio Volume Control
				(by default turned off).

			Available options:

				string Name

					Human readable name for the profile

				string Service

					The primary service class UUID
					(if different from the actual
					 profile UUID)

				string Role

					For asymmetric profiles that do not
					have UUIDs available to uniquely
					identify each side this
					parameter allows specifying the
					precise local role.

					Possible values: "client", "server"

				uint16 Channel

					RFCOMM channel number that is used
					for client and server UUIDs.

					If applicable it will be used in the
					SDP record as well.

				uint16 PSM

					PSM number that is used for client
					and server UUIDs.

					If applicable it will be used in the
					SDP record as well.

				boolean RequireAuthentication

					Pairing is required before connections
					will be established. No devices will
					be connected if not paired.

				boolean RequireAuthorization

					Request authorization before any
					connection will be established.

				boolean AutoConnect

					In case of a client UUID this will
					force connection of the RFCOMM or
					L2CAP channels when a remote device
					is connected.

				string ServiceRecord

					Provide a manual SDP record.

				uint16 Version

					Profile version (for SDP record)

				uint16 Features

					Profile features (for SDP record)

			Possible errors: org.bluez.Error.InvalidArguments
			                 org.bluez.Error.AlreadyExists

		void UnregisterProfile(object profile)

			This unregisters the profile that has been previously
			registered. The object path parameter must match the
			same value that has been used on registration.

			Possible errors: org.bluez.Error.DoesNotExist


Profile hierarchy
=================

Service		unique name
Interface	org.bluez.Profile1
Object path	freely definable

Methods		void Release() [noreply]

			This method gets called when the service daemon
			unregisters the profile. A profile can use it to do
			cleanup tasks. There is no need to unregister the
			profile, because when this method gets called it has
			already been unregistered.

		void NewConnection(object device, fd, dict fd_properties)

			This method gets called when a new service level
			connection has been made and authorized.

			Common fd_properties:

			uint16 Version		Profile version (optional)
			uint16 Features		Profile features (optional)

			Possible errors: org.bluez.Error.Rejected
			                 org.bluez.Error.Canceled

		void RequestDisconnection(object device)

			This method gets called when a profile gets
			disconnected.

			The file descriptor is no longer owned by the service
			daemon and the profile implementation needs to take
			care of cleaning up all connections.

			If multiple file descriptors are indicated via
			NewConnection, it is expected that all of them
			are disconnected before returning from this
			method call.

			Possible errors: org.bluez.Error.Rejected
			                 org.bluez.Error.Canceled