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