Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
OBEXAPP(1)		    General Commands Manual		    OBEXAPP(1)

NAME
       obexapp -- simple OBEX application

SYNOPSIS
       obexapp -c [-fh]	-a BD_ADDR [-A BD_ADDR]	-C channel [-m MTU]
       obexapp	-c [-fh] -a BD_ADDR [-A	BD_ADDR] -C channel [-m	MTU] [-r path]
	       -n command parameters
       obexapp -s [-dDSRh] [-A	BD_ADDR]  [-C  channel]	 [-m  MTU]  [-r	 path]
	       [-u user]

DESCRIPTION
       The  obexapp  is	 a  simple  OBEX application.  In can operate in three
       modes:
	     1.	  interactive client mode;
	     2.	  non-interactive client mode;
	     3.	  server mode.

       In the interactive client mode obexapp opens RFCOMM connection  to  the
       specified BD_ADDR and channel and starts	interactive OBEX session.

       In  the	non-interactive	client mode obexapp opens RFCOMM connection to
       the specified BD_ADDR and channel and performs specified	 OBEX  command
       with  the specified parameters.	Only one OBEX command can be performed
       at a time.

       The following OBEX commands are supported in the	non-interactive	client
       mode:

       get remote-file [local-file]
	       Get remote-file from the	remote	OBEX  server  as  save	it  as
	       local-file.  If the local-file parameter	was omitted then it is
	       constructed  from  the  remote-file.  The path component	of the
	       constructed local file name will	be set to the  current	direc-
	       tory unless -r option was specified.

       getdefault local-file
	       Get  the	 default  vCard	object from the	remote OBEX server and
	       save it as local-file.

       put local-file [remote-file]
	       Put one local-file to the remote	OBEX  server  as  remote-file.
	       If  the remote-file parameter was omitted the it	is constructed
	       from the	local-file.  The path component	of the constructed re-
	       mote file name will be removed.

       In the server mode obexapp listens for incomming	 connections,  on  the
       specified  BD_ADDR  and channel when given, from	remote clients.	 If no
       channel is given, the first unused RFCOMM channel  will	be  allocated.
       Once new	connection is accepted obexapp forks and start new OBEX	server
       for the client.	Note: if -D option was specified then OBEX server will
       not  listen and fork.  In this case it is assumed that stdin/stdout was
       already connected to the	client.

       When operating in server	mode, the "Class of  Device"  setting  of  the
       Bluetooth  controller  should  be  changed  to  indicate	 that  "Object
       Transfer" is supported, as some devices filter the inquiry  results  by
       device class.

       The options are as follows:

       -A BD_ADDR
	       Specify	which local Bluetooth device should be used.  This op-
	       tion can	be used	when the host has multiple  Bluetooth  devices
	       connected  at the same time.  If	not specified, BDADDR_ANY will
	       be used.

       -a BD_ADDR
	       In the client mode this required	option	specifies  the	remote
	       BD_ADDR of the OBEX server.

       -C channel
	       In  both	 client	 and server modes this option specifies	RFCOMM
	       channel to connect to or	listen on.  In the server mode	RFCOMM
	       channel	should be number between 1 and 30.  In the client mode
	       RFCOMM channel could be either number between 1 and 30 or  ser-
	       vice name. Supported service names are: IrMC for	IrMC Sync ser-
	       vice,  FTRN  for	 OBEX File Transfer service and	OPUSH for OBEX
	       Push service.  If service name was specified instead of numeric
	       RFCOMM channel then obexapp utility will	try to	obtain	RFCOMM
	       channel for the service via Service Discovery Protocol.

       -c      Act as OBEX client.  This is the	default	mode.

       -D      Use  direct  IO on stdin/stdout instead of listening on a L2CAP
	       socket (server mode only, and will not create any  SDP  service
	       records).

       -d      Do  not detach from the controlling terminal, i.e. run in fore-
	       ground (server mode only).

       -f      Connect to Folder Browsing Service on the  remote  OBEX	server
	       (client	mode  only).   By  default client does not specify any
	       service in OBEX connect request.

       -h      Display usage message and exit.

       -l priority
	       Set least severe	log priority.  In other	words, log any message
	       that has	more severe or equal  priority	than  given  priority.
	       Priority	 should	 be specified by its name.  Supported priority
	       names are: alert, crit, debug, emerg, err, error,  info,	 none,
	       notice,	panic,	warn  and  warning.   Default  log priority is
	       error.

       -m MTU  Set OBEX	MTU.  Defaults to the maximum supported	value.

       -n      Work in the non-interactive client mode.

       -R      Virtualize root folder for each client device in	 server	 mode.
	       Will  automatically  turn  on  secure  mode,  i.e.   -S option.
	       Please read section below for a complete	description.

       -r path
	       Specify root folder.  Default root folder in the	server mode is
	       /var/spool/obex unless -u option	was specified.	The -u	option
	       will  set  default  root	 folder	 to the	user's home directory.
	       Current directory is the	default	root folder in the  non-inter-
	       active client mode.

       -S      Run  OBEX server	in secure mode.	 This only works if server was
	       started as root.	 In secure mode	server will chroot to the root
	       folder.

       -s      Act as OBEX server.

       -u user
	       Specifies the user the server should run	as after  it  initial-
	       izes.   The  value  specified may be either a username or a nu-
	       meric user id.  This only works if server was started as	root.

