mcabber/doc/guide/guide.tex
author Mikael Berthe <mikael@lilotux.net>
Sun, 24 Oct 2021 18:22:01 +0200
changeset 2362 64de2d6858b0
parent 1759 921429804e20
permissions -rw-r--r--
Documentation: Fix missing .png extension in \includegraphics Patch from the Debian package.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1559
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     1
\documentclass[12pt,oneside,a4]{book}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     2
\usepackage{hyperref}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     3
\usepackage{float}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     4
\usepackage{listings}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     5
\usepackage{graphicx}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     6
\usepackage{multirow}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     7
\title{Mcabber User Guide}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     8
\author{franky}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     9
\begin{document}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    10
\maketitle
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    11
\tableofcontents
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    12
\chapter*{Introduction}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    13
This guide was written for users who are new to mcabber\cite{mcabber} which is a small
1759
921429804e20 Update documentation
Mikael Berthe <mikael@lilotux.net>
parents: 1559
diff changeset
    14
command line client for the Jabber (XMPP) protocol\cite{jabber} as an introduction. This introduction may
1559
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    15
become a comprehensive guide to every aspect of mcabber later, but the first versions should only be
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    16
regarded as an overview of all features. Feel free to bug me with corrections of spelling errors or
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    17
with contributions to the content.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    18
\paragraph{Conventions used in this guide:\\}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    19
\begin{tabular}{ c p{10cm} }
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    20
	\verb+/command+ & This is a command for mcabber which can only be executed during runtime.\\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    21
	\verb+command+ & A command for mcabber which can be given in the configuration file, too.\\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    22
	\verb+$command+ & The \$-sign precedes shell commands.\\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    23
	\textit{variable} & This is a variable which can be set in the configuration file or during runtime. \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    24
\end{tabular}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    25
\chapter{Basic Usage}
1759
921429804e20 Update documentation
Mikael Berthe <mikael@lilotux.net>
parents: 1559
diff changeset
    26
After installing mcabber, you should create a configuration file first.\\
921429804e20 Update documentation
Mikael Berthe <mikael@lilotux.net>
parents: 1559
diff changeset
    27
The easiest way of doing this is to copy the sample configuration file\cite{samplerc} to
921429804e20 Update documentation
Mikael Berthe <mikael@lilotux.net>
parents: 1559
diff changeset
    28
\~{}/.mcabber/mcabberrc. Then, you only have to change the variable
921429804e20 Update documentation
Mikael Berthe <mikael@lilotux.net>
parents: 1559
diff changeset
    29
\textit{jid} before you can, finally, start mcabber. When the Login is
921429804e20 Update documentation
Mikael Berthe <mikael@lilotux.net>
parents: 1559
diff changeset
    30
successful, mcabber might look similar to the following screenshot:\\
1559
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    31
\begin{figure}[h!]
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    32
	\centering
2362
64de2d6858b0 Documentation: Fix missing .png extension in \includegraphics
Mikael Berthe <mikael@lilotux.net>
parents: 1759
diff changeset
    33
	\includegraphics[scale=0.8]{guide.png}
1559
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    34
	\caption{screenshot of mcabber}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    35
	\label{fig:screenshot}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    36
