mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-17 15:29:05 +00:00
Fix escaping and some of the formattting (closes issue #10285)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76874 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -787,9 +787,9 @@ context loops {
|
|||||||
}
|
}
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
NOTE: The conditional expression (the "\${y} >= 0" above) is wrapped in
|
NOTE: The conditional expression (the "\${y} $>$= 0" above) is wrapped in
|
||||||
\$[ ] so it can be evaluated. NOTE: The for loop test expression
|
\$[ ] so it can be evaluated. NOTE: The for loop test expression
|
||||||
(the "\${x} < 3" above) is wrapped in \$[ ] so it can be evaluated.
|
(the "\${x} $<$ 3" above) is wrapped in \$[ ] so it can be evaluated.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1134,9 +1134,7 @@ These checks will be:
|
|||||||
currently known functions. A warning is issued if it is not.
|
currently known functions. A warning is issued if it is not.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
\section{Differences with the original version of AEL}
|
||||||
Differences with the original version of AEL
|
|
||||||
============================================
|
|
||||||
|
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item The \$[...] expressions have been enhanced to include the ==, ||,
|
\item The \$[...] expressions have been enhanced to include the ==, ||,
|
||||||
@@ -1174,8 +1172,8 @@ Differences with the original version of AEL
|
|||||||
AEL README.
|
AEL README.
|
||||||
\item Added the "return" keyword, which will jump to the end of an
|
\item Added the "return" keyword, which will jump to the end of an
|
||||||
extension/Macro.
|
extension/Macro.
|
||||||
\item Added the ifTime (<time range>|<days of week>|<days of
|
\item Added the ifTime ($<$time range$>$|$<$days of week$>$|$<$days of
|
||||||
month>|<months> ) {} [else {}] construct, which executes much
|
month$>$|$<$months$>$ ) {} [else {}] construct, which executes much
|
||||||
like an if () statement, but the decision is based on the
|
like an if () statement, but the decision is based on the
|
||||||
current time, and the time spec provided in the ifTime. See the
|
current time, and the time spec provided in the ifTime. See the
|
||||||
example above. (Note: all the other time-dependent Applications
|
example above. (Note: all the other time-dependent Applications
|
||||||
@@ -1200,7 +1198,7 @@ Differences with the original version of AEL
|
|||||||
NoOp() added, to make sure the label exists in the extension on
|
NoOp() added, to make sure the label exists in the extension on
|
||||||
Asterisk. (0.6)
|
Asterisk. (0.6)
|
||||||
\item (0.9) the semicolon is no longer required after a closing brace!
|
\item (0.9) the semicolon is no longer required after a closing brace!
|
||||||
(i.e. "];" ===> "\}". You can have them there if you like, but
|
(i.e. "];" ===$>$ "\}". You can have them there if you like, but
|
||||||
they are not necessary. Someday they may be rejected as a syntax
|
they are not necessary. Someday they may be rejected as a syntax
|
||||||
error, maybe.
|
error, maybe.
|
||||||
\item (0.9) the // comments are not recognized and removed in the
|
\item (0.9) the // comments are not recognized and removed in the
|
||||||
@@ -1208,11 +1206,11 @@ Differences with the original version of AEL
|
|||||||
arguments. You may have to move a comment if you get errors in
|
arguments. You may have to move a comment if you get errors in
|
||||||
existing files.
|
existing files.
|
||||||
\item (0.10) the random statement has been added. Syntax: random (
|
\item (0.10) the random statement has been added. Syntax: random (
|
||||||
<expr> ) <lucky-statement> [ else <unlucky-statement> ]. The
|
$<$expr$>$ ) $<$lucky-statement$>$ [ else $<$unlucky-statement$>$ ]. The
|
||||||
probability of the lucky-statement getting executed is <expr>,
|
probability of the lucky-statement getting executed is $<$expr$>$,
|
||||||
which should evaluate to an integer between 0 and 100. If the
|
which should evaluate to an integer between 0 and 100. If the
|
||||||
<lucky-statement> isn't so lucky this time around, then the
|
$<$lucky-statement$>$ isn't so lucky this time around, then the
|
||||||
<unlucky-statement> gets executed, if it is present.
|
$<$unlucky-statement$>$ gets executed, if it is present.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -61,10 +61,10 @@ reference purposes.
|
|||||||
\chapter{Channel Variables}
|
\chapter{Channel Variables}
|
||||||
\input{channelvariables.tex}
|
\input{channelvariables.tex}
|
||||||
|
|
||||||
\chapter{AEL, Asterisk Extension Language}
|
\chapter{AEL: Asterisk Extension Language}
|
||||||
\input{ael.tex}
|
\input{ael.tex}
|
||||||
|
|
||||||
\chapter{SLA (Shared Line Appearances)}
|
\chapter{SLA: Shared Line Appearances}
|
||||||
\input{sla.tex}
|
\input{sla.tex}
|
||||||
|
|
||||||
\chapter{Channel Drivers}
|
\chapter{Channel Drivers}
|
||||||
@@ -96,6 +96,7 @@ reference purposes.
|
|||||||
|
|
||||||
\chapter{Voicemail}
|
\chapter{Voicemail}
|
||||||
\section{ODBC Storage}
|
\section{ODBC Storage}
|
||||||
|
\label{odbcstorage}
|
||||||
\input{odbcstorage.tex}
|
\input{odbcstorage.tex}
|
||||||
\section{IMAP Storage}
|
\section{IMAP Storage}
|
||||||
\input{imapstorage.tex}
|
\input{imapstorage.tex}
|
||||||
@@ -120,10 +121,11 @@ reference purposes.
|
|||||||
%See http://www.asterisk.org/developers for more information
|
%See http://www.asterisk.org/developers for more information
|
||||||
%
|
%
|
||||||
%backtrace.txt How to produce a backtrace when Asterisk crashes
|
%backtrace.txt How to produce a backtrace when Asterisk crashes
|
||||||
|
%callfiles.txt Asterisk callfiles using instruction
|
||||||
%CODING-GUIDELINES Guidelines for developers
|
%CODING-GUIDELINES Guidelines for developers
|
||||||
%externalivr.txt Documentation of the protocol used in externalivr()
|
%externalivr.txt Documentation of the protocol used in externalivr()
|
||||||
%modules.txt How Asterisk modules work
|
%modules.txt How Asterisk modules work
|
||||||
%datastores.txt About channel data stores
|
%datastores.txt About channel data stores
|
||||||
%speechrec.txt The Generic Speech Recognition API
|
%speechrec.txt The Generic Speech Recognition API
|
||||||
|
|
||||||
\enddocument
|
\end{document}
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ For more information, use the "core show application <application>" command.
|
|||||||
You can set default account codes and AMA flags for devices in
|
You can set default account codes and AMA flags for devices in
|
||||||
channel configuration files, like sip.conf, iax.conf etc.
|
channel configuration files, like sip.conf, iax.conf etc.
|
||||||
|
|
||||||
|
|
||||||
\section{Fields of the CDR in Asterisk}
|
\section{Fields of the CDR in Asterisk}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ will be passed down to the Background command, in this example.
|
|||||||
|
|
||||||
Also, characters special to variable substitution, expression evaluation, etc
|
Also, characters special to variable substitution, expression evaluation, etc
|
||||||
(see below), can be quoted. For example, to literally use a \$ on the
|
(see below), can be quoted. For example, to literally use a \$ on the
|
||||||
string "\$1231", quote it with a preceding \\. Special characters that must
|
string "\$1231", quote it with a preceding \textbackslash. Special characters that must
|
||||||
be quoted to be used, are [ ] \$ " \\. (to write \\ itself, use \\).
|
be quoted to be used, are [ ] \$ " \textbackslash. (to write \textbackslash itself, use \textbackslash).
|
||||||
|
|
||||||
These Double quotes and escapes are evaluated at the level of the
|
These Double quotes and escapes are evaluated at the level of the
|
||||||
asterisk config file parser.
|
asterisk config file parser.
|
||||||
@@ -274,7 +274,7 @@ Parentheses are used for grouping in the usual manner.
|
|||||||
Operator precedence is applied as one would expect in any of the C
|
Operator precedence is applied as one would expect in any of the C
|
||||||
or C derived languages.
|
or C derived languages.
|
||||||
|
|
||||||
subsection{Floating Point Numbers}
|
\subsection{Floating Point Numbers}
|
||||||
|
|
||||||
In 1.6 and above, we shifted the \$\[...\] expressions to be calculated
|
In 1.6 and above, we shifted the \$\[...\] expressions to be calculated
|
||||||
via floating point numbers instead of integers. We use 'long double' numbers
|
via floating point numbers instead of integers. We use 'long double' numbers
|
||||||
@@ -290,13 +290,13 @@ on integer behavior. If you were counting on 1/4 evaluating to 0, you need to no
|
|||||||
TRUNC(1/4). For a list of all the truncation/rounding capabilities, see the next section.
|
TRUNC(1/4). For a list of all the truncation/rounding capabilities, see the next section.
|
||||||
|
|
||||||
|
|
||||||
subsection{Functions}
|
\subsection{Functions}
|
||||||
|
|
||||||
In 1.6 and above, we upgraded the $[] expressions to handle floating point numbers.
|
In 1.6 and above, we upgraded the \$[] expressions to handle floating point numbers.
|
||||||
Because of this, folks counting on integer behavior would be disrupted. To make
|
Because of this, folks counting on integer behavior would be disrupted. To make
|
||||||
the same results possible, some rounding and integer truncation functions have been
|
the same results possible, some rounding and integer truncation functions have been
|
||||||
added to the core of the Expr2 parser. Indeed, dialplan functions can be called from
|
added to the core of the Expr2 parser. Indeed, dialplan functions can be called from
|
||||||
$[..] expressions without the ${...} operators. The only trouble might be in the fact that
|
\$[..] expressions without the \$\{...\} operators. The only trouble might be in the fact that
|
||||||
the arguments to these functions must be specified with a comma. If you try to call
|
the arguments to these functions must be specified with a comma. If you try to call
|
||||||
the MATH function, for example, and try to say 3 + MATH(7*8), the expression parser will
|
the MATH function, for example, and try to say 3 + MATH(7*8), the expression parser will
|
||||||
evaluate 7*8 for you into 56, and the MATH function will most likely complain that its
|
evaluate 7*8 for you into 56, and the MATH function will most likely complain that its
|
||||||
@@ -312,7 +312,7 @@ are available by simply calling them (read-only). In other words, you don't need
|
|||||||
surround function calls in \$\[...\] expressions with \$\{...\}. Don't jump to conclusions,
|
surround function calls in \$\[...\] expressions with \$\{...\}. Don't jump to conclusions,
|
||||||
though! -- you still need to wrap variable names in curly braces!
|
though! -- you still need to wrap variable names in curly braces!
|
||||||
|
|
||||||
\begin{Enumerate}
|
\begin{enumerate}
|
||||||
\item COS(x) x is in radians. Results vary from -1 to 1.
|
\item COS(x) x is in radians. Results vary from -1 to 1.
|
||||||
\item SIN(x) x is in radians. Results vary from -1 to 1.
|
\item SIN(x) x is in radians. Results vary from -1 to 1.
|
||||||
\item TAN(x) x is in radians.
|
\item TAN(x) x is in radians.
|
||||||
@@ -334,9 +334,9 @@ If this quotient is 1/2, it is rounded to the nearest even number.
|
|||||||
\item LOG(x) returns the natural logarithm of x.
|
\item LOG(x) returns the natural logarithm of x.
|
||||||
\item LOG2(x) returns the base 2 log of x.
|
\item LOG2(x) returns the base 2 log of x.
|
||||||
\item LOG10(x) returns the base 10 log of x.
|
\item LOG10(x) returns the base 10 log of x.
|
||||||
\end{Enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
subsection{Examples}
|
\subsection{Examples}
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
"One Thousand Five Hundred" =~ "(T[^ ]+)"
|
"One Thousand Five Hundred" =~ "(T[^ ]+)"
|
||||||
@@ -421,7 +421,7 @@ TRUNC(3.5)
|
|||||||
TRUNC(-3.5)
|
TRUNC(-3.5)
|
||||||
returns -3.
|
returns -3.
|
||||||
|
|
||||||
\begin{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Of course, all of the above examples use constants, but would work the
|
Of course, all of the above examples use constants, but would work the
|
||||||
same if any of the numeric or string constants were replaced with a
|
same if any of the numeric or string constants were replaced with a
|
||||||
@@ -441,7 +441,7 @@ case.
|
|||||||
There is one conditional application - the conditional goto :
|
There is one conditional application - the conditional goto :
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
exten => 1,2,gotoif(condition?label1:label2)
|
exten => 1,2,GotoIf(condition?label1:label2)
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
If condition is true go to label1, else go to label2. Labels are interpreted
|
If condition is true go to label1, else go to label2. Labels are interpreted
|
||||||
@@ -453,7 +453,7 @@ This is designed to be used together with the expression syntax described
|
|||||||
above, eg :
|
above, eg :
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
exten => 1,2,gotoif($[${CALLERID} = 123456]?2|1:3|1)
|
exten => 1,2,GotoIf($[${CALLERID} = 123456]?2|1:3|1)
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Example of use :
|
Example of use :
|
||||||
@@ -574,7 +574,7 @@ of possible concern with "legacy" extension.conf files:
|
|||||||
quotes, it was no reason for concern. It is now!
|
quotes, it was no reason for concern. It is now!
|
||||||
|
|
||||||
\item LE, GE, NE operators removed. The code supported these operators,
|
\item LE, GE, NE operators removed. The code supported these operators,
|
||||||
but they were not documented. The symbolic operators, <=, >=, and !=
|
but they were not documented. The symbolic operators, $<$=, $>$=, and !=
|
||||||
should be used instead.
|
should be used instead.
|
||||||
|
|
||||||
\item Added the unary '-' operator. So you can 3+ -4 and get -1.
|
\item Added the unary '-' operator. So you can 3+ -4 and get -1.
|
||||||
@@ -670,22 +670,24 @@ only read in the dialplan. Writes to such variables are silently
|
|||||||
ignored.
|
ignored.
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
${ACCOUNTCODE} * Account code (if specified) (Deprecated; use ${CDR(accountcode)})
|
${CDR(accountcode)} * Account code (if specified)
|
||||||
${BLINDTRANSFER} The name of the channel on the other side of a blind transfer
|
${BLINDTRANSFER} The name of the channel on the other side of a blind transfer
|
||||||
${BRIDGEPEER} Bridged peer
|
${BRIDGEPEER} Bridged peer
|
||||||
${CALLERANI} * Caller ANI (PRI channels) (Deprecated; use ${CALLERID(ani)})
|
${CALLERID(ani)} * Caller ANI (PRI channels)
|
||||||
${CALLERID} * Caller ID (Deprecated; use ${CALLERID(all)})
|
${CALLERID(all)} * Caller ID
|
||||||
${CALLERIDNAME} * Caller ID Name only (Deprecated; use ${CALLERID(name)})
|
${CALLERID(dnid)} * Dialed Number Identifier
|
||||||
${CALLERIDNUM} * Caller ID Number only (Deprecated; use ${CALLERID(num)})
|
${CALLERID(name)} * Caller ID Name only
|
||||||
|
${CALLERID(num)} * Caller ID Number only
|
||||||
|
${CALLERID(rdnis)} * Redirected Dial Number ID Service
|
||||||
${CALLINGANI2} * Caller ANI2 (PRI channels)
|
${CALLINGANI2} * Caller ANI2 (PRI channels)
|
||||||
${CALLINGPRES} * Caller ID presentation for incoming calls (PRI channels)
|
${CALLINGPRES} * Caller ID presentation for incoming calls (PRI channels)
|
||||||
${CALLINGTNS} * Transit Network Selector (PRI channels)
|
${CALLINGTNS} * Transit Network Selector (PRI channels)
|
||||||
${CALLINGTON} * Caller Type of Number (PRI channels)
|
${CALLINGTON} * Caller Type of Number (PRI channels)
|
||||||
${CHANNEL} * Current channel name
|
${CHANNEL} * Current channel name
|
||||||
${CONTEXT} * Current context
|
${CONTEXT} * Current context
|
||||||
${DATETIME} * Current date time in the format: DDMMYYYY-HH:MM:SS (Deprecated; use ${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)})
|
${DATETIME} * Current date time in the format: DDMMYYYY-HH:MM:SS
|
||||||
|
(Deprecated; use ${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)})
|
||||||
${DB_RESULT} Result value of DB_EXISTS() dial plan function
|
${DB_RESULT} Result value of DB_EXISTS() dial plan function
|
||||||
${DNID} * Dialed Number Identifier (Deprecated; use ${CALLERID(dnid)})
|
|
||||||
${EPOCH} * Current unix style epoch
|
${EPOCH} * Current unix style epoch
|
||||||
${EXTEN} * Current extension
|
${EXTEN} * Current extension
|
||||||
${ENV(VAR)} Environmental variable VAR
|
${ENV(VAR)} Environmental variable VAR
|
||||||
@@ -701,8 +703,8 @@ ${LANGUAGE} * Current language (Deprecated; use ${LANGUAGE()})
|
|||||||
${LEN(VAR)} * String length of VAR (integer)
|
${LEN(VAR)} * String length of VAR (integer)
|
||||||
${PRIORITY} * Current priority in the dialplan
|
${PRIORITY} * Current priority in the dialplan
|
||||||
${PRIREDIRECTREASON} Reason for redirect on PRI, if a call was directed
|
${PRIREDIRECTREASON} Reason for redirect on PRI, if a call was directed
|
||||||
${RDNIS} * Redirected Dial Number ID Service (Deprecated; use ${CALLERID(rdnis)})
|
${TIMESTAMP} * Current date time in the format: YYYYMMDD-HHMMSS
|
||||||
${TIMESTAMP} * Current date time in the format: YYYYMMDD-HHMMSS (Deprecated; use ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
|
(Deprecated; use ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
|
||||||
${TRANSFER_CONTEXT} Context for transferred calls
|
${TRANSFER_CONTEXT} Context for transferred calls
|
||||||
${FORWARD_CONTEXT} Context for forwarded calls
|
${FORWARD_CONTEXT} Context for forwarded calls
|
||||||
${UNIQUEID} * Current call unique identifier
|
${UNIQUEID} * Current call unique identifier
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
\subsection{Introduction}
|
\subsection{Introduction}
|
||||||
|
|
||||||
A PBX is only really useful if you can get calls into it. Of course, you
|
A PBX is only really useful if you can get calls into it. Of course, you
|
||||||
can use Asterisk with VoIP calls (SIP, H.323, IAX), but you can also talk
|
can use Asterisk with VoIP calls (SIP, H.323, IAX, etc.), but you can also
|
||||||
to the real PSTN through various cards.
|
talk to the real PSTN through various cards.
|
||||||
|
|
||||||
Supported Hardware is divided into two general groups: Zaptel devices and
|
Supported Hardware is divided into two general groups: Zaptel devices and
|
||||||
non-zaptel devices. The Zaptel compatible hardware supports pseudo-TDM
|
non-zaptel devices. The Zaptel compatible hardware supports pseudo-TDM
|
||||||
@@ -31,7 +31,7 @@ compatible hardware may have different features.
|
|||||||
\item TE210P - The TE210P improves performance and scalability through bus mastering architecture. It supports E1, T1, and J1 environments and is selectable on a per-card or per-port basis.
|
\item TE210P - The TE210P improves performance and scalability through bus mastering architecture. It supports E1, T1, and J1 environments and is selectable on a per-card or per-port basis.
|
||||||
\item TE207P - The TE207P offers an on-board DSP-based echo cancellation module. It supports E1, T1, and J1 environments and is selectable on a per-card or per-port basis.
|
\item TE207P - The TE207P offers an on-board DSP-based echo cancellation module. It supports E1, T1, and J1 environments and is selectable on a per-card or per-port basis.
|
||||||
\item TE205P - The TE205P improves performance and scalability through bus mastering architecture. It supports both E1 and T1/J1 environments and is selectable on a per-card or per-port basis.
|
\item TE205P - The TE205P improves performance and scalability through bus mastering architecture. It supports both E1 and T1/J1 environments and is selectable on a per-card or per-port basis.
|
||||||
\item TE120P - The TE120P is a single span, selectable T1, E1, or J1 card and utilizes Digium's VoiceBus™ technology. It supports both voice and data modes.
|
\item TE120P - The TE120P is a single span, selectable T1, E1, or J1 card and utilizes Digium's VoiceBus\texttrademark technology. It supports both voice and data modes.
|
||||||
\item TE110P - The TE110P brings a high-performance, cost-effective, and flexible single span togglable T1, E1, J1 interface to the Digium line-up of telephony interface devices.
|
\item TE110P - The TE110P brings a high-performance, cost-effective, and flexible single span togglable T1, E1, J1 interface to the Digium line-up of telephony interface devices.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ backwards compatible architecture. Look in the source code for instructions.
|
|||||||
\subsubsection{Testing and monitoring}
|
\subsubsection{Testing and monitoring}
|
||||||
|
|
||||||
You can test the effectiveness of PLC and the new jitterbuffer's detection of loss by using
|
You can test the effectiveness of PLC and the new jitterbuffer's detection of loss by using
|
||||||
the new CLI command "iax2 test losspct <n>". This will simulate n percent packet loss
|
the new CLI command "iax2 test losspct $<$n$>$". This will simulate n percent packet loss
|
||||||
coming \_in\_ to chan\_iax2. You should find that with PLC and the new JB, 10 percent packet
|
coming \_in\_ to chan\_iax2. You should find that with PLC and the new JB, 10 percent packet
|
||||||
loss should lead to just a tiny amount of distortion, while without PLC, it would lead to
|
loss should lead to just a tiny amount of distortion, while without PLC, it would lead to
|
||||||
silent gaps in your audio.
|
silent gaps in your audio.
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ subscriptions and call limits)
|
|||||||
\section{Command Syntax}
|
\section{Command Syntax}
|
||||||
|
|
||||||
Management communication consists of tags of the form "header: value",
|
Management communication consists of tags of the form "header: value",
|
||||||
terminated with an empty newline (\\r\\n) in the style of SMTP, HTTP, and
|
terminated with an empty newline (\textbackslash r\textbackslash n) in the style of SMTP, HTTP, and
|
||||||
other headers.
|
other headers.
|
||||||
|
|
||||||
The first tag MUST be one of the following:
|
The first tag MUST be one of the following:
|
||||||
@@ -109,7 +109,7 @@ http://www.asterisk.org web site for more information.
|
|||||||
Account: -- Account Code (Status)
|
Account: -- Account Code (Status)
|
||||||
AccountCode: -- Account Code (cdr_manager)
|
AccountCode: -- Account Code (cdr_manager)
|
||||||
ACL: <Y | N> -- Does ACL exist for object ?
|
ACL: <Y | N> -- Does ACL exist for object ?
|
||||||
Action: <action> -- request or notification of a particular action
|
Action: <action> -- Request or notification of a particular action
|
||||||
Address-IP: -- IPaddress
|
Address-IP: -- IPaddress
|
||||||
Address-Port: -- IP port number
|
Address-Port: -- IP port number
|
||||||
Agent: <string> -- Agent name
|
Agent: <string> -- Agent name
|
||||||
|
|||||||
@@ -258,9 +258,7 @@ as Display Message to the Phone.
|
|||||||
|
|
||||||
\subsection{Known Problems}
|
\subsection{Known Problems}
|
||||||
|
|
||||||
\begin{verbatim}
|
Q: I cannot hear any tone after a successful CONNECT to the other end
|
||||||
* 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
|
A: You forgot to load mISDNdsp, which is now needed by chan\_misdn for switching
|
||||||
and dtmf tone detection
|
and dtmf tone detection
|
||||||
\end{verbatim}
|
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
|
||||||
|
|
||||||
ODBC Storage allows you to store voicemail messages within a database
|
ODBC Storage allows you to store voicemail messages within a database
|
||||||
instead of using a file. This is *not* a full realtime engine and
|
instead of using a file. This is *not* a full realtime engine and
|
||||||
*only* supports ODBC. The table description for the "voicemessages"
|
*only* supports ODBC. The table description for the "voicemessages"
|
||||||
|
|||||||
@@ -268,7 +268,8 @@ option):
|
|||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
[home-introduction]
|
[home-introduction]
|
||||||
exten => s,1,Background,intro-options ;; Script: To hear your Introduction, dial 1.
|
exten => s,1,Background,intro-options ;; Script:
|
||||||
|
;; To hear your Introduction, dial 1.
|
||||||
;; to record a new introduction, dial 2.
|
;; to record a new introduction, dial 2.
|
||||||
;; to return to the main menu, dial 3.
|
;; to return to the main menu, dial 3.
|
||||||
;; to hear what this is all about, dial 4.
|
;; to hear what this is all about, dial 4.
|
||||||
@@ -276,7 +277,8 @@ exten => 1,1,Playback,priv-callerintros/${CALLERIDNUM}
|
|||||||
exten => 1,2,Goto(s,1)
|
exten => 1,2,Goto(s,1)
|
||||||
exten => 2,1,Goto(home-introduction-record,s,1)
|
exten => 2,1,Goto(home-introduction-record,s,1)
|
||||||
exten => 3,1,Goto(homeline,s,7)
|
exten => 3,1,Goto(homeline,s,7)
|
||||||
exten => 4,1,Playback,intro-intro ;; Script:
|
exten => 4,1,Playback,intro-intro
|
||||||
|
;; Script:
|
||||||
;; This may seem a little strange, but it really is a neat
|
;; This may seem a little strange, but it really is a neat
|
||||||
;; thing, both for you and for us. I've taped a short introduction
|
;; thing, both for you and for us. I've taped a short introduction
|
||||||
;; for many of the folks who normally call us. Using the Caller ID
|
;; for many of the folks who normally call us. Using the Caller ID
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ congested with other traffic.
|
|||||||
|
|
||||||
Also asterisk running on Linux can set 802.1p CoS marks in VLAN packets
|
Also asterisk running on Linux can set 802.1p CoS marks in VLAN packets
|
||||||
for all used VoIP protocols. It is useful when you are working in switched
|
for all used VoIP protocols. It is useful when you are working in switched
|
||||||
enviropment. For maping skb->priority and VLAN CoS mark you need to use
|
enviropment. For maping skb-$>$priority and VLAN CoS mark you need to use
|
||||||
command "vconfig set\_egress\_map [vlan-device] [skb-priority] [vlan-qos]".
|
command "vconfig set\_egress\_map [vlan-device] [skb-priority] [vlan-qos]".
|
||||||
|
|
||||||
\subsubsection{SIP}
|
\subsubsection{SIP}
|
||||||
@@ -64,30 +64,30 @@ integer values from 0 to 7.
|
|||||||
|
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
===========================================
|
+==============+============+==============+
|
||||||
Configuration Parameter Recommended
|
|Configuration | Parameter | Recommended |
|
||||||
File Setting
|
|File | Setting | |
|
||||||
-------------------------------------------
|
+--------------+------------+--------------+
|
||||||
sip.conf tos\_sip cs3
|
| | tos_sip | cs3 |
|
||||||
sip.conf tos\_audio ef
|
| | tos_audio | ef |
|
||||||
sip.conf tos\_video af41
|
| | tos_video | af41 |
|
||||||
sip.conf tos\_text af41
|
| sip.conf | tos_text | af41 |
|
||||||
sip.conf cos\_sip 4
|
| | cos_sip | 4 |
|
||||||
sip.conf cos\_audio 6
|
| | cos_audio | 6 |
|
||||||
sip.conf cos\_video 5
|
| | cos_video | 5 |
|
||||||
sip.conf cos\_text 0
|
| | cos_text | 0 |
|
||||||
-------------------------------------------
|
+--------------+------------+--------------+
|
||||||
iax.conf tos ef
|
| iax.conf | tos | ef |
|
||||||
iax.conf cos 6
|
| | cos | 6 |
|
||||||
-------------------------------------------
|
+--------------+------------+--------------+
|
||||||
iaxprov.conf tos ef
|
| iaxprov.conf | tos | ef |
|
||||||
-------------------------------------------
|
+--------------+------------+--------------+
|
||||||
mgcp.conf tos ef
|
| mgcp.conf | tos | ef |
|
||||||
mgcp.conf cos 6
|
| | cos | 6 |
|
||||||
-------------------------------------------
|
+--------------+------------+--------------+
|
||||||
h323.conf tos ef
|
| h323.conf | tos | ef |
|
||||||
h323.conf cos 6
|
| | cos | 6 |
|
||||||
===========================================
|
+==============+============+==============+
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
\subsubsection{Reference}
|
\subsubsection{Reference}
|
||||||
@@ -109,11 +109,10 @@ Asterisk, you will need to ensure that your network handles packets
|
|||||||
with a TOS properly. For Cisco devices, see the previously mentioned
|
with a TOS properly. For Cisco devices, see the previously mentioned
|
||||||
"Enterprise QoS Solution Reference Network Design Guide". For Linux
|
"Enterprise QoS Solution Reference Network Design Guide". For Linux
|
||||||
systems see the "Linux Advanced Routing \& Traffic Control HOWTO" at
|
systems see the "Linux Advanced Routing \& Traffic Control HOWTO" at
|
||||||
<http://www.lartc.org/>.
|
http://www.lartc.org/.
|
||||||
|
|
||||||
For more information on Quality of
|
For more information on Quality of
|
||||||
Service for VoIP networks see the "Enterprise QoS Solution Reference
|
Service for VoIP networks see the "Enterprise QoS Solution Reference
|
||||||
Network Design Guide" version 3.3 from Cisco at:
|
Network Design Guide" version 3.3 from Cisco at:
|
||||||
|
http://www.cisco.com/application/pdf/en/us/guest/netsol/ns432/c649/ccmigration\_09186a008049b062.pdf
|
||||||
<http://www.cisco.com/application/pdf/en/us/guest/netsol/ns432/c649/ccmigration\_09186a008049b062.pdf>
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,59 +6,71 @@ queue log, located (by default) in /var/log/asterisk/queue\_log.
|
|||||||
|
|
||||||
These are the events (and associated information) in the queue log:
|
These are the events (and associated information) in the queue log:
|
||||||
|
|
||||||
ABANDON(position|origposition|waittime)
|
\textbf{ABANDON(position|origposition|waittime)}
|
||||||
|
|
||||||
The caller abandoned their position in the queue. The position is the
|
The caller abandoned their position in the queue. The position is the
|
||||||
caller's position in the queue when they hungup, the origposition is
|
caller's position in the queue when they hungup, the origposition is
|
||||||
the original position the caller was when they first entered the
|
the original position the caller was when they first entered the
|
||||||
queue, and the waittime is how long the call had been waiting in the
|
queue, and the waittime is how long the call had been waiting in the
|
||||||
queue at the time of disconnect.
|
queue at the time of disconnect.
|
||||||
|
|
||||||
AGENTDUMP
|
\textbf{AGENTDUMP}
|
||||||
|
|
||||||
The agent dumped the caller while listening to the queue announcement.
|
The agent dumped the caller while listening to the queue announcement.
|
||||||
|
|
||||||
AGENTLOGIN(channel)
|
\textbf{AGENTLOGIN(channel)}
|
||||||
|
|
||||||
The agent logged in. The channel is recorded.
|
The agent logged in. The channel is recorded.
|
||||||
|
|
||||||
AGENTCALLBACKLOGIN(exten@context)
|
\textbf{AGENTCALLBACKLOGIN(exten@context)}
|
||||||
|
|
||||||
The callback agent logged in. The login extension and context is recorded.
|
The callback agent logged in. The login extension and context is recorded.
|
||||||
|
|
||||||
AGENTLOGOFF(channel|logintime)
|
\textbf{AGENTLOGOFF(channel|logintime)}
|
||||||
|
|
||||||
The agent logged off. The channel is recorded, along with the total time
|
The agent logged off. The channel is recorded, along with the total time
|
||||||
the agent was logged in.
|
the agent was logged in.
|
||||||
|
|
||||||
AGENTCALLBACKLOGOFF(exten@context|logintime|reason)
|
\textbf{AGENTCALLBACKLOGOFF(exten@context|logintime|reason)}
|
||||||
|
|
||||||
The callback agent logged off. The last login extension and context is
|
The callback agent logged off. The last login extension and context is
|
||||||
recorded, along with the total time the agent was logged in, and the
|
recorded, along with the total time the agent was logged in, and the
|
||||||
reason for the logoff if it was not a normal logoff
|
reason for the logoff if it was not a normal logoff
|
||||||
(e.g., Autologoff, Chanunavail)
|
(e.g., Autologoff, Chanunavail)
|
||||||
|
|
||||||
COMPLETEAGENT(holdtime|calltime|origposition)
|
\textbf{COMPLETEAGENT(holdtime|calltime|origposition)}
|
||||||
|
|
||||||
The caller was connected to an agent, and the call was terminated normally
|
The caller was connected to an agent, and the call was terminated normally
|
||||||
by the *agent*. The caller's hold time and the length of the call are both
|
by the *agent*. The caller's hold time and the length of the call are both
|
||||||
recorded. The caller's original position in the queue is recorded in
|
recorded. The caller's original position in the queue is recorded in
|
||||||
origposition.
|
origposition.
|
||||||
|
|
||||||
COMPLETECALLER(holdtime|calltime|origposition)
|
\textbf{COMPLETECALLER(holdtime|calltime|origposition)}
|
||||||
|
|
||||||
The caller was connected to an agent, and the call was terminated normally
|
The caller was connected to an agent, and the call was terminated normally
|
||||||
by the *caller*. The caller's hold time and the length of the call are both
|
by the *caller*. The caller's hold time and the length of the call are both
|
||||||
recorded. The caller's original position in the queue is recorded in
|
recorded. The caller's original position in the queue is recorded in
|
||||||
origposition.
|
origposition.
|
||||||
|
|
||||||
CONFIGRELOAD
|
\textbf{CONFIGRELOAD}
|
||||||
|
|
||||||
The configuration has been reloaded (e.g. with asterisk -rx reload)
|
The configuration has been reloaded (e.g. with asterisk -rx reload)
|
||||||
|
|
||||||
CONNECT(holdtime|bridgedchanneluniqueid)
|
\textbf{CONNECT(holdtime|bridgedchanneluniqueid)}
|
||||||
|
|
||||||
The caller was connected to an agent. Hold time represents the amount
|
The caller was connected to an agent. Hold time represents the amount
|
||||||
of time the caller was on hold. The bridged channel unique ID contains
|
of time the caller was on hold. The bridged channel unique ID contains
|
||||||
the unique ID of the queue member channel that is taking the call. This
|
the unique ID of the queue member channel that is taking the call. This
|
||||||
is useful when trying to link recording filenames to a particular
|
is useful when trying to link recording filenames to a particular
|
||||||
call in the queue.
|
call in the queue.
|
||||||
|
|
||||||
ENTERQUEUE(url|callerid)
|
\textbf{ENTERQUEUE(url|callerid)}
|
||||||
|
|
||||||
A call has entered the queue. URL (if specified) and Caller*ID are placed
|
A call has entered the queue. URL (if specified) and Caller*ID are placed
|
||||||
in the log.
|
in the log.
|
||||||
|
|
||||||
EXITEMPTY(position|origposition|waittime)
|
\textbf{EXITEMPTY(position|origposition|waittime)}
|
||||||
|
|
||||||
The caller was exited from the queue forcefully because the queue had no
|
The caller was exited from the queue forcefully because the queue had no
|
||||||
reachable members and it's configured to do that to callers when there
|
reachable members and it's configured to do that to callers when there
|
||||||
are no reachable members. The position is the caller's position in the
|
are no reachable members. The position is the caller's position in the
|
||||||
@@ -66,29 +78,35 @@ queue when they hungup, the origposition is the original position the
|
|||||||
caller was when they first entered the queue, and the waittime is how
|
caller was when they first entered the queue, and the waittime is how
|
||||||
long the call had been waiting in the queue at the time of disconnect.
|
long the call had been waiting in the queue at the time of disconnect.
|
||||||
|
|
||||||
EXITWITHKEY(key|position|origposition|waittime)
|
\textbf{EXITWITHKEY(key|position|origposition|waittime)}
|
||||||
|
|
||||||
The caller elected to use a menu key to exit the queue. The key and
|
The caller elected to use a menu key to exit the queue. The key and
|
||||||
the caller's position in the queue are recorded. The caller's entry
|
the caller's position in the queue are recorded. The caller's entry
|
||||||
position and amoutn of time waited is also recorded.
|
position and amoutn of time waited is also recorded.
|
||||||
|
|
||||||
EXITWITHTIMEOUT(position|origposition|waittime)
|
\textbf{EXITWITHTIMEOUT(position|origposition|waittime)}
|
||||||
|
|
||||||
The caller was on hold too long and the timeout expired. The position in the
|
The caller was on hold too long and the timeout expired. The position in the
|
||||||
queue when the timeout occurred, the entry position, and the amount of time
|
queue when the timeout occurred, the entry position, and the amount of time
|
||||||
waited are logged.
|
waited are logged.
|
||||||
|
|
||||||
QUEUESTART
|
\textbf{QUEUESTART}
|
||||||
|
|
||||||
The queueing system has been started for the first time this session.
|
The queueing system has been started for the first time this session.
|
||||||
|
|
||||||
RINGNOANSWER(ringtime)
|
\textbf{RINGNOANSWER(ringtime)}
|
||||||
|
|
||||||
After trying for ringtime ms to connect to the available queue member,
|
After trying for ringtime ms to connect to the available queue member,
|
||||||
the attempt ended without the member picking up the call. Bad queue
|
the attempt ended without the member picking up the call. Bad queue
|
||||||
member!
|
member!
|
||||||
|
|
||||||
SYSCOMPAT
|
\textbf{SYSCOMPAT}
|
||||||
|
|
||||||
A call was answered by an agent, but the call was dropped because the
|
A call was answered by an agent, but the call was dropped because the
|
||||||
channels were not compatible.
|
channels were not compatible.
|
||||||
|
|
||||||
TRANSFER(extension|context|holdtime|calltime)
|
\textbf{TRANSFER(extension|context|holdtime|calltime)}
|
||||||
|
|
||||||
Caller was transferred to a different extension. Context and extension
|
Caller was transferred to a different extension. Context and extension
|
||||||
are recorded. The caller's hold time and the length of the call are both
|
are recorded. The caller's hold time and the length of the call are both
|
||||||
recorded. PLEASE remember that transfers performed by SIP UA's by way
|
recorded. PLEASE remember that transfers performed by SIP UA's by way
|
||||||
|
|||||||
@@ -6,9 +6,6 @@ functions implemented in Asterisk.
|
|||||||
The benefits of this architecture are many, both from a code management
|
The benefits of this architecture are many, both from a code management
|
||||||
standpoint and from an installation perspective.
|
standpoint and from an installation perspective.
|
||||||
|
|
||||||
Additional information on the configuration of Realtime with Asterisk
|
|
||||||
can be found in doc/extconfig.txt
|
|
||||||
|
|
||||||
The ARA is designed to be independent of storage. Currently, most
|
The ARA is designed to be independent of storage. Currently, most
|
||||||
drivers are based on SQL, but the architecture should be able to handle
|
drivers are based on SQL, but the architecture should be able to handle
|
||||||
other storage methods in the future, like LDAP.
|
other storage methods in the future, like LDAP.
|
||||||
@@ -87,7 +84,7 @@ objects and the realtime switch.
|
|||||||
|
|
||||||
You configure the ARA in extconfig.conf (yes, it's a strange name, but
|
You configure the ARA in extconfig.conf (yes, it's a strange name, but
|
||||||
is was defined in the early days of the realtime architecture and kind
|
is was defined in the early days of the realtime architecture and kind
|
||||||
of stuck). Please see doc/extconfig.txt for database schemas.
|
of stuck).
|
||||||
|
|
||||||
The part of Asterisk that connects to the ARA use a well defined family
|
The part of Asterisk that connects to the ARA use a well defined family
|
||||||
name to find the proper database driver. The syntax is easy:
|
name to find the proper database driver. The syntax is easy:
|
||||||
@@ -110,11 +107,8 @@ Defined well-known family names are:
|
|||||||
\item extensions - Realtime extensions (switch)
|
\item extensions - Realtime extensions (switch)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
There is documentation of the SQL database in the file
|
Voicemail storage with the support of ODBC described in file
|
||||||
doc/extconfig.txt in your Asterisk source code tree.
|
docs/odbcstorage.tex (\ref{odbcstorage}).
|
||||||
|
|
||||||
For voicemail storage with the support of ODBC, there is a
|
|
||||||
doc/odbcstorage.txt documentation file.
|
|
||||||
|
|
||||||
\subsubsection{Limitations}
|
\subsubsection{Limitations}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user