Update the DUNDi section of the documentation with example usage of DUNDIQUERY
authorRussell Bryant <russell@russellbryant.com>
Sat, 28 Apr 2007 19:53:12 +0000 (19:53 +0000)
committerRussell Bryant <russell@russellbryant.com>
Sat, 28 Apr 2007 19:53:12 +0000 (19:53 +0000)
and DUNDIRESULT.  Also, update the automatically generated application docs.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@62268 65c4cc65-6c06-0410-ace0-fbb531ad65f3

doc/ast_appdocs.tex
doc/dundi.tex

index ee26926..bf01af4 100644 (file)
@@ -34,23 +34,6 @@ script. If nothing is specified, the default script (asterisk.adsi) is used.
 \end{verbatim}
 
 
-\section{AgentCallbackLogin}
-\subsection{Synopsis}
-\begin{verbatim}
-Call agent callback login
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-  AgentCallbackLogin([AgentNo][|[options][|[exten]@context]]):
-Asks the agent to login to the system with callback.
-The agent's callback extension is called (optionally with the specified
-context).
-The option string may contain zero or more of the following characters:
-      's' -- silent login - do not announce the login ok segment agent logged in/off
-
-\end{verbatim}
-
-
 \section{AgentLogin}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -206,29 +189,6 @@ the dialplan after answering the call.
 \end{verbatim}
 
 
-\section{AppendCDRUserField}
-\subsection{Synopsis}
-\begin{verbatim}
-Append to the CDR user field
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-[Synopsis]
-AppendCDRUserField(value)
-
-[Description]
-AppendCDRUserField(value): Append value to the CDR user field
-       The Call Data Record (CDR) user field is an extra field you
-       can use for data not stored anywhere else in the record.
-       CDR records can be used for billing or storing other arbitrary data
-       (I.E. telephone survey responses)
-       Also see SetCDRUserField().
-
-This application is deprecated in favor of Set(CDR(userfield)=...)
-
-\end{verbatim}
-
-
 \section{Authenticate}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -285,6 +245,9 @@ terminated.
     n - Don't answer the channel before playing the files.
     m - Only break if a digit hit matches a one digit
           extension in the destination context.
+This application sets the following channel variable upon completion:
+ BACKGROUNDSTATUS    The status of the background attempt as a text string, one of
+               SUCCESS | FAILED
 
 \end{verbatim}
 
@@ -309,6 +272,23 @@ infinity respectively.
 \end{verbatim}
 
 
+\section{Bridge}
+\subsection{Synopsis}
+\begin{verbatim}
+Bridge two channels
+\end{verbatim}
+\subsection{Description}
+\begin{verbatim}
+Usage: Bridge(channel[|options])
+       Allows the ability to bridge two channels via the dialplan.
+The current channel is bridged to the specified 'channel'.
+The following options are supported:
+   p - Play a courtesy tone to 'channel'.
+BRIDGERESULT dial plan variable will contain SUCCESS, FAILURE, LOOP, NONEXISTENT or INCOMPATIBLE.
+
+\end{verbatim}
+
+
 \section{Busy}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -353,6 +333,8 @@ available. The following variables will be set by this application:
   ${AVAILSTATUS}   - the status code for the available channel
   Options:
     s - Consider the channel unavailable if the channel is in use at all
+    t - Simply checks if specified channels exist in the channel list
+        (implies option s) 
     j - Support jumping to priority n+101 if no channel is available
 
 \end{verbatim}
@@ -389,6 +371,10 @@ only channels beginning with this string will be spied upon.
       to 'chanprefix'. For example, executing ChanSpy(Agent) and then dialing
       the digits '1234#' while spying will begin spying on the channel
       'Agent/1234'.
+  Note: The X option supersedes the three features above in that if a valid
+        single digit extension exists in the correct context ChanSpy will
+        exit to it. This also disables choosing a channel based on 'chanprefix'
+        and a digit sequence.
   Options:
     b             - Only spy on channels involved in a bridged call.
     g(grp)        - Match only channels where their ${SPYGROUP} variable is set to
