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
1.6.0
Tilghman Lesher 18 years ago
parent cf551decc5
commit 95bee48cde

@ -787,9 +787,9 @@ context loops {
}
\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
(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.
\end{itemize}
Differences with the original version of AEL
============================================
\section{Differences with the original version of AEL}
\begin{enumerate}
\item The \$[...] expressions have been enhanced to include the ==, ||,
@ -1174,8 +1172,8 @@ Differences with the original version of AEL
AEL README.
\item Added the "return" keyword, which will jump to the end of an
extension/Macro.
\item Added the ifTime (<time range>|<days of week>|<days of
month>|<months> ) {} [else {}] construct, which executes much
\item Added the ifTime ($<$time range$>$|$<$days of week$>$|$<$days of
month$>$|$<$months$>$ ) {} [else {}] construct, which executes much
like an if () statement, but the decision is based on the
current time, and the time spec provided in the ifTime. See the
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
Asterisk. (0.6)
\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
error, maybe.
\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
existing files.
\item (0.10) the random statement has been added. Syntax: random (
<expr> ) <lucky-statement> [ else <unlucky-statement> ]. The
probability of the lucky-statement getting executed is <expr>,
$<$expr$>$ ) $<$lucky-statement$>$ [ else $<$unlucky-statement$>$ ]. The
probability of the lucky-statement getting executed is $<$expr$>$,
which should evaluate to an integer between 0 and 100. If the
<lucky-statement> isn't so lucky this time around, then the
<unlucky-statement> gets executed, if it is present.
$<$lucky-statement$>$ isn't so lucky this time around, then the
$<$unlucky-statement$>$ gets executed, if it is present.
\end{enumerate}

