.\" 
.\" dbus\-send manual page.
.\" Copyright (C) 2003 Red Hat, Inc.
.\"
.TH dbus\-send 1
.SH NAME
dbus\-send \- Send a message to a message bus
.SH SYNOPSIS
.PP
.B dbus\-send
[\fB\-\-system\fP | \fB\-\-session\fP]
[\fB\-\-dest=\fINAME\fP]
[\fB\-\-print\-reply\fP[\fB=literal\fP]]
[\fB\-\-reply\-timeout=\fIMSEC\fP]
[\fB\-\-type=\fITYPE\fP]
\fIOBJECT_PATH\fP \fIINTERFACE\fB.\fIMEMBER\fP [\fICONTENTS\fP ...]

.SH DESCRIPTION

The \fIdbus\-send\fP command is used to send a message to a D\-Bus message
bus. See http://www.freedesktop.org/software/dbus/ for more 
information about the big picture.

.PP
There are two well\-known message buses: the systemwide message bus 
(installed on many systems as the "messagebus" service) and the 
per\-user\-login\-session message bus (started each time a user logs in).
The \fB\-\-system\fP and \fB\-\-session\fP options direct
\fBdbus\-send\fP to send messages to the system or session buses respectively.
If neither is specified, \fBdbus\-send\fP sends to the session bus.

.PP 
Nearly all uses of \fBdbus\-send\fP must provide the \fB\-\-dest\fP argument
which is the name of a connection on the bus to send the message to. If
\fB\-\-dest\fP is omitted, no destination is set.

.PP
The object path and the name of the message to send must always be
specified. Following arguments, if any, are the message contents
(message arguments).  These are given as type\-specified values and 
may include containers (arrays, dicts, and variants) as described below.

.nf
<contents>   ::= <item> | <container> [ <item> | <container>...]
<item>       ::= <type>:<value>
<container>  ::= <array> | <dict> | <variant>
<array>      ::= array:<type>:<value>[,<value>...] 
<dict>       ::= dict:<type>:<type>:<key>,<value>[,<key>,<value>...]
<variant>    ::= variant:<type>:<value>
<type>       ::= string | int16 | uint 16 | int32 | uint32 | int64 | uint64 | double | byte | boolean | objpath
.fi

D\-Bus supports more types than these, but \fBdbus\-send\fP currently
does not.  Also, \fBdbus\-send\fP does not permit empty containers
or nested containers (e.g. arrays of variants).

.PP
Here is an example invocation:
.nf

  dbus\-send \-\-dest=org.freedesktop.ExampleName               \\
            /org/freedesktop/sample/object/name              \\
            org.freedesktop.ExampleInterface.ExampleMethod   \\
            int32:47 string:'hello world' double:65.32       \\
            array:string:"1st item","next item","last item"  \\
            dict:string:int32:"one",1,"two",2,"three",3      \\
            variant:int32:\-8                                 \\
            objpath:/org/freedesktop/sample/object/name 

.fi

Note that the interface is separated from a method or signal 
name by a dot, though in the actual protocol the interface
and the interface member are separate fields.

.SH OPTIONS
The following options are supported:
.TP
.BI \-\-dest= NAME
Specify the name of the connection to receive the message.
.TP
.B "\-\-print\-reply"
Block for a reply to the message sent, and print any reply received
in a human-readable form.
.TP
.B "\-\-print\-reply=literal"
Block for a reply to the message sent, and print the body of the
reply. If the reply is an object path or a string, it is printed
literally, with no punctuation, escape characters etc.
.TP
.BI \-\-reply\-timeout= MSEC
Wait for a reply for up to \fIMSEC\fP milliseconds.
The default is implementation\(hydefined, typically 25 seconds.
.TP
.B "\-\-system"
Send to the system message bus.
.TP
.B "\-\-session"
Send to the session message bus.  (This is the default.)
.TP
.BI \-\-type= TYPE
Specify \fBmethod_call\fP or \fBsignal\fP (defaults to "\fBsignal\fP").

.SH AUTHOR
dbus\-send was written by Philip Blundell.

.SH BUGS
Please send bug reports to the D\-Bus mailing list or bug tracker,
see http://www.freedesktop.org/software/dbus/
