Manager hierarchy =============================== Service org.openobex Interface org.openobex.Manager Object path /org/openobex Methods object CreateBluetoothSession(string target_address, string source_address, string pattern) Creates a Bluetooth OBEX session and returns the new session object of type org.openobex.Session. Session is automatically connected. The target_address represents the remote Bluetooth device, source_address specifies which Bluetooth adapter to use (to use default adapter, use "00:00:00:00:00:00") and the pattern specifies the OBEX service it connects to, or the OBEX service using a fixed Bluetooth channel. Pattern can be a UUID-128 identifying the service or place holder as "opp" (for Object Push) or "ftp" (for FTP). In case you want to use a fixed channel, UUID has to be like: UUID:CHANNEL where UUID is a valid UUID or service place holder like before, and CHANNEL is an integer representing a valid RFCOMM channel. Session object can only be used when SessionConnected signal is emitted. If connection fails (remote device refuses connection, link dies, etc.), SessionConnectError signal is emitted instead. To cancel connecting use CancelSessionConnect method. Returns object path for the created session. Possible errors: org.openobex.Error.InvalidArguments org.openobex.Error.TransportNotAvailable object CreateBluetoothImagingSession(string target_address, string source_addres, string bip_feature) Create Bluetooth OBEX session using BIP profile and returns new session object of type org.openobex.Session. target_address represents the remote Bluetooth device, source_address specifies which Bluetooth adapter to use ("00:00:00:00:00:00" for default adapter). bip_feature specifies imaging feature to use ("imagepush" or "remotedisplay"). In case you want to use a fixed RFCOMM channel, bip_feature has to be like FEATURE:CHANNEL where CHANNEL is an integer representing a valid RFCOMM channel. Session object can only be used when SessionConnected signal is emitted. If connection fails, SessionConnectError signal is emitted instead. To cancel connecting use CancelSessionConnect method. Returns object path for the created session. Possible errors: org.openobex.Error.InvalidArguments org.openobex.Error.TransportNotAvailable object CreateUsbSession(integer interface_number, string profile) Creates a USB OBEX session and returns the new session object of type org.openobex.Session. Session is automatically connected. To find out about available USB OBEX interfaces, use GetUsbInterfacesNum and GetUsbInterfaceInfo. profile specifies profile to be used for session (FTP profile is commonly used for USB OBEX sessions). Session object can only be used when SessionConnected signal is emitted. If connection fails (remote device refuses connection, link dies, etc.), SessionConnectError signal is emitted instead. Do not use CancelSessionConnect with USB sessions (connection is established instantly). Returns object path for the created session. Possible errors: org.openobex.Error.InvalidArguments org.openobex.Error.TransportNotAvailable object CreateTtySession(string tty_dev, string profile) (since 0.4.5) Creates OBEX session using TTY device and returns the new session object of type org.openobex.Session. Session is automatically connected. tty_dev specifies TTY device node. pattern specifies the profile to be used for session which may be either "ftp" for OBEX FTP server, "opp" for OBEX Object Push server or "bip" for OBEX Basic Imaging server. Session object can only be used when SessionConnected signal is emitted. If connection fails (remote device refuses connection, link dies, etc.), SessionConnectError signal is emitted instead. Do not use CancelSessionConnect with TTY sessions (connection is established instantly). Returns object path for the created session. Possible errors: org.openobex.Error.InvalidArguments integer GetUsbInterfacesNum() Returns the number of available USB OBEX interfaces Possible errors: none dict GetUsbInterfaceInfo(integer interface_number) Returns info about specified USB OBEX interface: "Manufacturer" : Manufacturer of the device "Product" : Product name of the device "Serial" : Serial number of the device "Configuration" : USB configuration that this interface belongs to "ControlInterface" : description of the OBEX control interface, typically reveals the functionality of the interface "DataInterfaceIdle" : description of the OBEX data idle interface, typically empty "DataInterfaceActive" : description of the OBEX data active interface, typically empty If specified interface number is too large, returns empty structure. Possible errors: none boolean CancelSessionConnect(object session_object) Cancells session connection. If Session is being connected, connection will be cancelled and SessionConnectError signal with org.openobex.Cancelled error will be emitted. If session is already connected or invalid session is supplied, this function will do nothing and FALSE will be returned. Returns TRUE if cancelled successfully, FALSE otherwise. Possible errors: none object CreateBluetoothServer(string source_address, string pattern, boolean require_pairing) Gets Server object for specified bluetooth source address. source_address can be Bluetooth address of any adapter or just "00:00:00:00:00:00" for default adapter. pattern specifies the type of server to create which may be either "ftp" for OBEX FTP server, "opp" for OBEX Object Push server or "bip" for OBEX Basic Imaging server. require_pairing specifies whether client device should be paired before allowing any operations (recommended values: True for FTP, False for OPP). Returns object path for the created server. Possible errors: org.openobex.Error.Failed org.openobex.Error.InvalidArguments org.openobex.Error.TransportNotAvailable object CreateTtyServer(string tty_dev, string pattern) (since 0.4.5) Gets Server object for specified TTY device (e.g. /dev/ttyUSB0). This kind of server can be used on embedded devices to serve files via USB OBEX. tty_dev specifies TTY device node. pattern specifies the type of server which may be either "ftp" for OBEX FTP server, "opp" for OBEX Object Push server or "bip" for OBEX Basic Imaging server. Return object path for the created server. Possible errors: org.openobex.Error.Failed org.openobex.Error.InvalidArguments dict GetSessionInfo(object session_object) Returns info about specified session: "BluetoothTargetAddress" : Target device Bluetooth address (only for Bluetooth sessions); "BluetoothSourceAddress" : Source Bluetooth address (hci device used) (only for Bluetooth sessions); "BluetoothChannel" : RFCOMM channel used for session (only for Bluetooth sessions); "UsbInterfaceNumber" : USB interface number (only for USB sessions); "TTYDevice" : TTY device which is used (only for TTY sessions); If specified session does not exist, returns empty structure. session_object specifies DBus path of Session object. Possible errors: none dict GetServerInfo(object server_object) Returns info about specified server: "BluetoothSourceAddress" : Bluetooth source address (only for Bluetooth servers); "RequirePairing" : if connecting to server triggers pairing (only for Bluetooth servers); "TTYDevice" : TTY device which is used (only for TTY servers); If specified session does not exist, returns empty structure. server_object specifies DBus path of Server object. Possible errors: none array GetSessionList() Returns list of open sessions. Array contains DBus paths of sessions. Possible errors: none array GetServerList() Returns list of open servers. Array contains DBus paths of servers. Possible errors: none string GetVersion() Returns obex-data-server version and obex-data-server API version. Returned string is formated like that: ":". API version is an integer. When API incompatible with older one is released, this number is increased by one. As of ods version 0.4 API version is 1. Example of returned string: "0.4:1". Possible errors: none Signals void SessionConnected(object path) Emitted when Session is connected to target device. void SessionConnectError(object path, string error_name, string error_message) Emitted when Session connection fails. Session object must not be used after that. void SessionClosed(object path) Emitted when Session is closed and no longer valid. Server hierarchy =============================== Service org.openobex Interface org.openobex.Server Object path /org/openobex/server{0,1,2...} Methods void Start(string path, boolean allow_write, boolean auto_accept) Starts OBEX Object Push / FTP server (begins listening for connections). Started signal is emitted after the server is started. If error occurs, ErrorOccurred signal is emitted instead. Once the server is started, it emits SessionCreated signal for every newly connected client. If this is Object Push server, path defines where all received files will be saved. In case of FTP server path is the top-level folder which will be served. allow_write specifies whether write operations will be allowed (put and delete). In most cases, allow_write should be set to True. auto_accept specifies whether incoming files should be always accepted (recommended values: True for FTP, False for OPP). If auto_accept is set to False, either Accept() or Reject() has to be called every time after you receive TransferStarted signal in ServerSession object. If Accept() or Reject() is not called in 15 seconds after TransferStarted signal, timeout will happen and the incoming file will be automatically rejected. It is important to listen for Cancelled signal on ServerSession object when auto_accept is False because you can receive Cancelled signal while waiting for user to accept or reject incoming file. This would effectively mean that timeout happened and the incoming file was rejected. Possible errors: org.openobex.Error.InvalidArguments org.openobex.Error.NotAuthorized org.openobex.Error.Started void Stop() Stops the server. All client connections will be closed and operations will be cancelled. Stopped signal is emitted after the server is stopped. Possible errors: org.openobex.Error.NotAuthorized org.openobex.Error.NotStarted void Close() Closes the server. If server is not stopped, all client connections will be closed, operations will be cancelled. Server object will be destroyed after that. Closed signal is emitted immediately when this method is invoked. Possible errors: org.openobex.Error.NotAuthorized boolean IsStarted() Returns true if server is started, false otherwise. Possible errors: none void SetOption(string name, variant value) Sets server options. Supported options: "Limit" : maximum server sessions that server will accept (0 for no limit). Default is 0. Value type is uint16. "RequireImagingThumbnails" : whether to require clients to send thumbnails for uploaded images (specific to BIP servers). Default is False. Value type is boolean. Possible errors: org.openobex.Error.InvalidArguments dict GetServerSessionInfo(object session_object) Returns info about specified server session: "BluetoothAddress" : Client device Bluetooth address; If specified server session does not exist, returns empty structure. session_object specifies DBus path of ServerSession object. Possible errors: none array GetServerSessionList() Returns list of open server sessions. Array contains DBus paths of server sessions. Possible errors: none Signals void Started() This signal informs that the server was started. void Stopped() This signal informs that the server was stopped and all operations were ceased. void Closed() This signal informs that the server was closed and it's object is no longer valid. void ErrorOccurred(string error_name, string error_message) This signal informs that error occurred while starting or stopping the server. void SessionCreated(object session_object) Signal informs that client connected to server and new ServerSession object was created. Returns path of ServerSession object. void SessionRemoved(object session_object) Signal informs that client disconnected from server. Returns path of ServerSession object that was closed. Session hierarchy =============================== Service org.openobex Interface org.openobex.Session Object path /org/openobex/session{0,1,2...} Methods void Disconnect() Disconnects from remote device by sending OBEX disconnect command. Disconnected signal is emitted once disconnected. Normally, "Close" should be called immediately after Session is disconnected. Possible errors: org.openobex.Error.Busy org.openobex.Error.Failed org.openobex.Error.NotAuthorized org.openobex.Error.OutOfMemory void Close() Closes the session (the actual connection to remote device is closed). Session object is finalized and can not be used anymore. Closed signal is emitted once closed. Possible errors: org.openobex.Error.Failed org.openobex.Error.NotAuthorized void ChangeCurrentFolder(string path) Changes current path on a remote device to the specified one. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: org.openobex.Error.Busy org.openobex.Error.Failed org.openobex.Error.InvalidArguments org.openobex.Error.NotAuthorized org.openobex.Error.NotConnected org.openobex.Error.OutOfMemory void ChangeCurrentFolderBackward() Changes current path on a remote device one level up. If current folder is root, path is not changed. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: org.openobex.Error.Busy org.openobex.Error.Failed org.openobex.Error.InvalidArguments org.openobex.Error.NotAuthorized org.openobex.Error.NotConnected org.openobex.Error.OutOfMemory void ChangeCurrentFolderToRoot() Changes current path on a remote device to root. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: org.openobex.Error.Busy org.openobex.Error.Failed org.openobex.Error.InvalidArguments org.openobex.Error.NotAuthorized org.openobex.Error.NotConnected org.openobex.Error.OutOfMemory string GetCurrentPath() Returns current path on a remote device. Possible errors: none void CopyRemoteFile(string remote_filename, string local_path) Starts receiving a specified file from a remote device. remote_filename specifies the file to receive on a remote device. local_path is the path where received file will be saved. TransferStarted signal is emitted when transfer starts. If error occurs during operation, ErrorOccurred signal is emitted instead. Possible errors: org.openobex.Error.Busy org.openobex.Error.Failed org.openobex.Error.InvalidArguments org.openobex.Error.NotAuthorized org.openobex.Error.NotConnected org.openobex.Error.NotFound org.openobex.Error.OutOfMemory void CopyRemoteFileByType(string type, string local_path) Starts receiving default object of specified type from a remote device. type specifies OBEX type to receive. local_path is the path where received file will be saved. TransferStarted signal is emitted when transfer starts. If error occurs during operation, ErrorOccurred signal is emitted instead. Possible errors: org.openobex.Error.Busy org.openobex.Error.Failed org.openobex.Error.InvalidArguments org.openobex.Error.NotAuthorized org.openobex.Error.NotConnected org.openobex.Error.NotFound org.openobex.Error.OutOfMemory void CreateFolder(string folder_name) Creates a folder on a remote device with a specified name. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: org.openobex.Error.Busy org.openobex.Error.Failed org.openobex.Error.InvalidArguments org.openobex.Error.NotAuthorized org.openobex.Error.NotConnected org.openobex.Error.OutOfMemory string RetrieveFolderListing() Retrieves the list of files in the current folder. The list is XML formatted string. See OBEX specification for info about the format. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: string GetCapability() Retrieves the FTP capability object. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: void SendFile(string local_path) Starts sending a specified file to a remote device. local_path specifies the path to file that will be sent. TransferStarted signal is emitted when transfer starts. If error occurs during operation, ErrorOccurred signal is emitted. Possible errors: org.openobex.Error.NotAuthorized org.openobex.Error.NotConnected org.openobex.Error.Busy org.openobex.Error.InvalidArguments org.openobex.Error.OutOfMemory org.openobex.Error.NotFound !! org.openobex.Error.Failed void SendFileExt(string local_path, string remote_filename, string type) Starts sending a specified file to a remote device. It's possible to specify different filename (remote_filename) than that of local file. When remote_filename is empty, original filename is used. type specifies particular OBEX type to send file as. type can be empty. When type is used, remote_filename must be empty. TransferStarted signal is emitted when transfer starts. If error occurs during operation, ErrorOccurred signal is emitted. Possible errors: org.openobex.Error.NotAuthorized org.openobex.Error.NotConnected org.openobex.Error.Busy org.openobex.Error.InvalidArguments org.openobex.Error.OutOfMemory org.openobex.Error.NotFound !! org.openobex.Error.Failed void DeleteRemoteFile(string remote_filename) Deletes specified file on remote device. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: org.openobex.Error.Failed void RemoteCopy(string remote_source, string remote_destination) (since 0.4.3) FTP profile Initiates remote copy operation (data is copied from one location to the other in remote device). remote_source specifies a file or folder to be copied (this file or folder has to exist in current directory). remote_destination specifies path where to copy data. This path can be relative to current folder or relative to root folder. Both slash ('/') and backslash ('\') symbols can be used in path. Example source/destination pairs : 'File.txt' : 'Folder/OtherFolder/NewFile.txt' 'Folder' : '/Folder/OtherFolder/NewFolder' (relative to root folder) 'Folder' : 'Folder\NewFolder' Note that ods does not check remote_destination argument validity. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). ! This method is not included in official FTP profile specification, therefore not many devices support it. Possible errors: void RemoteMove(string remote_source, string remote_destination) (since 0.4.3) FTP profile Initiates remote move operation (data is moved from one location to the other in remote device). See RemoteCopy method for how the arguments should be used. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). ! This method is not included in official FTP profile specification, therefore not many devices support it. Possible errors: string GetImagingCapabilities() BIP profile, all features Retrieves imaging capabilities object ("x-bt/img-capabilities"). This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: void GetImageInfo(string local_path, out uint16 width, out uint16 height, out string encoding) BIP profile utility function Returns image info for specified locally stored image. Returns width, height and encoding. Can be used to determine how image should be resized to match remote device preferred image format specified in imaging capabilities object. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: org.openobex.Error.InvalidArguments org.openobex.Error.NotSupported org.openobex.Error.Failed void PutImage(string local_path) BIP profile, ImagePush and RemoteDisplay features Pushes image to remote device. local_path specifies image filename. TransferStarted signal is emitted when transfer starts. If error occurs during operation, ErrorOccurred signal is emitted. When transfer finishes successfully, ImageHandleReceived signal is emitted (ImageHandleReceived signal returns image handle for pushed image to be used in further operations). Possible errors: void PutImageResized(string local_path, uint16 width, uint16 height, string encoding, string transformation) BIP profile, ImagePush and RemoteDisplay features Pushes resized/encoded image to remote device. Client application should parse ImagingCapabilities object prior to this to acquire image formats supported by remote device. local_path specifies original image filename. width and height specify new dimensions. encoding specifies image format ("JPEG", "PNG", etc.). If encoding is empty, original encoding will be preserved. See ImageMagick supported formats list for available values. transformation defines how image should be resized. Possible transformations are "stretch" (stretches image to new dimensions), "crop" (crops image) or "fill" (in case dimensions are bigger than original, image is filled with white backround). If specified dimensions match the original dimensions, no resizing will be done. If invalid transformation value is used, "stretch" will be used by default. TransferStarted signal is emitted when transfer starts. If error occurs during operation, ErrorOccurred signal is emitted. When transfer finishes successfully, ImageHandleReceived signal is emitted (ImageHandleReceived signal returns image handle for pushed image to be used in further operations). Possible errors: void PutLinkedAttachment(string image_handle, string local_path, string content_type, string charset) BIP profile, ImagePush feature Pushes attachment linked to previously pushed image. image_handle specifies handle of previously pushed image, local_path is path to file to be sent. content_type specifies attachment's MIME content type, e.g. "text/plain". content_type is optional and can be empty. charset specifies charset in which attachment is encoded. charset is also optional and can be empty. Progress of transfer is reported using TransferStarted, TransferProgress, ErrorOccurred and TransferCompleted signals. Possible errors: void RemoteDisplaySelectImage(string image_handle) BIP profile, RemoteDisplay feature Selects previously pushed image (using PutImage or PutImageResized methods). image_handle specifies image handle corresponding to previously pushed image (returned by ImageHandleReceived signal). This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: org.openobex.Error.Failed void RemoteDisplayShowCurrentImage() BIP profile, RemoteDisplay feature Triggers remote device to show currently selected image. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: org.openobex.Error.Failed void RemoteDisplayShowNextImage() BIP profile, RemoteDisplay feature Triggers remote device to show next image. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: org.openobex.Error.Failed void RemoteDisplayShowPreviousImage() BIP profile, RemoteDisplay feature Triggers remote device to show previous image. This method only returns after operation is finished. This means that if method returned without any error, operation is complete (this is in contrast with how file transfers work). Possible errors: org.openobex.Error.Failed dict GetTransferInfo() Returns info about the ongoing transfer: "LocalPath" : full local path; "RemoteFilename" : filename; "Size" : total bytes being transferred; "Time" : last modification time of file being sent; "OBEXCommand" : either "GET" or "PUT"; Possible errors: none boolean IsBusy() Returns true if there is an operation in progress, false otherwise. Possible errors: none void Cancel() Cancels any operation that is in progress. Possible errors: org.openobex.Error.Failed Signals void Cancelled() This signal informs that the current transfer was cancelled either by client or by server. void Disconnected() This signal informs that the session was disconnected. void Closed() This signal informs that the session was terminated and that it's object is no longer valid. void TransferStarted(string filename, string local_path, uint64 total_bytes) This signal informs that transfer was started. total_bytes is the number of total bytes that are being sent (0 if total bytes are unknown). filename specifies the filename (without path) of file being sent or null if it is unknown. local_path specifies where the file is stored locally. void TransferProgress(uint64 bytes_transferred) This signal is emitted constantly during the transfer. bytes_transferred specifies how many bytes were already transferred. void TransferCompleted() This signal informs that transfer was completed. void ErrorOccurred(string error_name, string error_message) This signal informs that error occurred while performing some operation. void ImageHandleReceived(string image_handle, boolean thumbnail_requested) This signal returns image handle for pushed image (using PutImage or PutImageResized). thumbnail_requested specifies whether Imaging Responder requested client to send thumbnail. If thumbnail was requested, TransferStarted/TransferProgress/TransferCompleted signals will be emitted when transferring thumbnail. ServerSession hierarchy =============================== Service org.openobex Interface org.openobex.ServerSession Object path /org/openobex/serversession{0,1,2...} Methods void Accept() Accepts incoming file (use this when auto_accept is set to False for corresponding Server object). If auto_accept is True, this function will do nothing. Call this method just after receiving TransferStarted signal. If there is no transfer in progress or if current transfer is not an incoming transfer, error will be returned. If you do not call Accept() or Reject() in 15 seconds after TransferStarted signal, incoming file will be automatically rejected and you will receive Cancelled signal. Possible errors: org.openobex.Error.Failed void Reject() Rejects incoming file (use this when auto_accept is set to False for corresponding Server object). If auto_accept is True, this function will do nothing. Call this method just after receiving TransferStarted signal. If there is no transfer in progress or if current transfer is not an incoming transfer, error will be returned. If you do not call Accept() or Reject() in 15 seconds after TransferStarted signal, incoming file will be automatically rejected and you will receive Cancelled signal. Possible errors: org.openobex.Error.Failed void Disconnect() Disconnects from remote device. ServerSession object is finalized and can not be used anymore. Disconnected signal is emitted once disconnected. Possible errors: dict GetTransferInfo() Returns all info about the ongoing transfer (filename, local path, total bytes). Possible errors: none void Cancel() Cancels any operation that is in progress. Possible errors: org.openobex.Error.Failed Signals void Cancelled() This signal informs that the current transfer was cancelled either by client or by server. void Disconnected() This signal informs that the ServerSession was disconnected. ServerSession object is finalized and can not be used anymore. void TransferStarted(string filename, string local_path, uint64 total_bytes) This signal informs that transfer was started. total_bytes is the number of total bytes that are being sent (0 if total bytes are unknown). filename specifies the filename (without path) of file being sent or null if it is unknown. local_path specifies where the file is stored locally. void TransferProgress(uint64 bytes_transferred) This signal is emitted constantly during the transfer. bytes_transferred specifies how many bytes were already transferred. void TransferCompleted() This signal informs that transfer was completed. void ErrorOccurred(string error_name, string error_message) This signal informs that error occurred while performing some operation. void RemoteDisplayRequested(string filename) This signal is used for Imaging sessions that use Remote Display feature. Signal informs that remote device requested display of previously uploaded image. filename specifies the filename of image to be displayed.