\end{figure}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    37
The screen is divided into 4 regions: The roster(sometimes called buddy list) in the upper left,
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    38
the chat window/buffer in the upper right, the input line at the bottom and the log window above the
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    39
input line. Those two blue lines which are below and above the log window are status lines. The lower one
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    40
displays the general mcabber status and the upper line the status of the selected contact.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    41
The screenshot shows mcabber in "chat mode" which can be entered by pressing enter or sending a message
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    42
when a contact is selected. Leaving chatmode is done by pressing Esc. To move between your contacts, you
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    43
can use the buttons Pg Up/Pg Down. If you look at the roster of the screenshot, you will notice that the
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    44
contact "loic" is marked red. That's the default for the "unread" color, so "loic" sent a message to
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    45
you, but you have not read it, yet. Moving by pressing Pg Down would need 6 key presses, so it might be faster to use
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    46
\verb+/roster unread_next+ to quickly jump to the next unread buffer. Which brings us to the interface of mcabber.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    47
Since mcabber has only one input line, there has to be some way of distinguishing mcabber commands from normal text
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    48
messages. As you might have guessed already, all mcabber commands start with a slash, while any other line which you
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    49
have entered will be sent as a message to the selected buddy. You won't find a complete list of all commands here,
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    50
since mcabber has already got a great help system. It's at your fingertips when you enter \verb+/help+.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    51
Furthermore, you can choose the language of the help system by setting \textit{lang} to de, en, fr, it, nl, pl, ru or uk.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    52
\section{Multi-user Chat}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    53
Jabber offers more than other one-on-one chats. There is an extension\cite{xep45} which adds many-to-many chat,
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    54
very similar to systems like IRC. Mcabber can participate through the command \verb+/room+. If you happen to
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    55
find big rooms, you should play a bit with \verb+/color muc+  to make the conversation more readable.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    56
Last but not least, you might be interested in the channel mcabber@conf.lilotux.net as a new mcabber user.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    57
Feel free to drop by and tell us about your experiences with mcabber or this guide!
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    58
\section{Transports}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    59
Transports, also known as Gateways, are Jabber server components which are used for translating your Jabber messages
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    60
for proprietary networks like ICQ, AIM or MSN. At the time of writing, mcabber can't register transports, but,
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    61
if you've registered a transport with another client, you'll be able to use them within mcabber.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    62
Transports are, basically, just another contact on your roster. Thus, using transports is done by sending your status,
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    63
maybe explicitly with \verb+/status_to+.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    64
\section{Symbols}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    65
Most users may be puzzled when they see all those different characters in the roster, the status bar and
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    66
in the chat window for the first time. Some of those symbols might be obvious, but others aren't descriptive at all.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    67
So, here is a list of all characters and their meanings, structured per window where they were taken from. \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    68
\begin{tabular}{c  c}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    69
	\begin{tabular}{|c | l|}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    70
		\hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    71
		\multicolumn{2}{|c|}{Roster}\\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    72
		\hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    73
		Symbols & Rosteritem \\ \hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    74
		\verb+---+	& unfolded Group \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    75
		\verb-+++- & folded Group \\ \hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    76
		\verb+[ ]+ & buddy or chat room(MUC) \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    77
		\verb+{ }+ & buddy who can't see your status \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    78
		\verb- + - & buddy is typing \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    79
		\verb+ . + & buddy stopped typing \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    80
		\verb+ _ +  & buddy status: offline \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    81
		\verb+ o + & buddy status: online \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    82
		\verb+ a + & buddy status: away \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    83
		\verb+ d + & buddy status: do not disturb \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    84
		\verb+ n + & buddy status: not available\\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    85
		\verb+ f + & buddy status: free for chat \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    86
		\verb+ ? + & buddy status unknown \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    87
		\verb+ x + & muc status: not connected \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    88
		\verb+ C +  & muc status: connected \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    89
		\hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    90
	\end{tabular}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    91
	&
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    92
	\begin{tabular}{|c | l|}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    93
		\hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    94
		\multicolumn{2}{|c|}{Chat Window} \\ \hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    95
		Symbols & Meaning \\ \hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    96
		\verb+-->+ & sent message \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    97
		\verb+<==+ & received message \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    98
		\verb+~+	& message was encrypted with GPG\\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    99
		\verb+O+	& message was encrypted with OTR\\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   100
		\verb+***+ & info message \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   101
		\verb+#<#+ & error message \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   102
		\hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   103
	%\end{tabular}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   104
	%\begin{tabular}{|c | l|}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   105
	%	\hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   106
		\multicolumn{2}{|c|}{Upper Status Line} \\ \hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   107
		Symbols & Meaning \\ \hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   108
		\verb+~+ & chat mode enabled \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   109
		\verb+*+ & buffer is scroll-locked \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   110
		\verb+[C]+ & chatstate: composing \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   111
		\verb+[A]+ & chatstate: active \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   112
		\verb+[I]+ & chatstate: inactive \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   113
		\verb+[P]+ & chatstate: paused \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   114
		\verb+[G]+ & chatstate: gone \\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   115
		\hline
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   116
	\end{tabular}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   117