VIRTUAL	ROOT FOLDERS
       When accepting connections in server mode, obexapp will attempt to find
       an entry	that would act as a virtual root folder	for the	connecting de-
       vice.  Virtual root folders must	reside under default root folder which
       is set with -r option.  The rules are as	follows:
	     1.	  obexapp will try to resolve connecting device's BD_ADDR  us-
		  ing  bt_gethostbyaddr(3)  call  and  check for an entry that
		  matches resolved name	(if any);
	     2.	  obexapp will check for an entry that matches connecting  de-
		  vice's BD_ADDR;
	     3.	  obexapp will check for an entry, named "default";
       If none of the above matches, then the connection to the	client is ter-
       minated.	 Otherwise, obexapp will try to	change default root folder the
       the found entry.

       If -u option was	specified, the obexapp will try	to change to the spec-
       ified  user.   Otherwise	obexapp	will try change	to the user, that owns
       the found entry.	 That is, if the found entry is	a symlink, the obexapp
       will try	change to the user, that owns symlink and  not	to  the	 user,
       that owns the entry symlink points to.

       This  allows  the  same	system	to intelligently distinguish different
       client devices as belonging to different	users.	An  administrator  can
       set  up	the subdirectories for known devices under /var/spool/obex (or
       wherever, see -r	option)	for each user, or even	as  symlinks  to  each
       user's home directory (or a subdirectory	thereof).

LOCALE SUPPORT
       The obexapp utility uses	iconv(3) library to convert characters between
       the  local  encoding and	the UTF-16BE and UTF-8 encodings.  In order to
       properly	initialize iconv(3) library the	LANG or	 LC_CTYPE  environment
       variable	 must  be set.	The local character encoding also must be sup-
       ported  by  the	iconv(3)  library.   The  "ASCII",  "C",  "POSIX"  and
       "US-ASCII" locales are aliased to "en_US.US-ASCII" locale.