@ -61,10 +61,10 @@ reference purposes.
\chapter{Channel Variables}
\input{channelvariables.tex}
\chapter{AEL, Asterisk Extension Language}
\chapter{AEL: Asterisk Extension Language}
\input{ael.tex}
\chapter{SLA (Shared Line Appearances)}
\chapter{SLA: Shared Line Appearances}
\input{sla.tex}
\chapter{Channel Drivers}
@ -96,6 +96,7 @@ reference purposes.
\chapter{Voicemail}
\section{ODBC Storage}
\label{odbcstorage}
\input{odbcstorage.tex}
\section{IMAP Storage}
\input{imapstorage.tex}
@ -120,10 +121,11 @@ reference purposes.
%See http://www.asterisk.org/developers for more information
%
%backtrace.txt How to produce a backtrace when Asterisk crashes
%callfiles.txt Asterisk callfiles using instruction
%CODING-GUIDELINES Guidelines for developers
%externalivr.txt Documentation of the protocol used in externalivr()
%modules.txt How Asterisk modules work
%datastores.txt About channel data stores
%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
channel configuration files, like sip.conf, iax.conf etc.
\section{Fields of the CDR in Asterisk}
\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
(see below), can be quoted. For example, to literally use a \$ on the
string "\$1231", quote it with a preceding \\. Special characters that must
be quoted to be used, are [ ] \$ " \\. (to write \\ itself, use \\).
string "\$1231", quote it with a preceding \textbackslash. Special characters that must
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
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
or C derived languages.
subsection{Floating Point Numbers}
\subsection{Floating Point Numbers}
In 1.6 and above, we shifted the \$\[...\] expressions to be calculated
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.
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
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
$[..] 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 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
@ -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,
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 SIN(x) x is in radians. Results vary from -1 to 1.
\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 LOG2(x) returns the base 2 log of x.
\item LOG10(x) returns the base 10 log of x.
\end{Enumerate}
\end{enumerate}
subsection{Examples}
\subsection{Examples}
\begin{verbatim}
"One Thousand Five Hundred" =~ "(T[^ ]+)"
@ -421,7 +421,7 @@ TRUNC(3.5)
TRUNC(-3.5)
returns -3.
\begin{verbatim}
\end{verbatim}
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
@ -441,7 +441,7 @@ case.
There is one conditional application - the conditional goto :
\begin{verbatim}
exten => 1,2,gotoif(condition?label1:label2)
exten => 1,2,GotoIf(condition?label1:label2)
\end{verbatim}
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 :
\begin{verbatim}
exten => 1,2,gotoif($[${CALLERID} = 123456]?2|1:3|1)
exten => 1,2,GotoIf($[${CALLERID} = 123456]?2|1:3|1)
\end{verbatim}
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!
\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.
\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.
\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
${BRIDGEPEER} Bridged peer
${CALLERANI} * Caller ANI (PRI channels) (Deprecated; use ${CALLERID(ani)})
${CALLERID} * Caller ID (Deprecated; use ${CALLERID(all)})
${CALLERIDNAME} * Caller ID Name only (Deprecated; use ${CALLERID(name)})
${CALLERIDNUM} * Caller ID Number only (Deprecated; use ${CALLERID(num)})
${CALLERID(ani)} * Caller ANI (PRI channels)
${CALLERID(all)} * Caller ID
${CALLERID(dnid)} * Dialed Number Identifier
${CALLERID(name)} * Caller ID Name only
${CALLERID(num)} * Caller ID Number only
${CALLERID(rdnis)} * Redirected Dial Number ID Service
${CALLINGANI2} * Caller ANI2 (PRI channels)
${CALLINGPRES} * Caller ID presentation for incoming calls (PRI channels)
${CALLINGTNS} * Transit Network Selector (PRI channels)
${CALLINGTON} * Caller Type of Number (PRI channels)
${CHANNEL} * Current channel name
${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
${DNID} * Dialed Number Identifier (Deprecated; use ${CALLERID(dnid)})
${EPOCH} * Current unix style epoch
${EXTEN} * Current extension
${ENV(VAR)} Environmental variable VAR
@ -701,8 +703,8 @@ ${LANGUAGE} * Current language (Deprecated; use ${LANGUAGE()})
${LEN(VAR)} * String length of VAR (integer)
${PRIORITY} * Current priority in the dialplan
${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 (Deprecated; use ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
${TIMESTAMP} * Current date time in the format: YYYYMMDD-HHMMSS
(Deprecated; use ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
${TRANSFER_CONTEXT} Context for transferred calls
${FORWARD_CONTEXT} Context for forwarded calls
${UNIQUEID} * Current call unique identifier

@ -1,8 +1,8 @@
\subsection{Introduction}
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
to the real PSTN through various cards.
can use Asterisk with VoIP calls (SIP, H.323, IAX, etc.), but you can also
talk to the real PSTN through various cards.
Supported Hardware is divided into two general groups: Zaptel devices and
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 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 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.
\end{itemize}
\end{itemize}

@ -43,7 +43,7 @@ backwards compatible architecture. Look in the source code for instructions.
\subsubsection{Testing and monitoring}
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
loss should lead to just a tiny amount of distortion, while without PLC, it would lead to
silent gaps in your audio.

@ -41,7 +41,7 @@ subscriptions and call limits)
\section{Command Syntax}
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.
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)
AccountCode: -- Account Code (cdr_manager)
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-Port: -- IP port number
Agent: <string> -- Agent name

@ -258,9 +258,7 @@ as Display Message to the Phone.
\subsection{Known Problems}
\begin{verbatim}
* I cannot hear any tone after a successful CONNECT to the other end
Q: 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
\end{verbatim}

@ -1,3 +1,5 @@
ODBC Storage allows you to store voicemail messages within a database
instead of using a file. This is *not* a full realtime engine and
*only* supports ODBC. The table description for the "voicemessages"

@ -268,7 +268,8 @@ option):
\begin{verbatim}
[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 return to the main menu, dial 3.
;; 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 => 2,1,Goto(home-introduction-record,s,1)
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
;; 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

@ -7,7 +7,7 @@ congested with other traffic.
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
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]".
\subsubsection{SIP}
@ -64,30 +64,30 @@ integer values from 0 to 7.
\begin{verbatim}
===========================================
Configuration Parameter Recommended
File Setting
-------------------------------------------
sip.conf tos\_sip cs3
sip.conf tos\_audio ef
sip.conf tos\_video af41
sip.conf tos\_text af41
sip.conf cos\_sip 4
sip.conf cos\_audio 6
sip.conf cos\_video 5
sip.conf cos\_text 0
-------------------------------------------
iax.conf tos ef
iax.conf cos 6
-------------------------------------------
iaxprov.conf tos ef
-------------------------------------------
mgcp.conf tos ef
mgcp.conf cos 6
-------------------------------------------
h323.conf tos ef
h323.conf cos 6
===========================================
+==============+============+==============+
|Configuration | Parameter | Recommended |
|File | Setting | |
+--------------+------------+--------------+
| | tos_sip | cs3 |
| | tos_audio | ef |
| | tos_video | af41 |
| sip.conf | tos_text | af41 |
| | cos_sip | 4 |
| | cos_audio | 6 |
| | cos_video | 5 |
| | cos_text | 0 |
+--------------+------------+--------------+
| iax.conf | tos | ef |
| | cos | 6 |
+--------------+------------+--------------+
| iaxprov.conf | tos | ef |
+--------------+------------+--------------+
| mgcp.conf | tos | ef |
| | cos | 6 |
+--------------+------------+--------------+
| h323.conf | tos | ef |
| | cos | 6 |
+==============+============+==============+
\end{verbatim}
\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
"Enterprise QoS Solution Reference Network Design Guide". For Linux
systems see the "Linux Advanced Routing \& Traffic Control HOWTO" at
<http://www.lartc.org/>.
http://www.lartc.org/.
For more information on Quality of
Service for VoIP networks see the "Enterprise QoS Solution Reference
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:
ABANDON(position|origposition|waittime)
\textbf{ABANDON(position|origposition|waittime)}
The caller abandoned their position in the queue. The position is the
caller's position in the queue when they hungup, the origposition is
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 at the time of disconnect.
AGENTDUMP
\textbf{AGENTDUMP}
The agent dumped the caller while listening to the queue announcement.
AGENTLOGIN(channel)
\textbf{AGENTLOGIN(channel)}
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.
AGENTLOGOFF(channel|logintime)
\textbf{AGENTLOGOFF(channel|logintime)}
The agent logged off. The channel is recorded, along with the total time
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
recorded, along with the total time the agent was logged in, and the
reason for the logoff if it was not a normal logoff
(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
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
origposition.
COMPLETECALLER(holdtime|calltime|origposition)
\textbf{COMPLETECALLER(holdtime|calltime|origposition)}
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
recorded. The caller's original position in the queue is recorded in
origposition.
CONFIGRELOAD
\textbf{CONFIGRELOAD}
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
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
is useful when trying to link recording filenames to a particular
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
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
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
@ -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
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's position in the queue are recorded. The caller's entry
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
queue when the timeout occurred, the entry position, and the amount of time
waited are logged.
QUEUESTART
\textbf{QUEUESTART}
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,
the attempt ended without the member picking up the call. Bad queue
member!
SYSCOMPAT
\textbf{SYSCOMPAT}
A call was answered by an agent, but the call was dropped because the
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
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

@ -6,9 +6,6 @@ functions implemented in Asterisk.
The benefits of this architecture are many, both from a code management
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
drivers are based on SQL, but the architecture should be able to handle
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
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
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)
\end{itemize}
There is documentation of the SQL database in the file
doc/extconfig.txt in your Asterisk source code tree.
For voicemail storage with the support of ODBC, there is a
doc/odbcstorage.txt documentation file.
Voicemail storage with the support of ODBC described in file
docs/odbcstorage.tex (\ref{odbcstorage}).
\subsubsection{Limitations}

Loading…
Cancel
Save