Files
asterisk/doc/tex/asterisk.tex
Mark Michelson e24661fd18 Merge Call completion support into trunk.
From Reviewboard:
CCSS stands for Call Completion Supplementary Services. An admittedly out-of-date
overview of the architecture can be found in the file doc/CCSS_architecture.pdf
in the CCSS branch. Off the top of my head, the big differences between what is
implemented and what is in the document are as follows:

1. We did not end up modifying the Hangup application at all.
2. The document states that a single call completion monitor may be used across
   multiple calls to the same device. This proved to not be such a good idea
   when implementing protocol-specific monitors, and so we ended up using one
   monitor per-device per-call.
3. There are some configuration options which were conceived after the document
   was written. These are documented in the ccss.conf.sample that is on this
   review request.
		      
For some basic understanding of terminology used throughout this code, see the
ccss.tex document that is on this review.

This implements CCBS and CCNR in several flavors.

First up is a "generic" implementation, which can work over any channel technology
provided that the channel technology can accurately report device state. Call
completion is requested using the dialplan application CallCompletionRequest and can
be canceled using CallCompletionCancel. Device state subscriptions are used in order
to monitor the state of called parties.

Next, there is a SIP-specific implementation of call completion. This method uses the
methods outlined in draft-ietf-bliss-call-completion-06 to implement call completion
using SIP signaling. There are a few things to note here:

* The agent/monitor terminology used throughout Asterisk sometimes is the reverse of
  what is defined in the referenced draft.

* Implementation of the draft required support for SIP PUBLISH. I attempted to write
  this in a generic-enough fashion such that if someone were to want to write PUBLISH
  support for other event packages, such as dialog-state or presence, most of the effort
  would be in writing callbacks specific to the event package.

* A subportion of supporting PUBLISH reception was that we had to implement a PIDF
  parser. The PIDF support added is a bit minimal. I first wrote a validation
  routine to ensure that the PIDF document is formatted properly. The rest of the
  PIDF reading is done in-line in the call-completion-specific PUBLISH-handling
  code. In other words, while there is PIDF support here, it is not in any state
  where it could easily be applied to other event packages as is.

Finally, there are a variety of ISDN-related call completion protocols supported. These
were written by Richard Mudgett, and as such I can't really say much about their
implementation. There are notes in the CHANGES file that indicate the ISDN protocols
over which call completion is supported.

Review: https://reviewboard.asterisk.org/r/523


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@256528 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-09 15:31:32 +00:00

171 lines
3.8 KiB
TeX

% To generate a PDF from this, install the "rubber" tool, and the LaTeX
% dependencies for it. Then, run:
%
% rubber asterisk.tex
%
% http://www.pps.jussieu.fr/~beffara/soft/rubber/
\documentclass[12pt,a4]{report}
\usepackage{hyperref}
\usepackage{url}
\makeatletter
\def\url@aststyle{%
\@ifundefined{selectfont}{\def\UrlFont{\sf}}{\def\UrlFont{\small\ttfamily}}}
\makeatother
\urlstyle{ast}
\usepackage[titles]{tocloft}
\renewcommand{\cftchapfont}{%
\fontsize{11}{13}\usefont{OT1}{phv}{bc}{n}\selectfont
}
\newenvironment{astlisting}
{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\scriptsize\bfseries}
{\end{list}}
\usepackage{sectsty}
\allsectionsfont{\usefont{OT1}{phv}{bc}{n}\selectfont}
\usepackage[Lenny]{fncychap}
\author{Asterisk Development Team \\ Asterisk.org}
\title{Asterisk Reference Information \\ ASTERISKVERSION}
\begin{document}
\maketitle
\tableofcontents
\chapter{Introduction}
This document contains various pieces of information that are useful for
reference purposes.
\section{License Information}
\input{../../LICENSE}
\subsection{Hold Music}
Digium has licensed the music included with
the Asterisk distribution From opsound.org
for use and distribution with Asterisk. It
is licensed ONLY for use as hold music within
an Asterisk based PBX.
\section{Security}
\input{security.tex}
\section{Hardware}
\input{hardware.tex}
\chapter{Configuration}
\section{General Configuration Information}
\subsection{Configuration Parser}
\input{configuration.tex}
\subsection{Asterisk.conf}
\input{asterisk-conf.tex}
\subsection{CLI Prompt}
\input{cliprompt.tex}
\subsection{Extensions}
\input{extensions.tex}
\subsection{IP Quality of Service}
\input{qos.tex}
\subsection{MP3 Support}
\input{mp3.tex}
\subsection{ICES}
\input{ices.tex}
\section{Database Support}
\subsection{Realtime Database Configuration}
\input{realtime.tex}
\subsection{FreeTDS}
\input{freetds.tex}
\section{Privacy}
\input{privacy.tex}
\chapter{Channel Variables}
\input{channelvariables.tex}
\chapter{AEL: Asterisk Extension Language}
\input{ael.tex}
\chapter{SLA: Shared Line Appearances}
\input{sla.tex}
\chapter{Channel Drivers}
\section{IAX2}
\input{chaniax.tex}
\subsection{IAX2 Jitterbuffer}
\input{jitterbuffer.tex}
\section{mISDN}
\input{misdn.tex}
\section{Local}
\input{localchannel.tex}
\section{Mobile}
\input{chan_mobile.tex}
\chapter{Distributed Universal Number Discovery (DUNDi)}
\section{Introduction}
\input{dundi.tex}
\section{Peering Agreement}
\input{../PEERING}
\chapter{ENUM}
\input{enum.tex}
\chapter{AMI: Asterisk Manager Interface}
\input{manager.tex}
\input{ajam.tex}
\chapter{CDR: Call Detail Records}
\input{billing.tex}
\input{cdrdriver.tex}
\chapter{CEL: Channel Event Logging}
\input{cel-doc.tex}
\input{celdriver.tex}
\chapter{Voicemail}
\section{ODBC Storage}
\label{odbcstorage}
\input{odbcstorage.tex}
\section{IMAP Storage}
\input{imapstorage.tex}
\chapter{SMS}
\input{app-sms.tex}
\chapter{Queues}
\input{queues-with-callback-members.tex}
\section{Queue Logs}
\input{queuelog.tex}
\chapter{Phone Provisioning}
\input{phoneprov.tex}
\chapter{Calendaring}
\input{calendaring.tex}
\chapter{Security Framework}
\input{security-events.tex}
\chapter{Call Completion Supplementary Services}
\input{ccss.tex}
\chapter{Development}
\section{Backtrace}
\input{backtrace.tex}
% This is a list of files not yet integrated into this document:
%
%Misc
%----
%asterisk-mib.txt SNMP mib for Asterisk (net-snmp)
%digium-mib.txt SNMP mib for Asterisk (net-snmp)
%
% Note that there is some developer documentation in the doc directory, but
% the goal is to have developer documentation all integrated into the doxygen
% documentation.
\end{document}