\end{tabular}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   118
\chapter{Logging}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   119
Some people write their diaries to remember special moments. Others merely save their chat logs,
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   120
which are often full of personal details, too. Of course, mcabber can keep your chat history
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   121
and fortunately, the format of these logs is easy enough to read with your
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   122
favourite text editor. Moreover, searching is possible with standard unix tools like \verb+$grep+.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   123
\section{Enable Logging}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   124
To enable logging, you'll have to add some lines to your configuration file:
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   125
\begin{lstlisting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   126
set logging = 1
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   127
set load_logs = 1
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   128
\end{lstlisting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   129
Those variables tell mcabber to log the chat history and to load old logs when you restart it.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   130
Please note that there are a lot of other variables affecting logging. You can e.g. choose whether
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   131
you want to log Multi-user Chats(\textit{log\_muc\_conf}) or whether you want to log status changes(\textit{logging\_ignore\_status}).
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   132
You'll find them all in the sample configuration file\cite{samplerc} if you search for "History Logging".
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   133
\section{Grouping logs}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   134
If you know other instant messengers, you might be used to a concept called "metacontacts".
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   135
They can be used to group users, which have multiple representations in your
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   136
roster (e.g. because they have work and home accounts). Unfortunately, mcabber doesn't support
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   137
metacontacts yet, but at least you can group the history of different contacts together.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   138
This basically works by merging those histories and then creating a symlink frome one to the other.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   139
Here's an example with the histories of foo\_work@jabber.org ond foo\_home@jabber.org:
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   140
\begin{lstlisting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   141
$ cd ~/.mcabber/histo/
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   142
$ merge_history.py foo_work@jabber.org foo_home@jabber.org > foo
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   143
$ mv foo foo_home@jabber.org
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   144
$ rm foo_work@jabber.org
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   145
$ ln -sf foo_home@jabber.org foo_work@jabber.org
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   146
\end{lstlisting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   147
The script merge\_history.py is included in the mcabber tarball.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   148
\section{Converting centerim logs}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   149
You've got old centericq\cite{centericq} or centerim\cite{centerim} logs and want to keep
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   150
them in mcabber? There's a script called cicq2mcabber.pl in the contrib directory of the mcabber
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   151
tarball which can be used to do that. Now you only have to figure out where exactly
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   152
centerim saves the history of a particular contact(somewhere under \~{}/.centerim/),
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   153
convert this file to the mcabber history format and save it to \~{}/.mcabber/histo/ with the
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   154
Jabber ID as the filename.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   155
\chapter{Scripting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   156
This chapter will introduce you to the scripting facilities of mcabber.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   157
\section{Aliases}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   158
Aliases are used to map complex commands to a word. \verb+/roster search+ is one of the commands worth remapping
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   159
because it will be used every day. If you want to remap it to \verb+/rs+,
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   160
issue the command \verb+alias rs = roster search+.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   161
\section{Internal Hooks}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   162
Internal Hooks can be used to let mcabber execute commands when a special event occurs.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   163
At the time of this writing, only 2 hooks were defined:
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   164
\begin{itemize}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   165
	\item \textit{hook-post-connect}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   166
	\item \textit{hook-pre-disconnect}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   167
\end{itemize}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   168
The time of the execution is self-explaining, just set those variables to the command you want
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   169
to execute.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   170
\section{External scripts}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   171
Mcabber will execute the external script specified in the variable \textit{events\_command} whenever a new
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   172
message is received. It will be called at least with 3 parameters:
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   173
\begin{enumerate}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   174
	\item MSG or STATUS
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   175
	\item	IN, OUT or MUC if the first argument was MSG or one character of "\_OFDNAI" if the first argument was STATUS
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   176
	\item The JID which triggered the event
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   177
	\item (optional) filename of the file which contains the message body
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   178
\end{enumerate}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   179
If you need the message body for your event script, you'll have to set the option \textit{event\_log\_files} to 1.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   180
The script has to delete that file after it processed it. To execute mcabber commands,
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   181
you'll have to compile mcabber with FIFO support(\verb+$./configure --enable-fifo+). Then activate it by setting the
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   182
variable \textit{fifo\_name} to the filename of the fifo in your config file. There will be some verbose debug
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   183
output in the logging window if you don't set the variable \textit{fifo\_hide\_output} to 1.\\
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   184
There is another variable which might be interesting for the developer of external scripts.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   185
If \textit{statefile} is set to a filename, mcabber saves the JIDs of all unread buffers to that file, one per line.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   186
\chapter{Encryption}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   187
Encryption is one of the greatest advantages of Jabber compared to similar
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   188
"legacy" networks like ICQ, MSN, AIM, etc. With encryption, you'll be able
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   189
to communicate in hostile network environments with a clear conscience,
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   190
because almost nobody will be able to spy on you. Practically, every connection
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   191
which is established when using the Jabber protocol could be encrypted.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   192
First of all, you can connect to your Jabber server via ssl, which will
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   193
prevent anyone between you and the server from sniffing your plaintext
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   194
messages or your password. In mcabber you could enable this feature by adding
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   195
\begin{lstlisting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   196
set ssl = 1
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   197
set ssl_verify = -1
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   198
\end{lstlisting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   199
to your configuration file.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   200
The next step is server to server encryption, which you can't control,
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   201
unless you're the admin of your server. So, theoretically it would be possible
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   202
to spy between Jabber servers, or maybe your buddy doesn't use an ssl
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   203
connection. Of course, if you are truly paranoid, you won't trust the
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   204
server admins but only your buddy. So, to encrypt messages between you and your
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   205
buddy, end-to-end encryption can be used. There are two protocols for
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   206
accomplishing this: The first one is OpenPGP/GnuPG, which is a semi standard\cite{xep27}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   207
in the Jabber world. The other protocol is Off-the-Record(OTR) Messaging, which was
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   208
designed by cryptographers Ian Goldberg and Nikita Borisov\cite{otr}. Although OTR
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   209
isn't a standard, a lot of developers have implemented it for their instant
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   210
messaging clients. The main reason might be the availability of libotr\cite{libotr},
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   211
an open-source library from the authors of OTR which does all the hard work.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   212
GnuPG is considered to be more mature, but it also has a major drawback:
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   213
You can't encrypt messages between Jabber and legacy networks. Because
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   214
naturally, the clients of other networks won't support Jabber extensions.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   215
OTR can fill that gap, because it only uses the message body as an envelope
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   216
for the whole protocol.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   217
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   218
I will now describe in detail how to use both protocols with mcabber.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   219
\section{OpenPGP}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   220
First of all, I'm assuming that you've already generated a gnupg key
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   221
which you want to use to encrypt Jabber messages. If you haven't done
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   222
this before, go to \url{http://gnupg.org/documentation/} first.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   223
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   224
Using PGP encryption with mcabber should be straight-forward, but you have to
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   225
restart mcabber for configuring it. To enable PGP for mcabber, you must
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   226
add two lines to your configuration file:
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   227
\begin{lstlisting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   228
set pgp = 1
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   229
set pgp_private_key = 23DEADBEEFDEAD42
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   230
\end{lstlisting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   231
The first one enables OpenPGP and the second line tells mcabber which PGP key it
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   232
should use. If you didn't notice: This hexadecimal number is the last
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   233
characters of your PGP key fingerprint, get it with
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   234
\verb+gpg --fingerprint+\verb+ --list-secret-keys+.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   235
If you have no problems writing your passphrase to your hard disk, you could
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   236
also set the variable \textit{pgp\_passphrase} in your config file. Otherwise mcabber will
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   237
ask you for your passphrase at every start-up.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   238
From now on, mcabber will magically use PGP encryption whenever it can.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   239
Basically this works because presence messages of users using PGP are signed
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   240
with their key. If you happen to have a contact whose Jabber client doesn't
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   241
conform to that part of the standard, you can manually give mcabber their key
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   242
fingerprint:
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   243
\begin{lstlisting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   244
pgp setkey foo@bar.net D9940C9BB1B92310
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   245
\end{lstlisting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   246
\section{OTR}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   247
Enabling OTR in mcabber works in almost the same manner as PGP. But instead of
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   248
generating your encryption key by hand, mcabber will create one for you when
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   249
it starts. This might take some time and you can speed it up by generating
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   250
randomness by typing, moving the mouse, writing to hard disk etc.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   251
But first of all, you must add the following lines to your configuration file
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   252
and restart mcabber:
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   253
\begin{lstlisting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   254
set otr = 1
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   255
otrpolicy default manual
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   256
\end{lstlisting}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   257
The first line is analogous to PGP. The second one gives the OTR subsystem
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   258
the hint that you want to be able to start encrypted OTR channels
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   259
manually(by issuing \verb+/otr start+). If you want that they are also "magically" started, you should
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   260
change \verb+manual+ to \verb+opportunistic+. The opportunistic mode adds some whitespace
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   261
characters to the first message sent to a buddy. So, his client can find those
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   262
characters and establish an OTR channel. Please note that "establishing" the
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   263
channel could take some time, depending on the delay of exchanging messages
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   264
between both ends. (For the technically inclined: Four messages have to be sent
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   265
before the channel is fully established. The whole protocol is described in
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   266
detail at \url{http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html})
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   267
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   268
Keep in mind that an established channel with a buddy isn't per se secure. It
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   269
could be possible that you become a victim of a Man-in-the-middle attack. To
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   270
make it secure, you'll have to exchange the fingerprints of the keys through
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   271
a trusted medium (telephone, in person, etc). You can see your own fingerprint
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   272
by using the command \verb+/otr key+ and the fingerprint of your chat buddy by
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   273
\verb+/otr fingerprint+. Check \verb+/help otr+ to find out how to trust the fingerprint now.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   274
There is even another way for exchanging fingerprints: The Socialist Millionaires'
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   275
Protocol\cite{smp}. It's basically a cryptographic secure way for two parties with the
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   276
secret information x and y to check whether x==y without revealing any
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   277
information about the secrets. Unfortunately there aren't many clients
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   278
supporting that feature yet. In mcabber it is mapped to the commands
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   279
\verb+/otr smpq bob@foo.net your_secret+ for the initiating party and
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   280
\verb+/otr smpr alice@foo.net your_secret+ for the answering party. If both parties supply
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   281
the same secret, the fingerprints can be marked trusted.
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   282
\bibliographystyle{plain}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   283
\bibliography{guide}
0674abda9a8f Add Franky's mcabber user guide
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   284
\end{document}