More spelling fixes (issue 7930)
[asterisk/asterisk.git] / doc / ael.txt
index 54d68c6..f72f280 100644 (file)
@@ -7,16 +7,13 @@ describing Asterisk dial plans.
 The current version was written by Steve Murphy, and is a rewrite of 
 the original version.
 
-AEL is considered an EXPERIMENTAL Version. (yet is being
-used in the field with success)
-
 This new version further extends AEL, and
 provides more flexible syntax, better error messages, and some missing
 functionality.
 
 AEL is really the merger of 4 different 'languages', or syntaxes:
 
-    * The first and most obvious is the AEL syntax itselft. A BNF is
+    * The first and most obvious is the AEL syntax itself. A BNF is
       provided near the end of this document.
 
     * The second syntax is the Expression Syntax, which is normally
@@ -38,7 +35,7 @@ AEL is really the merger of 4 different 'languages', or syntaxes:
       Asterisk. Embedded in this language is the Application/AGI
       commands, of which one application call per step, or priority
       can be made. You can think of this as a "macro assembler"
-      language, that AEL2 will compile into.
+      language, that AEL will compile into.
 
 
 Any programmer of AEL should be familiar with it's syntax, of course,
@@ -95,7 +92,7 @@ lines together.
 
 The extensions can also contain "goto" or "jump" commands to skip to
 extensions in other contexts. Conditionals provide the ability to
-react to different stimiuli, and there you have it.
+react to different stimuli, and there you have it.
 
 Macros
 ------
@@ -181,7 +178,7 @@ facilities to debug your file:
 * About "aelparse"          *
 *****************************
 
-You can also use the "aelparse" program to check your extensions.ael
+You can use the "aelparse" program to check your extensions.ael
 file before feeding it to asterisk. Wouldn't it be nice to eliminate
 most errors before giving the file to asterisk?
 
@@ -273,7 +270,7 @@ do not wish to do so, you can still use the application, by using a
 capitalized letter somewhere in its name. In the Asterisk extension
 language, application names are NOT case-sensitive.
 
-The following are keywords in the AEL2 language:
+The following are keywords in the AEL language:
 
     * abstract
     * context
@@ -584,6 +581,9 @@ Two optional items have been added to the AEL syntax, that allow the
 specification of hints, and a keyword, regexten, that will force the
 numbering of priorities to start at 2.
 
+The ability to make extensions match by CID is preserved in
+AEL; just use '/' and the CID number in the specification. See below.
+
 
 context default {
 
@@ -607,6 +607,18 @@ context default {
 
 The regexten must come before the hint if they are both present.
 
+CID matching is done as with the extensions.conf file. Follow the extension
+name/number with a slash (/) and the number to match against the Caller ID:
+
+context zoombo 
+{
+       819/7079953345 => { NoOp(hello, 3345); }
+}
+
+In the above,  the 819/7079953345 extension will only be matched if the
+CallerID is 7079953345, and the dialed number is 819. Hopefully you have
+another 819 extension defined for all those who wish 819, that are not so lucky
+as to have 7079953345 as their CallerID!
 
 
 Includes
@@ -919,7 +931,7 @@ statements. It means the "first" statement in the extension. I would
 not advise trying to use numeric labels other than "1" in goto's or
 jumps, nor would I advise declaring a "1" label anywhere! As a matter
 of fact, it would be bad form to declare a numeric label, and it might
-confllict with the priority numbers used internally by asterisk.
+conflict with the priority numbers used internally by asterisk.
 
 The syntax of the jump statement is: jump
 extension[,priority][@context] If priority is absent, it defaults to
@@ -994,7 +1006,7 @@ macro std-exten( ext , dev ) {
 }
 
 
-A macro is then called by preceeding the macro name with an
+A macro is then called by preceding the macro name with an
 ampersand. Empty arguments can be passed simply with nothing between
 comments(0.11).
 
@@ -1118,7 +1130,7 @@ These checks will be:
 Differences with the original version of AEL
 ============================================
 
-   1. The $[...] expressions have been enhanced to inlcude the ==, ||,
+   1. The $[...] expressions have been enhanced to include the ==, ||,
       and && operators. These operators are exactly equivalent to the
       =, |, and & operators, respectively. Why? So the C, Java, C++
       hackers feel at home here.
@@ -1162,10 +1174,10 @@ Differences with the original version of AEL
   13. Added the optional time spec to the contexts in the includes
       construct. See examples above.
   14. You don't have to wrap a single "true" statement in curly
-      braces, as in the orignal AEL. An "else" is attached to the
+      braces, as in the original AEL. An "else" is attached to the
       closest if. As usual, be careful about nested if statements!
       When in doubt, use curlies!
-  15. Added the syntax [regexten] [hint(channel)] to preceed an
+  15. Added the syntax [regexten] [hint(channel)] to precede an
       extension declaration. See examples above, under
       "Extension". The regexten keyword will cause the priorities in
       the extension to begin with 2 instead of 1. The hint keyword
@@ -1204,7 +1216,7 @@ Hints and Bugs
      trouble with the old way, is that, if x contains any spaces, then
      problems occur, usually syntax errors. It is better practice and
      safer wrap all such tests with double quotes! Also, there are now
-     some functions that can be used in a variable referenece,
+     some functions that can be used in a variable reference,
      ISNULL(), and LEN(), that can be used to test for an empty string:
      ${ISNULL(${x})} or $[ ${LEN(${x}) = 0 ].