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/server/session{0, 1, 2, ...} or /org/bluez/obex/client/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 [Session object path]/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 void Suspend() Suspend transference. Possible errors: org.bluez.obex.Error.NotAuthorized org.bluez.obex.Error.NotInProgress Note that it is not possible to suspend transfers which are queued which is why NotInProgress is listed as possible error. void Resume() Resume transference. Possible errors: org.bluez.obex.Error.NotAuthorized org.bluez.obex.Error.NotInProgress Note that it is not possible to resume transfers which are queued which is why NotInProgress is listed as possible error. Properties string Status [readonly] Inform the current status of the transfer. Possible values: "queued", "active", "suspended", "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 [Session object path] 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 [Session object path] 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 [Session object path] 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 "spd": speed dials entry ( only for "internal" ) "fav": favorites entry ( only for "internal" ) 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 void UpdateVersion() Attempt to update PrimaryCounter and SecondaryCounter. Possible errors: org.bluez.obex.Error.NotSupported 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. array{string} FilterAll: Filter items by fields using AND logic, cannot be used together with FilterAny. Possible values can be query with ListFilterFields. array{string} FilterAny: Filter items by fields using OR logic, cannot be used together with FilterAll. Possible values can be query with ListFilterFields. bool ResetNewMissedCalls Reset new the missed calls items, shall only be used for folders mch and cch. Properties string Folder [readonly] Current folder. string DatabaseIdentifier [readonly, optional] 128 bits persistent database identifier. Possible values: 32-character hexadecimal such as A1A2A3A4B1B2C1C2D1D2E1E2E3E4E5E6 string PrimaryCounter [readonly, optional] 128 bits primary version counter. Possible values: 32-character hexadecimal such as A1A2A3A4B1B2C1C2D1D2E1E2E3E4E5E6 string SecondaryCounter [readonly, optional] 128 bits secondary version counter. Possible values: 32-character hexadecimal such as A1A2A3A4B1B2C1C2D1D2E1E2E3E4E5E6 bool FixedImageSize [readonly, optional] Indicate support for fixed image size. Possible values: True if image is JPEG 300x300 pixels otherwise False. Synchronization hierarchy ========================= Service org.bluez.obex Interface org.bluez.obex.Synchronization1 Object path [Session object path] 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 [Session object path] 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 subfolder of the current folder, or in the current folder if folder is empty. 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 status Possible values for received messages: "complete", "fractioned", "notification" Possible values for sent messages: "delivery-success", "sending-success", "delivery-failure", "sending-failure" 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 subfolder of the current folder, or to the current folder if folder is empty. 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 [Session object path]/{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 Folder [readonly] Folder which the message belongs to 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 deleted flag boolean Sent [readonly] Message sent flag boolean Protected [readonly] Message protected flag