From 3357366474ad27c72b2f26c759f85c5d34dbdc84 Mon Sep 17 00:00:00 2001
From: russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>
Date: Mon, 2 Jul 2007 22:27:46 +0000
Subject: * Move LaTeX docs into a tex/ subdirectory of the doc/ dir * Add a
 Makefile in doc/tex/ for generating PDF and HTML * Add a README.txt file to
 doc/tex/ to document which tools are used and what   web sites to visit for
 getting them. * Update build_tools/prep_tarball to put the proper Asterisk
 version string   in the automatically generated PDF for release tarballs

git-svn-id: http://svn.digium.com/svn/asterisk/trunk@72982 f38db490-d61c-443f-a65b-d21fe96a405b
---
 doc/tex/misdn.tex | 266 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 266 insertions(+)
 create mode 100644 doc/tex/misdn.tex

(limited to 'doc/tex/misdn.tex')

diff --git a/doc/tex/misdn.tex b/doc/tex/misdn.tex
new file mode 100644
index 000000000..3b1ca17ae
--- /dev/null
+++ b/doc/tex/misdn.tex
@@ -0,0 +1,266 @@
+\subsection{Introduction}
+
+This package contains the mISDN Channel Driver for the Asterisk PBX. It 
+supports every mISDN Hardware and provides an interface for asterisk. 
+
+\subsection{Features}
+
+\begin{itemize}
+\item  NT and TE mode
+\item  PP and PMP mode
+\item  BRI and PRI (with BNE1 and BN2E1 Cards)
+\item  Hardware Bridging
+\item  DTMF Detection in HW+mISDNdsp 
+\item  Display Messages on Phones (on those that support display msg)
+\item  app\_SendText
+\item  HOLD/RETRIEVE/TRANSFER on ISDN Phones : )
+\item  Screen/ Not Screen User Number
+\item  EchoCancellation 
+\item  Volume Control 
+\item  Crypting with mISDNdsp (Blowfish)
+\item  Data (HDLC) callthrough 
+\item  Data Calling (with app\_ptyfork +pppd)
+\item  Echo cancellation
+\item  CallDeflection
+\item Some other
+\end{itemize}
+
+\subsection{Fast Installation Guide}
+
+It is easy to install mISDN and mISDNuser. Just fetch the newest head of the
+cvs, this can be done by:
+
+\begin{verbatim}
+cvs -d:pserver:anonymous:readonly@cvs.isdn4linux.de:/i4ldev co mISDN mISDNuser
+\end{verbatim}
+
+then compile and install both with:
+
+\begin{verbatim}
+cd mISDN ;
+make && make install
+\end{verbatim}
+
+(you will need at least your kernel headers to compile mISDN).
+
+\begin{verbatim}
+cd mISDNuser ;
+make && make install
+\end{verbatim}
+
+Now you can compile chan\_misdn, just by making asterisk: 
+
+\begin{verbatim}
+cd asterisk ; 
+./configure && make && make install
+\end{verbatim}
+
+That's all!
+
+Follow the instructions in the mISDN Package for how to load the Kernel
+Modules.
+
+\subsection{Pre-Requisites}
+
+To compile and install this driver, you'll need at least one mISDN Driver and
+the mISDNuser package. Chan\_misdn works with both, the current release version
+and the development (svn trunk) version of Asterisk. mISDNuser and mISDN must
+be fetched from cvs.isdn4linux.de.
+
+You should use Kernels >= 2.6.9 
+
+
+\subsection{Configuration}
+
+First of all you must configure the mISDN drivers, please follow the
+instructions in the mISDN package to do that, the main config file and config
+script is:
+
+\begin{verbatim}
+/etc/init.d/misdn-init  and
+/etc/misdn-init.conf
+\end{verbatim}
+
+Now you will want to configure the misdn.conf file which resides in the
+asterisk config directory (normally /etc/asterisk).
+
+\subsubsection{misdn.conf: [general]}
+The misdn.conf file contains a "general" subsection, and user subsections which
+contain misdn port settings and different Asterisk contexts.
+
+In the general subsection you can set options that are not directly port
+related. There is for example the very important debug variable which you can
+set from the Asterisk cli (command line interface) or in this configuration
+file, bigger numbers will lead to more debug output. There's also a tracefile
+option, which takes a path+filename where debug output is written to.
+
+\subsubsection{misdn.conf: [default] subsection}
+
+The default subsection is another special subsection which can contain all the
+options available in the user/port subsections. the user/port subsection inherit
+their parameters from the default subsection.
+
+\subsubsection{misdn.conf: user/port subsections}
+
+The user subsections have names which are unequal to "general". Those subsections
+contain the ports variable which mean the mISDN Ports. Here you can add
+multiple ports, comma separated.
+
+Espacially for TE-Mode Ports there is a msns option. This option tells the
+chan\_misdn driver to listen for incoming calls with the given msns, you can
+insert a '*' as single msn, which leads in getting every incoming call (if you
+want to share on PMP TE S0 with a asterisk and a phone or isdn card you should
+insert here the msns which you'll like to give the Asterisk).  Finally a
+context variable resides in the user subsections, which tells chan\_misdn where to
+send incoming calls to in the Asterisk dial plan (extension.conf).
+
+
+\subsubsection{Dial and Options String}
+
+The dial string of chan\_misdn got more complex, because we added more features,
+so the generic dial string looks like:
+
+\begin{verbatim}
+mISDN/<port>|g:<group>/<extension>[/<OPTIONSSTRING>]
+
+The Optionsstring looks Like:
+:<optchar1><OptParam1>:<optchar2><OptParam2>
+
+the ":" character is the delimiter.
+
+The available Optchars are: 
+	d - Send display text on called phone, text is the optparam
+	n - don't detect dtmf tones on called channel
+	h - make digital outgoing call
+	c - make crypted outgoing call, param is keyindex
+	e - perform echo cancellation on this channel, 
+	    takes taps as arguments (32,64,128,256)
+	s - send Non Inband DTMF as inband
+	vr - rxgain control
+	vt - txgain control
+\end{verbatim}
+
+chan\_misdn registers a new dial plan application "misdn\_set\_opt" when
+loaded. This application takes the Optionsstring as argument. The Syntax is:
+
+\begin{verbatim}
+misdn_set_opt(<OPTIONSSTRING>)
+\end{verbatim}
+
+When you set options in the dialstring, the options are set in the external
+channel. When you set options with misdn\_set\_opt, they are set in the current
+incoming channel. So if you like to use static encryption, the scenario looks
+as follows:
+
+\begin{verbatim}
+Phone1 --> * Box 1 --> PSTN_TE 
+PSTN_TE --> * Box 2 --> Phone2
+\end{verbatim}
+
+The Encryption must be done on the PSTN sides, so the dialplan on the boxes
+are:
+
+\begin{verbatim}
+* Box 1:
+exten => _${CRYPT_PREFIX}X.,1,Dial(mISDN/g:outbound/:c1)
+
+* Box 2:
+exten => ${CRYPT_MSN},1,misdn_set_opt(:c1)
+exten => ${CRYPT_MSN},2,dial(${PHONE2})
+\end{verbatim}
+
+
+\subsection{mISDN CLI commands}
+
+At the Asterisk cli you can try to type in: 
+
+\begin{verbatim}
+misdn <tab> <tab>
+\end{verbatim}
+
+Now you should see the misdn cli commands: 
+
+\begin{verbatim}
+- clean
+	-> pid 		(cleans a broken call, use with care, leads often
+			 to a segmentation fault)
+- send
+	-> display	(sends a Text Message to a Asterisk channel, 
+			 this channel must be an misdn channel)
+- set
+	-> debug	(sets debug level)
+- show
+	-> config	(shows the configuration options)
+	-> channels	(shows the current active misdn channels)
+	-> channel	(shows details about the given misdn channels)
+	-> stacks	(shows the current ports, their protocols and states)
+	-> fullstacks	(shows the current active and inactive misdn channels)
+
+- restart 
+	-> port		(restarts given port (L2 Restart) )
+
+- reload 		(reloads misdn.conf)
+\end{verbatim}
+
+You can only use "misdn send display" when an Asterisk channel is created and
+isdn is in the correct state. "correct state" means that you have established a
+call to another phone (mustn't be isdn though).
+
+Then you use it like this:
+
+misdn send display mISDN/1/101 "Hello World!"
+
+where 1 is the Port of the Card where the phone is plugged in, and 101 is the
+msn (callerid) of the Phone to send the text to.
+
+\subsection{mISDN Variables}
+
+mISDN Exports/Imports a few Variables: 
+
+\begin{verbatim}
+- MISDN_ADDRESS_COMPLETE : 	Is either set to 1 from the Provider, or you 
+				can set it to 1 to force a sending complete.
+\end{verbatim}
+
+
+\subsection{Debugging and sending bug reports}
+
+If you encounter problems, you should set up the debugging flag, usually
+debug=2 should be enough. the messages are divided in asterisk and misdn
+parts.  Misdn Debug messages begin with an 'I', asterisk messages begin with
+an '*', the rest is clear I think.
+
+Please take a trace of the problem and open a report in the Asterisk issue
+tracker at http://bugs.digium.com in the "channel drivers" project,
+"chan\_misdn" category. Read the bug guidelines to make sure you
+provide all the information needed.
+
+
+\subsection{Examples}
+
+Here are some examples of how to use chan\_misdn in the dialplan
+(extensions.conf):
+
+\begin{verbatim}
+[globals]
+OUT_PORT=1 ; The physical Port of the Card
+OUT_GROUP=ExternE1 ; The Group of Ports defined in misdn.conf
+
+[misdnIn]
+exten => _X.,1,Dial(mISDN/${OUT_PORT}/${EXTEN})
+exten => _0X.,1,Dial(mISDN/g:${OUT_GROUP}/${EXTEN:1})
+exten => _1X.,1,Dial(mISDN/g:${OUT_GROUP}/${EXTEN:1}/:dHello)
+exten => _1X.,1,Dial(mISDN/g:${OUT_GROUP}/${EXTEN:1}/:dHello Test:n)
+\end{verbatim}
+
+On the last line, you will notice the last argument (Hello); this is sent
+as Display Message to the Phone.
+
+\subsection{Known Problems}
+
+\begin{verbatim}
+* I cannot hear any tone after a successful CONNECT to the other end
+
+-> you forgot to load mISDNdsp, which is now needed by chan\_misdn for switching
+and dtmf tone detection
+\end{verbatim}
-- 
cgit v1.2.3

