bluez/doc/obex-api.txt
Christian Fetzer e859c03231 obexd: Add PushMessage
Push message has been implemented similar to send file (OPP),
the message to send (in bMessage format) is read from a file.
2013-02-07 13:49:00 +02:00

802 lines
19 KiB
Plaintext

OBEX D-Bus API description
**************************
Client hierarchy
================
Service org.bluez.obex
Interface org.bluez.obex.Client1
Object path /org/bluez/obex
Methods object CreateSession(string destination, dict args)
Create a new OBEX session for the given remote address.
The last parameter is a dictionary to hold optional or
type-specific parameters. Typical parameters that can
be set in this dictionary include the following:
string "Target" : type of session to be created
string "Source" : local address to be used
byte "Channel"
The currently supported targets are the following:
"ftp"
"map"
"opp"
"pbap"
"sync"
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
void RemoveSession(object session)
Unregister session and abort pending transfers.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.NotAuthorized
Session hierarchy
=================
Service org.bluez.obex
Interface org.bluez.obex.Session1
Object path /org/bluez/obex/session{0, 1, 2, ...}
Methods string GetCapabilities()
Get remote device capabilities.
Possible errors: org.bluez.obex.Error.NotSupported
org.bluez.obex.Error.Failed
Properties string Source [readonly]
Bluetooth adapter address
string Destination [readonly]
Bluetooth device address
byte Channel [readonly]
Bluetooth channel
string Target [readonly]
Target UUID
string Root [readonly]
Root path
Transfer hierarchy
==================
Service org.bluez.obex
Interface org.bluez.obex.Transfer1
Object path /org/bluez/obex/session{0, 1, 2, ...}/transfer{0, 1, 2, ...}
Methods void Cancel()
Stops the current transference.
Possible errors: org.bluez.obex.Error.NotAuthorized
org.bluez.obex.Error.InProgress
org.bluez.obex.Error.Failed
Properties string Status [readonly]
Inform the current status of the transfer.
Possible values: "queued", "active", "complete" or
"error"
object Session [readonly]
The object path of the session the transfer belongs
to.
string Name [readonly]
Name of the transferred object. Either Name or Type
or both will be present.
string Type [readonly]
Type of the transferred object. Either Name or Type
or both will be present.
uint64 Time [readonly, optional]
Time of the transferred object if this is
provided by the remote party.
uint64 Size [readonly, optional]
Size of the transferred object. If the size is
unknown, then this property will not be present.
uint64 Transferred [readonly, optional]
Number of bytes transferred. For queued transfers, this
value will not be present.
string Filename [readonly, optional]
Complete name of the file being received or sent.
For incoming object push transaction, this will be
the proposed default location and name. It can be
overwritten by the AuthorizePush agent callback
and will be then updated accordingly.
Object Push hierarchy
=====================
Service org.bluez.obex
Interface org.bluez.obex.ObjectPush1
Object path /org/bluez/obex/session{0, 1, 2, ...}
Methods object, dict SendFile(string sourcefile)
Send one local file to the remote device.
The returned path represents the newly created transfer,
which should be used to find out if the content has been
successfully transferred or if the operation fails.
The properties of this transfer are also returned along
with the object path, to avoid a call to GetProperties.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
object, dict PullBusinessCard(string targetfile)
Request the business card from a remote device and
store it in the local file.
If an empty target file is given, a name will be
automatically calculated for the temporary file.
The returned path represents the newly created transfer,
which should be used to find out if the content has been
successfully transferred or if the operation fails.
The properties of this transfer are also returned along
with the object path, to avoid a call to GetProperties.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
object, dict ExchangeBusinessCards(string clientfile,
string targetfile)
Push the client's business card to the remote device
and then retrieve the remote business card and store
it in a local file.
If an empty target file is given, a name will be
automatically calculated for the temporary file.
The returned path represents the newly created transfer,
which should be used to find out if the content has been
successfully transferred or if the operation fails.
The properties of this transfer are also returned along
with the object path, to avoid a call to GetProperties.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
File Transfer hierarchy
=======================
Service org.bluez.obex
Interface org.bluez.obex.FileTransfer
Object path /org/bluez/obex/session{0, 1, 2, ...}
Methods void ChangeFolder(string folder)
Change the current folder of the remote device.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
void CreateFolder(string folder)
Create a new folder in the remote device.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
array{dict} ListFolder()
Returns a dictionary containing information about
the current folder content.
The following keys are defined:
string Name : Object name in UTF-8 format
string Type : Either "folder" or "file"
uint64 Size : Object size or number of items in
folder
string Permission : Group, owner and other
permission
uint64 Modified : Last change
uint64 Accessed : Last access
uint64 Created : Creation date
Possible errors: org.bluez.obex.Error.Failed
object, dict GetFile(string targetfile, string sourcefile)
Copy the source file (from remote device) to the
target file (on local filesystem).
If an empty target file is given, a name will be
automatically calculated for the temporary file.
The returned path represents the newly created transfer,
which should be used to find out if the content has been
successfully transferred or if the operation fails.
The properties of this transfer are also returned along
with the object path, to avoid a call to GetProperties.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
object, dict PutFile(string sourcefile, string targetfile)
Copy the source file (from local filesystem) to the
target file (on remote device).
The returned path represents the newly created transfer,
which should be used to find out if the content has been
successfully transferred or if the operation fails.
The properties of this transfer are also returned along
with the object path, to avoid a call to GetProperties.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
void CopyFile(string sourcefile, string targetfile)
Copy a file within the remote device from source file
to target file.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
void MoveFile(string sourcefile, string targetfile)
Move a file within the remote device from source file
to the target file.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
void Delete(string file)
Deletes the specified file/folder.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
Phonebook Access hierarchy
==========================
Service org.bluez.obex
Interface org.bluez.obex.PhonebookAccess1
Object path /org/bluez/obex/session{0, 1, 2, ...}
Methods void Select(string location, string phonebook)
Select the phonebook object for other operations. Should
be call before all the other operations.
location : Where the phonebook is stored, possible
inputs :
"int" ( "internal" which is default )
"sim" ( "sim1" )
"sim2"
...
phonebook : Possible inputs :
"pb" : phonebook for the saved contacts
"ich": incoming call history
"och": outgoing call history
"mch": missing call history
"cch": combination of ich och mch
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
object, dict PullAll(string targetfile, dict filters)
Return the entire phonebook object from the PSE server
in plain string with vcard format, and store it in
a local file.
If an empty target file is given, a name will be
automatically calculated for the temporary file.
The returned path represents the newly created transfer,
which should be used to find out if the content has been
successfully transferred or if the operation fails.
The properties of this transfer are also returned along
with the object path, to avoid a call to GetProperties.
Possible filters: Format, Order, Offset, MaxCount and
Fields
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Forbidden
array{string vcard, string name} List(dict filters)
Return an array of vcard-listing data where every entry
consists of a pair of strings containing the vcard
handle and the contact name. For example:
"1.vcf" : "John"
Possible filters: Order, Offset and MaxCount
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Forbidden
object, dict
Pull(string vcard, string targetfile, dict filters)
Given a vcard handle, retrieve the vcard in the current
phonebook object and store it in a local file.
If an empty target file is given, a name will be
automatically calculated for the temporary file.
The returned path represents the newly created transfer,
which should be used to find out if the content has been
successfully transferred or if the operation fails.
The properties of this transfer are also returned along
with the object path, to avoid a call to GetProperties.
Possbile filters: Format and Fields
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Forbidden
org.bluez.obex.Error.Failed
array{string vcard, string name}
Search(string field, string value, dict filters)
Search for entries matching the given condition and
return an array of vcard-listing data where every entry
consists of a pair of strings containing the vcard
handle and the contact name.
vcard : name paired string match the search condition.
field : the field in the vcard to search with
{ "name" (default) | "number" | "sound" }
value : the string value to search for
Possible filters: Order, Offset and MaxCount
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Forbidden
org.bluez.obex.Error.Failed
uint16 GetSize()
Return the number of entries in the selected phonebook
object that are actually used (i.e. indexes that
correspond to non-NULL entries).
Possible errors: org.bluez.obex.Error.Forbidden
org.bluez.obex.Error.Failed
array{string} ListFilterFields()
Return All Available fields that can be used in Fields
filter.
Possible errors: None
Filter: string Format:
Items vcard format
Possible values: "vcard21" (default) or "vcard30"
string Order:
Items order
Possible values: "indexed" (default), "alphanumeric" or
"phonetic"
uint16 Offset:
Offset of the first item, default is 0
uint16 MaxCount:
Maximum number of items, default is unlimited (65535)
array{string} Fields:
Item vcard fields, default is all values.
Possible values can be query with ListFilterFields.
Synchronization hierarchy
=========================
Service org.bluez.obex
Interface org.bluez.obex.Synchronization1
Object path /org/bluez/obex/session{0, 1, 2, ...}
Methods void SetLocation(string location)
Set the phonebook object store location for other
operations. Should be called before all the other
operations.
location: Where the phonebook is stored, possible
values:
"int" ( "internal" which is default )
"sim1"
"sim2"
......
Possible errors: org.bluez.obex.Error.InvalidArguments
object, dict GetPhonebook(string targetfile)
Retrieve an entire Phonebook Object store from remote
device, and stores it in a local file.
If an empty target file is given, a name will be
automatically calculated for the temporary file.
The returned path represents the newly created transfer,
which should be used to find out if the content has been
successfully transferred or if the operation fails.
The properties of this transfer are also returned along
with the object path, to avoid a call to GetProperties.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
object, dict PutPhonebook(string sourcefile)
Send an entire Phonebook Object store to remote device.
The returned path represents the newly created transfer,
which should be used to find out if the content has been
successfully transferred or if the operation fails.
The properties of this transfer are also returned along
with the object path, to avoid a call to GetProperties.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
Message Access hierarchy
=========================
Service org.bluez.obex
Interface org.bluez.obex.MessageAccess1
Object path [variable prefix]/{session0,session1,...}
Methods void SetFolder(string name)
Set working directory for current session, *name* may
be the directory name or '..[/dir]'.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
array{dict} ListFolders(dict filter)
Returns a dictionary containing information about
the current folder content.
The following keys are defined:
string Name : Folder name
Possible filters: Offset and MaxCount
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
array{string} ListFilterFields()
Return all available fields that can be used in Fields
filter.
Possible errors: None
array{object, dict} ListMessages(string folder, dict filter)
Returns an array containing the messages found in the
given folder.
Possible Filters: Offset, MaxCount, SubjectLength, Fields,
Type, PeriodStart, PeriodEnd, Status, Recipient, Sender,
Priority
Each message is represented by an object path followed
by a dictionary of the properties.
Properties:
string Subject:
Message subject
string Timestamp:
Message timestamp
string Sender:
Message sender name
string SenderAddress:
Message sender address
string ReplyTo:
Message Reply-To address
string Recipient:
Message recipient name
string RecipientAddress:
Message recipient address
string Type:
Message type
Possible values: "email", "sms-gsm",
"sms-cdma" and "mms"
uint64 Size:
Message size in bytes
boolean Text:
Message text flag
Specifies whether message has textual
content or is binary only
string Status:
Message reception status
Possible values: "complete",
"fractioned" and "notification"
uint64 AttachmentSize:
Message overall attachment size in bytes
boolean Priority:
Message priority flag
boolean Read:
Message read flag
boolean Sent:
Message sent flag
boolean Protected:
Message protected flag
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
void UpdateInbox(void)
Request remote to update its inbox.
Possible errors: org.bluez.obex.Error.Failed
object, dict
PushMessage(string sourcefile, string folder, dict args)
Transfer a message (in bMessage format) to the
remote device.
The message is transferred either to the given folder,
or to the current folder if folder is omitted.
Possible args: Transparent, Retry, Charset
The returned path represents the newly created transfer,
which should be used to find out if the content has been
successfully transferred or if the operation fails.
The properties of this transfer are also returned along
with the object path, to avoid a call to GetAll.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
Filter: uint16 Offset:
Offset of the first item, default is 0
uint16 MaxCount:
Maximum number of items, default is 1024
byte SubjectLength:
Maximum length of the Subject property in the
message, default is 256
array{string} Fields:
Message fields, default is all values.
Possible values can be query with ListFilterFields.
array{string} Types:
Filter messages by type.
Possible values: "sms", "email", "mms".
string PeriodBegin:
Filter messages by starting period.
Possible values: Date in "YYYYMMDDTHHMMSS" format.
string PeriodEnd:
Filter messages by ending period.
Possible values: Date in "YYYYMMDDTHHMMSS" format.
boolean Read:
Filter messages by read flag.
Possible values: True for read or False for unread
string Recipient:
Filter messages by recipient address.
string Sender:
Filter messages by sender address.
boolean Priority:
Filter messages by priority flag.
Possible values: True for high priority or False for
non-high priority
Message hierarchy
=================
Service org.bluez.obex
Interface org.bluez.obex.Message1
Object path [variable prefix]/{session0,session1,...}/{message0,...}
Methods object, dict Get(string targetfile, boolean attachment)
Download message and store it in the target file.
If an empty target file is given, a temporary file
will be automatically generated.
The returned path represents the newly created transfer,
which should be used to find out if the content has been
successfully transferred or if the operation fails.
The properties of this transfer are also returned along
with the object path, to avoid a call to GetProperties.
Possible errors: org.bluez.obex.Error.InvalidArguments
org.bluez.obex.Error.Failed
Properties string Subject [readonly]
Message subject
string Timestamp [readonly]
Message timestamp
string Sender [readonly]
Message sender name
string SenderAddress [readonly]
Message sender address
string ReplyTo [readonly]
Message Reply-To address
string Recipient [readonly]
Message recipient name
string RecipientAddress [readonly]
Message recipient address
string Type [readonly]
Message type
Possible values: "email", "sms-gsm",
"sms-cdma" and "mms"
uint64 Size [readonly]
Message size in bytes
string Status [readonly]
Message reception status
Possible values: "complete",
"fractioned" and "notification"
boolean Priority [readonly]
Message priority flag
boolean Read [read/write]
Message read flag
boolean Deleted [writeonly]
Message read flag
boolean Sent [readonly]
Message sent flag
boolean Protected [readonly]
Message protected flag