@@ -405,6 +391,25 @@ only channels beginning with this string will be spied upon.
     W             - Enable 'private whisper' mode, so the spying channel can
                     talk to the spied-on channel but cannot listen to that
                     channel.
+    o             - Only listen to audio coming from this channel.
+    X             - Allow the user to exit ChanSpy to a valid single digit
+                    numeric extension in the current context or the context
+                    specified by the SPY_EXIT_CONTEXT channel variable. The
+                    name of the last channel that was spied on will be stored
+                    in the SPY_CHANNEL variable.
+
+\end{verbatim}
+
+
+\section{ClearHash}
+\subsection{Synopsis}
+\begin{verbatim}
+Clear the keys from a specified hashname
+\end{verbatim}
+\subsection{Description}
+\begin{verbatim}
+ClearHash(<hashname>)
+  Clears all keys out of the specified hashname
 
 \end{verbatim}
 
@@ -573,6 +578,9 @@ ends the call.
   The optional URL will be sent to the called party if the channel supports it.
   If the OUTBOUND_GROUP variable is set, all peer channels created by this
 application will be put into that group (as in Set(GROUP()=...).
+  If the OUTBOUND_GROUP_ONCE variable is set, all peer channels created by this
+application will be put into that group (as in Set(GROUP()=...). Unlike OUTBOUND_GROUP,
+however, the variable will be unset after use.
 
   Options:
     A(x) - Play an announcement to the called party, using 'x' as the file.
@@ -926,6 +934,9 @@ supplied, the current channel's context will be used.
   While spying, the following actions may be performed:
     - Dialing # cycles the volume level.
     - Dialing * will stop spying and look for another channel to spy on.
+  Note: The X option superseeds the two features above in that if a valid
+        single digit extension exists in the correct context it ChanSpy will
+        exit to it.
   Options:
     b             - Only spy on channels involved in a bridged call.
     g(grp)        - Match only channels where their ${SPYGROUP} variable is set to
@@ -942,6 +953,12 @@ supplied, the current channel's context will be used.
     W             - Enable 'private whisper' mode, so the spying channel can
                     talk to the spied-on channel but cannot listen to that
                     channel.
+    o             - Only listen to audio coming from this channel.
+    X             - Allow the user to exit ChanSpy to a valid single digit
+                    numeric extension in the current context or the context
+                    specified by the SPY_EXIT_CONTEXT channel variable. The
+                    name of the last channel that was spied on will be stored
+                    in the SPY_CHANNEL variable.
 
 \end{verbatim}
 
@@ -1050,7 +1067,7 @@ Jump to label, saving return address
 \end{verbatim}
 \subsection{Description}
 \begin{verbatim}
-Gosub([[context|]exten|]priority)
+Gosub([[context|]exten|]priority[(arg1[|...][|argN])])
   Jumps to the label specified, saving the return address.
 
 \end{verbatim}
@@ -1063,7 +1080,7 @@ Conditionally jump to label, saving return address
 \end{verbatim}
 \subsection{Description}
 \begin{verbatim}
-GosubIf(condition?labeliftrue[:labeliffalse])
+GosubIf(condition?labeliftrue[(arg1[|...])][:labeliffalse[(arg1[|...])]])
   If the condition is true, then jump to labeliftrue.  If false, jumps to
 labeliffalse, if specified.  In either case, a jump saves the return point
 in the dialplan, to be returned to with a Return.
@@ -1156,47 +1173,6 @@ value.
 \end{verbatim}
 
 
-\section{HasNewVoicemail}
-\subsection{Synopsis}
-\begin{verbatim}
-Conditionally branches to priority + 101 with the right options set
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-HasNewVoicemail(vmbox[/folder][@context][|varname[|options]])
-Assumes folder 'INBOX' if folder is not specified. Optionally sets <varname> to the number of messages
-in that folder.
-  The option string may contain zero of the following character:
-       'j' -- jump to priority n+101, if there is new voicemail in folder 'folder' or INBOX
-  This application sets the following channel variable upon completion:
-       HASVMSTATUS             The result of the new voicemail check returned as a text string as follows
-               <# of messages in the folder, 0 for NONE>
-
-This application has been deprecated in favor of the VMCOUNT() function
-
-\end{verbatim}
-
-
-\section{HasVoicemail}
-\subsection{Synopsis}
-\begin{verbatim}
-Conditionally branches to priority + 101 with the right options set
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-HasVoicemail(vmbox[/folder][@context][|varname[|options]])
-  Optionally sets <varname> to the number of messages in that folder.  Assumes folder of INBOX if not specified.
-  The option string may contain zero or the following character:
-       'j' -- jump to priority n+101, if there is voicemail in the folder indicated.
-  This application sets the following channel variable upon completion:
-       HASVMSTATUS             The result of the voicemail check returned as a text string as follows
-               <# of messages in the folder, 0 for NONE>
-
-This application has been deprecated in favor of the VMCOUNT() function
-
-\end{verbatim}
-
-
 \section{IAX2Provision}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -1242,19 +1218,6 @@ Set for more information.
 \end{verbatim}
 
 
-\section{IVRDemo}
-\subsection{Synopsis}
-\begin{verbatim}
-IVR Demo Application
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-  This is a skeleton application that shows you the basic structure to create your
-own asterisk applications and demonstrates the IVR demo.
-\end{verbatim}
-
-
 \section{JabberSend}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -1300,48 +1263,6 @@ Log(<level>|<message>)
 \end{verbatim}
 
 
-\section{LookupBlacklist}
-\subsection{Synopsis}
-\begin{verbatim}
-Look up Caller*ID name/number from blacklist database
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-  LookupBlacklist(options): Looks up the Caller*ID number on the active
-channel in the Asterisk database (family 'blacklist').  
-The option string may contain the following character:
-       'j' -- jump to n+101 priority if the number/name is found in the blacklist
-This application sets the following channel variable upon completion:
-       LOOKUPBLSTATUS          The status of the Blacklist lookup as a text string, one of
-               FOUND | NOTFOUND
-Example: exten => 1234,1,LookupBlacklist()
-
-This application is deprecated and may be removed from a future release.
-Please use the dialplan function BLACKLIST() instead.
-
-\end{verbatim}
-
-
-\section{LookupCIDName}
-\subsection{Synopsis}
-\begin{verbatim}
-Look up CallerID Name from local database
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-  LookupCIDName: Looks up the Caller*ID number on the active
-channel in the Asterisk database (family 'cidname') and sets the
-Caller*ID name.  Does nothing if no Caller*ID was received on the
-channel.  This is useful if you do not subscribe to Caller*ID
-name delivery, or if you want to change the names on some incoming
-calls.
-
-LookupCIDName is deprecated.  Please use ${DB(cidname/${CALLERID(num)})}
-instead.
-
-\end{verbatim}
-
-
 \section{Macro}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -1359,12 +1280,19 @@ If you Goto out of the Macro context, the Macro will terminate and control
 will be returned at the location of the Goto.
 If ${MACRO_OFFSET} is set at termination, Macro will attempt to continue
 at priority MACRO_OFFSET + N + 1 if such a step exists, and N + 1 otherwise.
+Extensions: While a macro is being executed, it becomes the current context.
+            This means that if a hangup occurs, for instance, that the macro
+            will be searched for an 'h' extension, NOT the context from which
+            the macro was called. So, make sure to define all appropriate
+            extensions in your macro! (Note: AEL does not use macros)
 WARNING: Because of the way Macro is implemented (it executes the priorities
          contained within it via sub-engine), and a fixed per-thread
          memory stack allowance, macros are limited to 7 levels
          of nesting (macro calling macro calling macro, etc.); It
          may be possible that stack-intensive applications in deeply nested macros
-         could cause asterisk to crash earlier than this limit.
+         could cause asterisk to crash earlier than this limit. It is advised that
+         if you need to deeply nest macro calls, that you use the Gosub application
+         (now allows arguments like a Macro) with explict Return() calls instead.
 
 \end{verbatim}
 
@@ -1459,6 +1387,7 @@ The option string may contain zero or more of the following characters:
              Default: conf-background.agi  (Note: This does not work with
              non-Zap channels in the same conference)
       'c' -- announce user(s) count on joining a conference
+      'C' -- continue in dialplan when kicked out of conference
       'd' -- dynamically add conference
       'D' -- dynamically add conference, prompting for a PIN
       'e' -- select an empty conference
@@ -1555,6 +1484,139 @@ Milliwatt(): Generate a Constant 1000Hz tone at 0dbm (mu-law)
 \end{verbatim}
 
 
+\section{MinivmAccMess}
+\subsection{Synopsis}
+\begin{verbatim}
+Record account specific messages
+\end{verbatim}
+\subsection{Description}
+\begin{verbatim}
+Syntax: MinivmAccmess(username@domain,option)
+This application is part of the Mini-Voicemail system, configured in minivm.conf.
+Use this application to record account specific audio/video messages for
+busy, unavailable and temporary messages.
+Account specific directories will be created if they do not exist.
+
+The option selects message to be recorded:
+   u      Unavailable
+   b      Busy
+   t      Temporary (overrides busy and unavailable)
+   n      Account name
+
+Result is given in channel variable MINIVM_ACCMESS_STATUS
+        The possible values are:     SUCCESS |  FAILED
+        FAILED is set if the file can't be created.
+
+
+\end{verbatim}
+
+
+\section{MinivmDelete}
+\subsection{Synopsis}
+\begin{verbatim}
+Delete Mini-Voicemail voicemail messages
+\end{verbatim}
+\subsection{Description}
+\begin{verbatim}
+Syntax: MinivmDelete(filename)
+This application is part of the Mini-Voicemail system, configured in minivm.conf.
+It deletes voicemail file set in MVM_FILENAME or given filename.
+
+Result is given in channel variable MINIVM_DELETE_STATUS
+        The possible values are:     SUCCESS |  FAILED
+        FAILED is set if the file does not exist or can't be deleted.
+
+
+\end{verbatim}
+
+
+\section{MinivmGreet}
+\subsection{Synopsis}
+\begin{verbatim}
+Play Mini-Voicemail prompts
+\end{verbatim}
+\subsection{Description}
+\begin{verbatim}
+Syntax: MinivmGreet(username@domain[,options])
+This application is part of the Mini-Voicemail system, configured in minivm.conf.
+MinivmGreet() plays default prompts or user specific prompts for an account.
+Busy and unavailable messages can be choosen, but will be overridden if a temporary
+message exists for the account.
+
+Result is given in channel variable MINIVM_GREET_STATUS
+        The possible values are:     SUCCESS | USEREXIT | FAILED
+
+  Options:
+    b    - Play the 'busy' greeting to the calling party.
+    s    - Skip the playback of instructions for leaving a message to the
+           calling party.
+    u    - Play the 'unavailable greeting.
+
+
+\end{verbatim}
+
+
+\section{MinivmNotify}
+\subsection{Synopsis}
+\begin{verbatim}
+Notify voicemail owner about new messages.
+\end{verbatim}
+\subsection{Description}
+\begin{verbatim}
+Syntax: MinivmNotify(username@domain[,template])
+This application is part of the Mini-Voicemail system, configured in minivm.conf.
+MiniVMnotify forwards messages about new voicemail to e-mail and pager.
+If there's no user account for that address, a temporary account will
+be used with default options (set in minivm.conf).
+The recorded file name and path will be read from MVM_FILENAME and the 
+duration of the message will be accessed from MVM_DURATION (set by MinivmRecord() )
+If the channel variable MVM_COUNTER is set, this will be used in the
+message file name and available in the template for the message.
+If not template is given, the default email template will be used to send email and
+default pager template to send paging message (if the user account is configured with
+a paging address.
+
+Result is given in channel variable MINIVM_NOTIFY_STATUS
+        The possible values are:     SUCCESS | FAILED
+
+
+\end{verbatim}
+
+
+\section{MinivmRecord}
+\subsection{Synopsis}
+\begin{verbatim}
+Receive Mini-Voicemail and forward via e-mail
+\end{verbatim}
+\subsection{Description}
+\begin{verbatim}
+Syntax: MinivmRecord(username@domain[,options])
+This application is part of the Mini-Voicemail system, configured in minivm.conf.
+MiniVM records audio file in configured format and forwards message to e-mail and pager.
+If there's no user account for that address, a temporary account will
+be used with default options.
+The recorded file name and path will be stored in MINIVM_FILENAME and the 
+duration of the message will be stored in MINIVM_DURATION
+
+Note: If the caller hangs up after the recording, the only way to send
+the message and clean up is to execute in the "h" extension.
+
+The application will exit if any of the following DTMF digits are 
+received and the requested extension exist in the current context.
+    0 - Jump to the 'o' extension in the current dialplan context.
+    * - Jump to the 'a' extension in the current dialplan context.
+
+Result is given in channel variable MINIVM_RECORD_STATUS
+        The possible values are:     SUCCESS | USEREXIT | FAILED
+
+  Options:
+    g(#) - Use the specified amount of gain when recording the voicemail
+           message. The units are whole-number decibels (dB).
+
+
+\end{verbatim}
+
+
 \section{MixMonitor}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -1721,6 +1783,7 @@ destroyed when the original caller leaves.  Valid options are:
         d - full duplex audio
         q - quiet, do not play beep to caller
         r - record the page into a file (see 'r' for app_meetme)
+        s - only dial channel if devicestate says it is not in use
 
 \end{verbatim}
 
@@ -1936,29 +1999,31 @@ Queue a call for a call queue
 \end{verbatim}
 \subsection{Description}
 \begin{verbatim}
-  Queue(queuename[|options[|URL][|announceoverride][|timeout][|AGI]):
+  Queue(queuename[|options[|URL][|announceoverride][|timeout][|AGI][|macro]):
 Queues an incoming call in a particular call queue as defined in queues.conf.
 This application will return to the dialplan if the queue does not exist, or
 any of the join options cause the caller to not enter the queue.
 The option string may contain zero or more of the following characters:
       'd' -- data-quality (modem) call (minimum delay).
-      'h' -- allow callee to hang up by hitting *.
-      'H' -- allow caller to hang up by hitting *.
+      'h' -- allow callee to hang up by pressing *.
+      'H' -- allow caller to hang up by pressing *.
       'n' -- no retries on the timeout; will exit this application and 
              go to the next step.
       'i' -- ignore call forward requests from queue members and do nothing
              when they are requested.
-      'r' -- ring instead of playing MOH
-      't' -- allow the called user transfer the calling user
-      'T' -- to allow the calling user to transfer the call.
-      'w' -- allow the called user to write the conversation to disk via Monitor
-      'W' -- allow the calling user to write the conversation to disk via Monitor
+      'r' -- ring instead of playing MOH.
+      't' -- allow the called user to transfer the calling user.
+      'T' -- allow the calling user to transfer the call.
+      'w' -- allow the called user to write the conversation to disk via Monitor.
+      'W' -- allow the calling user to write the conversation to disk via Monitor.
   In addition to transferring the call, a call may be parked and then picked
 up by another user.
   The optional URL will be sent to the called party if the channel supports
 it.
   The optional AGI parameter will setup an AGI script to be executed on the 
 calling party's channel once they are connected to a queue member.
+  The optional macro parameter will run a macro on the 
+calling party's channel once they are connected to a queue member.
   The timeout will cause the queue to fail out after a specified number of
 seconds, checked between each queues.conf 'timeout' and 'retry' cycle.
   This application sets the following channel variable upon completion:
@@ -1982,20 +2047,6 @@ Example: QueueLog(101|${UNIQUEID}|${AGENT}|WENTONBREAK|600)
 \end{verbatim}
 
 
-\section{Random}
-\subsection{Synopsis}
-\begin{verbatim}
-Conditionally branches, based upon a probability
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-Random([probability]:[[context|]extension|]priority)
-  probability := INTEGER in the range 1 to 100
-DEPRECATED: Use GotoIf($[${RAND(1,100)} > <number>]?<label>)
-
-\end{verbatim}
-
-
 \section{Read}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -2003,11 +2054,11 @@ Read a variable
 \end{verbatim}
 \subsection{Description}
 \begin{verbatim}
-  Read(variable[|filename][|maxdigits][|option][|attempts][|timeout])
+  Read(variable[|filename[&filename2...]][|maxdigits][|option][|attempts][|timeout])
 
 Reads a #-terminated string of digits a certain number of times from the
 user in to the given variable.
-  filename   -- file to play before reading digits or tone with option i
+  filename   -- file(s) to play before reading digits or tone with option i
   maxdigits  -- maximum acceptable number of digits. Stops reading after
                 maxdigits have been entered (without requiring the user to
                 press the '#' key).
@@ -2019,8 +2070,8 @@ user in to the given variable.
                 'n' to read digits even if the line is not up.
   attempts   -- if greater than 1, that many attempts will be made in the 
                 event no data is entered.
-  timeout    -- An integer number of seconds to wait for a digit response. If greater
-                than 0, that value will override the default timeout.
+  timeout    -- The number of seconds to wait for a digit response. If greater
+                than 0, that value will override the default timeout. Can be floating point.
 
 Read should disconnect if the function fails or errors out.
 
@@ -2042,41 +2093,6 @@ ReadFile(varname=file,length)
 \end{verbatim}
 
 
-\section{RealTime}
-\subsection{Synopsis}
-\begin{verbatim}
-Realtime Data Lookup
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-Use the RealTime config handler system to read data into channel variables.
-RealTime(<family>|<colmatch>|<value>[|<prefix>])
-
-All unique column names will be set as channel variables with optional prefix
-to the name.  For example, a prefix of 'var_' would make the column 'name'
-become the variable ${var_name}.  REALTIMECOUNT will be set with the number
-of values read.
-
-\end{verbatim}
-
-
-\section{RealTimeUpdate}
-\subsection{Synopsis}
-\begin{verbatim}
-Realtime Data Rewrite
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-Use the RealTime config handler system to update a value
-RealTimeUpdate(<family>|<colmatch>|<value>|<newcol>|<newval>)
-
-The column <newcol> in 'family' matching column <colmatch>=<value> will be
-updated to <newval>.  REALTIMECOUNT will be set with the number of rows
-updated or -1 if an error occurs.
-
-\end{verbatim}
-
-
 \section{Record}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -2182,8 +2198,9 @@ Return from gosub routine
 \end{verbatim}
 \subsection{Description}
 \begin{verbatim}
-Return()
-  Jumps to the last label on the stack, removing it.
+Return([return-value])
+  Jumps to the last label on the stack, removing it.  The return value, if
+any, is saved in the channel variable GOSUB_RETVAL.
 
 \end{verbatim}
 
@@ -2201,50 +2218,6 @@ tone to the user.
 \end{verbatim}
 
 
-\section{Rpt}
-\subsection{Synopsis}
-\begin{verbatim}
-Radio Repeater/Remote Base Control System
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-  Rpt(nodename[|options]):  Radio Remote Link or Remote Base Link Endpoint Process.
-
-    Not specifying an option puts it in normal endpoint mode (where source
-    IP and nodename are verified).
-
-    Options are as follows:
-
-        X - Normal endpoint mode WITHOUT security check. Only specify
-            this if you have checked security already (like with an IAX2
-            user/password or something).
-
-        Rannounce-string[|timeout[|timeout-destination]] - Amateur Radio
-            Reverse Autopatch. Caller is put on hold, and announcement (as
-            specified by the 'announce-string') is played on radio system.
-            Users of radio system can access autopatch, dial specified
-            code, and pick up call. Announce-string is list of names of
-            recordings, or "PARKED" to substitute code for un-parking,
-            or "NODE" to substitute node number.
-
-        P - Phone Control mode. This allows a regular phone user to have
-            full control and audio access to the radio system. For the
-            user to have DTMF control, the 'phone_functions' parameter
-            must be specified for the node in 'rpt.conf'. An additional
-            function (cop,6) must be listed so that PTT control is available.
-
-        D - Dumb Phone Control mode. This allows a regular phone user to
-            have full control and audio access to the radio system. In this
-            mode, the PTT is activated for the entire length of the call.
-            For the user to have DTMF control (not generally recomended in
-            this mode), the 'dphone_functions' parameter must be specified
-            for the node in 'rpt.conf'. Otherwise no DTMF control will be
-            available to the phone user.
-
-
-\end{verbatim}
-
-
 \section{SayAlpha}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -2422,10 +2395,6 @@ channel and all children channels.
     g - Set variable globally instead of on the channel
         (applies only to variables, not functions)
 
-The use of Set to set multiple variables at once and the g flag have both
-been deprecated.  Please use multiple Set calls and the GLOBAL() dialplan
-function instead.
-
 \end{verbatim}
 
 
@@ -2442,21 +2411,6 @@ Set the AMA Flags
 \end{verbatim}
 
 
-\section{SetCallerID}
-\subsection{Synopsis}
-\begin{verbatim}
-Set CallerID
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-  SetCallerID(clid[|a]): Set Caller*ID on a call to a new
-value.  Sets ANI as well if a flag is used. 
-
-This application has been deprecated in favor of Set(CALLERID(all)=...)
-
-\end{verbatim}
-
-
 \section{SetCallerPres}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -2481,44 +2435,6 @@ Set CallerID Presentation
 \end{verbatim}
 
 
-\section{SetCDRUserField}
-\subsection{Synopsis}
-\begin{verbatim}
-Set the CDR user field
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-[Synopsis]
-SetCDRUserField(value)
-
-[Description]
-SetCDRUserField(value): Set the CDR 'user field' to value
-       The Call Data Record (CDR) user field is an extra field you
-       can use for data not stored anywhere else in the record.
-       CDR records can be used for billing or storing other arbitrary data
-       (I.E. telephone survey responses)
-       Also see AppendCDRUserField().
-
-This application has been deprecated in favor of Set(CDR(userfield)=...)
-
-\end{verbatim}
-
-
-\section{SetGlobalVar}
-\subsection{Synopsis}
-\begin{verbatim}
-Set a global variable to a given value
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-  SetGlobalVar(variable=value): This application sets a given global variable to
-the specified value.
-
-This application has been deprecated in favor of Set(GLOBAL(var)=value)
-
-\end{verbatim}
-
-
 \section{SetMusicOnHold}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -2533,29 +2449,6 @@ music is played.
 \end{verbatim}
 
 
-\section{SetTransferCapability}
-\subsection{Synopsis}
-\begin{verbatim}
-Set ISDN Transfer Capability
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-  SetTransferCapability(transfercapability): Set the ISDN Transfer 
-Capability of a call to a new value.
-Valid Transfer Capabilities are:
-
-  SPEECH             : 0x00 - Speech (default, voice calls)
-  DIGITAL            : 0x08 - Unrestricted digital information (data calls)
-  RESTRICTED_DIGITAL : 0x09 - Restricted digital information
-  3K1AUDIO           : 0x10 - 3.1kHz Audio (fax calls)
-  DIGITAL_W_TONES    : 0x11 - Unrestricted digital information with tones/announcements
-  VIDEO              : 0x18 - Video
-
-This application has been deprecated in favor of Set(CHANNEL(transfercapability)=...)
-
-\end{verbatim}
-
-
 \section{SIPAddHeader}
 \subsection{Synopsis}
 \begin{verbatim}
@@ -2592,13 +2485,8 @@ Shared Line Appearance Station
 \end{verbatim}
 \subsection{Description}
 \begin{verbatim}
-  SLAStation(station):
-This application should be executed by an SLA station.  The argument depends
-on how the call was initiated.  If the phone was just taken off hook, then
-the argument "station" should be just the station name.  If the call was
-initiated by pressing a line key, then the station name should be preceded
-by an underscore and the trunk name associated with that line button.
-For example: "station1_line1".
+  SLAStation():
+
 \end{verbatim}
 
 
@@ -2609,10 +2497,7 @@ Shared Line Appearance Trunk
 \end{verbatim}
 \subsection{Description}
 \begin{verbatim}
-  SLATrunk(trunk):
-This application should be executed by an SLA trunk on an inbound call.
-The channel calling this application should correspond to the SLA trunk
-with the name "trunk" that is being passed as an argument.
+  SLATrunk():
 
 \end{verbatim}
 
@@ -2624,9 +2509,11 @@ Communicates with SMS service centres and SMS capable analogue phones
 \end{verbatim}
 \subsection{Description}
 \begin{verbatim}
-  SMS(name|[a][s]):  SMS handles exchange of SMS data with a call to/from SMS capabale
+  SMS(name|[a][s][t][p(d)][r][o]|addr|body):
+SMS handles exchange of SMS data with a call to/from SMS capable
 phone or SMS PSTN service center. Can send and/or receive SMS messages.
 Works to ETSI ES 201 912 compatible with BT SMS PSTN service in UK
+and Telecom Italia in Italy.
 Typical usage is to use to handle called from the SMS service centre CLI,
 or to set up a call using 'outgoing' or manager interface to connect
 service centre to SMS()
@@ -2634,9 +2521,17 @@ name is the name of the queue used in /var/spool/asterisk/sms
 Arguments:
  a: answer, i.e. send initial FSK packet.
  s: act as service centre talking to a phone.
+ t: use protocol 2 (default used is protocol 1).
+ p(N): set the initial delay to N ms (default is 300).
+addr and body are a deprecated format to send messages out.
+ s: set the Status Report Request (SRR) bit.
+ o: the body should be coded as octets not 7-bit symbols.
 Messages are processed as per text file message queues.
 smsq (a separate software) is a command to generate message
 queues and send messages.
+NOTE: the protocol has tight delay bounds. Please use short frames
+and disable/keep short the jitter buffer on the ATA to make sure that
+respones (ACK etc.) are received in time.
 
 \end{verbatim}
 
@@ -2683,7 +2578,7 @@ This application plays a sound file and waits for the person to speak. Once they
 Once they stop talking the processing sound is played to indicate the speech recognition engine is working.
 Once results are available the application returns and results (score and text) are available using dialplan functions.
 The first text and score are ${SPEECH_TEXT(0)} AND ${SPEECH_SCORE(0)} while the second are ${SPEECH_TEXT(1)} and ${SPEECH_SCORE(1)}.
-The first argument is the sound file and the second is the timeout. Note the timeout will only start once the sound file has stopped playing.
+The first argument is the sound file and the second is the timeout integer in seconds. Note the timeout will only start once the sound file has stopped playing.
 
 \end{verbatim}
 
@@ -3297,16 +3192,3 @@ Limit scanning to a channel GROUP by setting the option group argument.
 \end{verbatim}
 
 
-\section{ZapSendKeypadFacility}
-\subsection{Synopsis}
-\begin{verbatim}
-Send digits out of band over a PRI
-\end{verbatim}
-\subsection{Description}
-\begin{verbatim}
-  ZapSendKeypadFacility(): This application will send the given string of digits in a Keypad Facility
-  IE over the current channel.
-
-\end{verbatim}
-
-
index 05d042a..c932da4 100644 (file)
@@ -20,3 +20,21 @@ administrators can locally add extensions which become immediately
 available to the other nodes in the system.
 
 For more information visit http://www.dundi.com
+
+\section{DUNDIQUERY and DUNDIRESULT}
+
+The DUNDIQUERY and DUNDIRESULT dialplan functions will let you initiate
+a DUNDi query from the dialplan, see how many results there are, and access
+each one.  Here is some example usage:
+
+\begin{verbatim}
+exten => 1,1,Set(ID=${DUNDIQUERY(1|dundi_test|b)})
+exten => 1,n,Set(NUM=${DUNDIRESULT(${ID}|getnum)})
+exten => 1,n,NoOp(There are ${NUM} results)
+exten => 1,n,Set(X=1) 
+exten => 1,n,While($[${X} <= ${NUM}])
+exten => 1,n,NoOp(Result ${X} is ${DUNDIRESULT(${ID}|${X})}) 
+exten => 1,n,Set(X=$[${X} + 1])
+exten => 1,n,EndWhile
+\end{verbatim}
+