OBEX FORMATS
   Device Information
       telecom/devinfo.txt
	       Information  about  hardware  version, software version,	serial
	       number, etc.  Information about supported character sets.  Sup-
	       ported operations: GET.

       telecom/rtc.txt
	       The Real	Time Clock Object contains the current date  and  time
	       of the device.  Supported operations: GET/PUT.

   Phone Book
       telecom/pb.vcf
	       Level  2	 access	(Access	entire phonebook database).  Supported
	       operations: GET/PUT.

       telecom/pb/luid/.vcf
	       Add new entry.  Supported operations: PUT.

       telecom/pb/0.vcf
	       Own business card.  Supported operations: GET/PUT.

       telecom/pb/###.vcf
	       Level 3 static index access.  Supported operations: GET/PUT.

       telecom/pb/luid/*.vcf
	       Level 4 unique index access.  Supported operations: GET/PUT.

       telecom/pb/info.log
	       Supported properties and	memory	info.	Supported  operations:
	       GET.

       telecom/pb/luid/###.log
	       Change log.  Supported operations: GET.

       telecom/pb/luid/cc.log
	       Change counter.	Supported operations: GET.

   Calendar
       telecom/cal.vcs
	       Level 2 access.	Supported operations: GET/PUT.

       telecom/cal/luid/.vcs
	       Add new entry.  Supported operations: PUT.

       telecom/cal/###.vcs
	       Level 3 static index access.  Supported operations: GET/PUT.

       telecom/cal/luid/*.vcs
	       Level 4 unique index access.  Supported operations: GET/PUT.

       telecom/cal/info.log
	       Supported  properties  and  memory info.	 Supported operations:
	       GET.

       telecom/cal/luid/###.log
	       Change log.  Supported operations: GET.

       telecom/cal/luid/cc.log
	       Change counter.	Supported operations: GET.

EXAMPLES
   Usage
       obexapp -c -a 00:01:02:03:04:05 -C 1
	       Will start obexapp in the client	mode and try to	connect	to the
	       OBEX server at 00:01:02:03:04:05	address	and channel  1.	  Once
	       connected the obexapp will start	interactive OBEX session.

       obexapp -s -C 1
	       Will  start  obexapp  in	the server mode.  The OBEX server will
	       listen on ANY address and RFCOMM	channel	1.

       ln -s /home/wallaby /var/spool/obex/00:01:02:03:04:05

       chown -h	wallaby	/var/spool/obex/00:01:02:03:04:05
	       Whenever	the device with	BD_ADDR	of 00:01:02:03:04:05 connects,
	       obexapp running in server mode will switch to user  ID  wallaby
	       and  use	 their home directory as the top-level for the connec-
	       tion.

   Level 1 Information Access
       The first level involves	the basic ability to put an object (such as  a
       vCard)  from  one  device to another.  At this level, a device at least
       has the ability to push an object from one device to another, which  is
       useful at a minimal level.  The receiving device	knows from the name of
       the object, which database to store it in.

	     obex> put
	     put: local	file> new.vcf
	     put: remote file> new.vcf
	     Success, response:	OK, Success (0x20)
	     obex>

   Level 2 Information Access
       The  second level requires the ability to read and write	all entries in
       one device from the other device.  For example, a device	 could	obtain
       all of the vCards stored	in another devices phone book. With this level
       of support, mobile device databases such	as the phone book, message and
       calendar, can be	backed-up and updated using a host device.

	     obex> get
	     get: remote file> telecom/pb.vcf
	     get: local	file> pb.vcf
	     Success, response:	OK, Success (0x20)
	     obex>

   Level 3 Information Access
       The third level requires	the ability to index the objects on the	target
       device,	such that a hierarchy of objects can be	formed.	 With this ca-
       pability, a device may more efficiently update the database objects  on
       the mobile device.

	     obex> get
	     get: remote file> telecom/pb/0.vcf
	     get: local	file> 0.vcf
	     Success, response:	OK, Success (0x20)
	     obex>

       Note: I am still	somewhat confused about	Level 3	information access.  I
       only  managed  to  get telecom/pb/0.vcf (own business card) via Level 3
       information acesss out of my Sony Ericsson T68i cell phone.

   Level 4 Information Access
       The fourth level	requires that the two devices be fully	able  to  syn-
       chronize	their objects one with another.	 At this level of support, two
       devices	support	 database modification logging and other features that
       provide tremendous power	to synchronize the databases in	very  intelli-
       gent ways.

       To get change counter for the phone book

	     obex> get
	     get: remote file> telecom/pb/luid/cc.log
	     get: local	file> cc.log
	     Success, response:	OK, Success (0x20)
	     obex>

       Now cc.log file has the number of changes in the	phone book

	     % cat cc.log
	     48
	     %

       Using the change	counter	the application	can now	request	the phone book
       change log

	     obex> get
	     get: remote file> telecom/pb/luid/0.log
	     get: local	file> 0.log
	     Success, response:	OK, Success (0x20)
	     obex>

       Now 0.log file has information about the	changes	in the phone book

	     % cat 0.log
	     SN:350329711209352
	     DID:4390
	     Total-Records:28
	     Maximum-Records:510
	     M:2::000002000000
	     M:6::000001000000
	     M:8::000006000000
	     M:11::000008000000
	     M:15::000007000000
	     M:17::000000000000
	     etc.
	     %

       From  this  log	the  applicaion	can learn that record with LUID	(Local
       Unique IDentifier) 000002000000 has been	modified  and  change  counter
       associated with this is 2.  To get the record

	     obex> get
	     get: remote file> telecom/pb/luid/000002000000.vcf
	     get: local	file> 000002000000.vcf
	     Success, response:	OK, Success (0x20)
	     obex>

       And finally

	     % cat 000002000000.vcf
	     BEGIN:VCARD
	     VERSION:2.1
	     N:Doe;John
	     TEL;WORK:15558001234
	     END:VCARD
	     %

DIAGNOSTICS
       The obexapp utility exits 0 on success, and >0 if an error occurs.

CAVEAT
       In  server  mode	 obexapp will try to register OBEX Object Push service
       with the	local SDP daemon.  This	means that obexapp requires root priv-
       ileges to start in server mode.	Use -u option to  set  user  name  the
       server should run as after it initializes.

SEE ALSO
       iconv(1),     locale(1),	    iconv(3),	  netgraph(3),	  netgraph(4),
       ng_btsocket(4), sdpcontrol(8), sdpd(8)

AUTHORS
       Maksim Yevmenkin	<m_evmenkin@yahoo.com>

FreeBSD	15.0			April 14, 2009			    OBEXAPP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=obexapp&sektion=1&manpath=FreeBSD+15.0-RELEASE+and+Ports>

home | help