Merged revisions 72933 via svnmerge from
[asterisk/asterisk.git] / doc / ast_funcdocs.tex
1 % This file is automatically generated by the "core dump funcdocs" CLI command.  Any manual edits will be lost.
2 \section{AGENT}
3 \subsection{Syntax}
4 \begin{verbatim}
5 AGENT(<agentid>[:item])
6 \end{verbatim}
7 \subsection{Synopsis}
8 \begin{verbatim}
9 Gets information about an Agent
10 \end{verbatim}
11 \subsection{Description}
12 \begin{verbatim}
13 The valid items to retrieve are:
14 - status (default)      The status of the agent
15                           LOGGEDIN | LOGGEDOUT
16 - password              The password of the agent
17 - name                  The name of the agent
18 - mohclass              MusicOnHold class
19 - exten                 The callback extension for the Agent (AgentCallbackLogin)
20 - channel               The name of the active channel for the Agent (AgentLogin)
21
22 \end{verbatim}
23
24
25 \section{ARRAY}
26 \subsection{Syntax}
27 \begin{verbatim}
28 ARRAY(var1[|var2[...][|varN]])
29 \end{verbatim}
30 \subsection{Synopsis}
31 \begin{verbatim}
32 Allows setting multiple variables at once
33 \end{verbatim}
34 \subsection{Description}
35 \begin{verbatim}
36 The comma-separated list passed as a value to which the function is set will
37 be interpreted as a set of values to which the comma-separated list of
38 variable names in the argument should be set.
39 Hence, Set(ARRAY(var1|var2)=1\,2) will set var1 to 1 and var2 to 2
40 Note: remember to either backslash your commas in extensions.conf or quote the
41 entire argument, since Set can take multiple arguments itself.
42
43 \end{verbatim}
44
45
46 \section{BASE64\_DECODE}
47 \subsection{Syntax}
48 \begin{verbatim}
49 BASE64_DECODE(<base64_string>)
50 \end{verbatim}
51 \subsection{Synopsis}
52 \begin{verbatim}
53 Decode a base64 string
54 \end{verbatim}
55 \subsection{Description}
56 \begin{verbatim}
57 Returns the plain text string
58
59 \end{verbatim}
60
61
62 \section{BASE64\_ENCODE}
63 \subsection{Syntax}
64 \begin{verbatim}
65 BASE64_ENCODE(<string>)
66 \end{verbatim}
67 \subsection{Synopsis}
68 \begin{verbatim}
69 Encode a string in base64
70 \end{verbatim}
71 \subsection{Description}
72 \begin{verbatim}
73 Returns the base64 string
74
75 \end{verbatim}
76
77
78 \section{BLACKLIST}
79 \subsection{Syntax}
80 \begin{verbatim}
81 BLACKLIST()
82 \end{verbatim}
83 \subsection{Synopsis}
84 \begin{verbatim}
85 Check if the callerid is on the blacklist
86 \end{verbatim}
87 \subsection{Description}
88 \begin{verbatim}
89 Uses astdb to check if the Caller*ID is in family 'blacklist'.  Returns 1 or 0.
90
91 \end{verbatim}
92
93
94 \section{CALLERID}
95 \subsection{Syntax}
96 \begin{verbatim}
97 CALLERID(datatype[,<optional-CID>])
98 \end{verbatim}
99 \subsection{Synopsis}
100 \begin{verbatim}
101 Gets or sets Caller*ID data on the channel.
102 \end{verbatim}
103 \subsection{Description}
104 \begin{verbatim}
105 Gets or sets Caller*ID data on the channel.  The allowable datatypes
106 are "all", "name", "num", "ANI", "DNID", "RDNIS", "pres",
107 and "ton".
108 Uses channel callerid by default or optional callerid, if specified.
109
110 \end{verbatim}
111
112
113 \section{CALLERPRES}
114 \subsection{Syntax}
115 \begin{verbatim}
116 CALLERPRES()
117 \end{verbatim}
118 \subsection{Synopsis}
119 \begin{verbatim}
120 Gets or sets Caller*ID presentation on the channel.
121 \end{verbatim}
122 \subsection{Description}
123 \begin{verbatim}
124 Gets or sets Caller*ID presentation on the channel.  The following values
125 are valid:
126       allowed_not_screened    : Presentation Allowed, Not Screened
127       allowed_passed_screen   : Presentation Allowed, Passed Screen
128       allowed_failed_screen   : Presentation Allowed, Failed Screen
129       allowed                 : Presentation Allowed, Network Number
130       prohib_not_screened     : Presentation Prohibited, Not Screened
131       prohib_passed_screen    : Presentation Prohibited, Passed Screen
132       prohib_failed_screen    : Presentation Prohibited, Failed Screen
133       prohib                  : Presentation Prohibited, Network Number
134       unavailable             : Number Unavailable
135
136 \end{verbatim}
137
138
139 \section{CDR}
140 \subsection{Syntax}
141 \begin{verbatim}
142 CDR(<name>[|options])
143 \end{verbatim}
144 \subsection{Synopsis}
145 \begin{verbatim}
146 Gets or sets a CDR variable
147 \end{verbatim}
148 \subsection{Description}
149 \begin{verbatim}
150 Options:
151   'r' searches the entire stack of CDRs on the channel
152   'u' retrieves the raw, unprocessed value
153   For example, 'start', 'answer', and 'end' will be retrieved as epoch
154   values, when the 'u' option is passed, but formatted as YYYY-MM-DD HH:MM:SS
155   otherwise.  Similarly, disposition and amaflags will return their raw
156   integral values.
157   Here is a list of all the available cdr field names:
158     clid          lastdata       disposition
159     src           start          amaflags
160     dst           answer         accountcode
161     dcontext      end            uniqueid
162     dstchannel    duration       userfield
163     lastapp       billsec        channel
164   All of the above variables are read-only, except for accountcode,
165   userfield, and amaflags. You may, however,  supply
166   a name not on the above list, and create your own
167   variable, whose value can be changed with this function,
168   and this variable will be stored on the cdr.
169    raw values for disposition:
170        1 = NO ANSWER
171         2 = BUSY
172         3 = FAILED
173         4 = ANSWERED
174     raw values for amaflags:
175        1 = OMIT
176        2 = BILLING
177        3 = DOCUMENTATION
178
179 \end{verbatim}
180
181
182 \section{CHANNEL}
183 \subsection{Syntax}
184 \begin{verbatim}
185 CHANNEL(item)
186 \end{verbatim}
187 \subsection{Synopsis}
188 \begin{verbatim}
189 Gets/sets various pieces of information about the channel.
190 \end{verbatim}
191 \subsection{Description}
192 \begin{verbatim}
193 Gets/set various pieces of information about the channel.
194 Standard items (provided by all channel technologies) are:
195 R/O     audioreadformat    format currently being read
196 R/O     audionativeformat  format used natively for audio
197 R/O     audiowriteformat   format currently being written
198 R/W     callgroup          call groups for call pickup
199 R/O     channeltype        technology used for channel
200 R/W     language           language for sounds played
201 R/W     musicclass         class (from musiconhold.conf) for hold music
202 R/W     rxgain             set rxgain level on channel drivers that support it
203 R/O     state              state for channel
204 R/W     tonezone           zone for indications played
205 R/W     txgain             set txgain level on channel drivers that support it
206 R/O     videonativeformat  format used natively for video
207
208 chan_sip provides the following additional options:
209 R/O    rtpqos             Get QOS information about the RTP stream
210        This option takes two additional arguments:
211   Argument 1:
212     audio                 Get data about the audio stream
213     video                 Get data about the video stream
214     text                  Get data about the text stream
215   Argument 2:
216     local_ssrc            Local SSRC (stream ID)
217     local_lostpackets     Local lost packets
218     local_jitter          Local calculated jitter
219     local_count           Number of received packets
220     remote_ssrc           Remote SSRC (stream ID)
221     remote_lostpackets    Remote lost packets
222     remote_jitter         Remote reported jitter
223     remote_count          Number of transmitted packets
224     rtt                   Round trip time
225     all                   All statistics (in a form suited to logging, but not for parsing)
226 R/O    rtpdest            Get remote RTP destination information
227        This option takes one additional argument:
228   Argument 1:
229     audio                 Get audio destination
230     video                 Get video destination
231
232 chan_iax2 provides the following additional options:
233 R/W    osptoken           Get or set the OSP token information for a call
234
235 Additional items may be available from the channel driver providing
236 the channel; see its documentation for details.
237
238 Any item requested that is not available on the current channel will
239 return an empty string.
240
241 \end{verbatim}
242
243
244 \section{CHECKSIPDOMAIN}
245 \subsection{Syntax}
246 \begin{verbatim}
247 CHECKSIPDOMAIN(<domain|IP>)
248 \end{verbatim}
249 \subsection{Synopsis}
250 \begin{verbatim}
251 Checks if domain is a local domain
252 \end{verbatim}
253 \subsection{Description}
254 \begin{verbatim}
255 This function checks if the domain in the argument is configured
256 as a local SIP domain that this Asterisk server is configured to handle.
257 Returns the domain name if it is locally handled, otherwise an empty string.
258 Check the domain= configuration in sip.conf
259
260 \end{verbatim}
261
262
263 \section{CURL}
264 \subsection{Syntax}
265 \begin{verbatim}
266 CURL(url[|post-data])
267 \end{verbatim}
268 \subsection{Synopsis}
269 \begin{verbatim}
270 Retrieves the contents of a URL
271 \end{verbatim}
272 \subsection{Description}
273 \begin{verbatim}
274   url       - URL to retrieve
275   post-data - Optional data to send as a POST (GET is default action)
276
277 \end{verbatim}
278
279
280 \section{CUT}
281 \subsection{Syntax}
282 \begin{verbatim}
283 CUT(<varname>,<char-delim>,<range-spec>)
284 \end{verbatim}
285 \subsection{Synopsis}
286 \begin{verbatim}
287 Slices and dices strings, based upon a named delimiter.
288 \end{verbatim}
289 \subsection{Description}
290 \begin{verbatim}
291   varname    - variable you want cut
292   char-delim - defaults to '-'
293   range-spec - number of the field you want (1-based offset)
294              may also be specified as a range (with -)
295              or group of ranges and fields (with &)
296
297 \end{verbatim}
298
299
300 \section{DB}
301 \subsection{Syntax}
302 \begin{verbatim}
303 DB(<family>/<key>)
304 \end{verbatim}
305 \subsection{Synopsis}
306 \begin{verbatim}
307 Read from or write to the Asterisk database
308 \end{verbatim}
309 \subsection{Description}
310 \begin{verbatim}
311 This function will read from or write a value to the Asterisk database.  On a
312 read, this function returns the corresponding value from the database, or blank
313 if it does not exist.  Reading a database value will also set the variable
314 DB_RESULT.  If you wish to find out if an entry exists, use the DB_EXISTS
315 function.
316
317 \end{verbatim}
318
319
320 \section{DB\_DELETE}
321 \subsection{Syntax}
322 \begin{verbatim}
323 DB_DELETE(<family>/<key>)
324 \end{verbatim}
325 \subsection{Synopsis}
326 \begin{verbatim}
327 Return a value from the database and delete it
328 \end{verbatim}
329 \subsection{Description}
330 \begin{verbatim}
331 This function will retrieve a value from the Asterisk database
332  and then remove that key from the database.  DB_RESULT
333 will be set to the key's value if it exists.
334
335 \end{verbatim}
336
337
338 \section{DB\_EXISTS}
339 \subsection{Syntax}
340 \begin{verbatim}
341 DB_EXISTS(<family>/<key>)
342 \end{verbatim}
343 \subsection{Synopsis}
344 \begin{verbatim}
345 Check to see if a key exists in the Asterisk database
346 \end{verbatim}
347 \subsection{Description}
348 \begin{verbatim}
349 This function will check to see if a key exists in the Asterisk
350 database. If it exists, the function will return "1". If not,
351 it will return "0".  Checking for existence of a database key will
352 also set the variable DB_RESULT to the key's value if it exists.
353
354 \end{verbatim}
355
356
357 \section{DEVSTATE}
358 \subsection{Syntax}
359 \begin{verbatim}
360 DEVSTATE(device)
361 \end{verbatim}
362 \subsection{Synopsis}
363 \begin{verbatim}
364 Get or Set a device state
365 \end{verbatim}
366 \subsection{Description}
367 \begin{verbatim}
368   The DEVSTATE function can be used to retrieve the device state from any
369 device state provider.  For example:
370    NoOp(SIP/mypeer has state ${DEVSTATE(SIP/mypeer)})
371    NoOp(Conference number 1234 has state ${DEVSTATE(MeetMe:1234)})
372
373   The DEVSTATE function can also be used to set custom device state from
374 the dialplan.  The "Custom:" prefix must be used.  For example:
375   Set(DEVSTATE(Custom:lamp1)=BUSY)
376   Set(DEVSTATE(Custom:lamp2)=NOT_INUSE)
377 You can subscribe to the status of a custom device state using a hint in
378 the dialplan:
379   exten => 1234,hint,Custom:lamp1
380
381   The possible values for both uses of this function are:
382 UNKNOWN | NOT_INUSE | INUSE | BUSY | INVALID | UNAVAILABLE | RINGING
383 RINGINUSE | ONHOLD
384
385 \end{verbatim}
386
387
388 \section{DUNDILOOKUP}
389 \subsection{Syntax}
390 \begin{verbatim}
391 DUNDILOOKUP(number[|context[|options]])
392 \end{verbatim}
393 \subsection{Synopsis}
394 \begin{verbatim}
395 Do a DUNDi lookup of a phone number.
396 \end{verbatim}
397 \subsection{Description}
398 \begin{verbatim}
399 This will do a DUNDi lookup of the given phone number.
400 If no context is given, the default will be e164. The result of
401 this function will return the Technology/Resource found in the first result
402 in the DUNDi lookup. If no results were found, the result will be blank.
403 If the 'b' option is specified, the internal DUNDi cache will
404 be bypassed.
405
406 \end{verbatim}
407
408
409 \section{DUNDIQUERY}
410 \subsection{Syntax}
411 \begin{verbatim}
412 DUNDIQUERY(number[|context[|options]])
413 \end{verbatim}
414 \subsection{Synopsis}
415 \begin{verbatim}
416 Initiate a DUNDi query.
417 \end{verbatim}
418 \subsection{Description}
419 \begin{verbatim}
420 This will do a DUNDi lookup of the given phone number.
421 If no context is given, the default will be e164. The result of
422 this function will be a numeric ID that can be used to retrieve
423 the results with the DUNDIRESULT function. If the 'b' option is
424 is specified, the internal DUNDi cache will be bypassed.
425
426 \end{verbatim}
427
428
429 \section{DUNDIRESULT}
430 \subsection{Syntax}
431 \begin{verbatim}
432 DUNDIRESULT(id|resultnum)
433 \end{verbatim}
434 \subsection{Synopsis}
435 \begin{verbatim}
436 Retrieve results from a DUNDIQUERY
437 \end{verbatim}
438 \subsection{Description}
439 \begin{verbatim}
440 This function will retrieve results from a previous use
441 of the DUNDIQUERY function.
442   id - This argument is the identifier returned by the DUNDIQUERY function.
443   resultnum - This is the number of the result that you want to retrieve.
444        Results start at 1.  If this argument is specified as "getnum",
445        then it will return the total number of results that are available.
446
447 \end{verbatim}
448
449
450 \section{ENUMLOOKUP}
451 \subsection{Syntax}
452 \begin{verbatim}
453 ENUMLOOKUP(number[|Method-type[|options[|record#[|zone-suffix]]]])
454 \end{verbatim}
455 \subsection{Synopsis}
456 \begin{verbatim}
457 General or specific querying of NAPTR records for ENUM or ENUM-like DNS pointers
458 \end{verbatim}
459 \subsection{Description}
460 \begin{verbatim}
461 Option 'c' returns an integer count of the number of NAPTRs of a certain RR type.
462 Combination of 'c' and Method-type of 'ALL' will return a count of all NAPTRs for the record.
463 Defaults are: Method-type=sip, no options, record=1, zone-suffix=e164.arpa
464
465 For more information, see doc/asterisk.pdf
466 \end{verbatim}
467
468
469 \section{ENUMQUERY}
470 \subsection{Syntax}
471 \begin{verbatim}
472 ENUMQUERY(number[|Method-type[|zone-suffix]])
473 \end{verbatim}
474 \subsection{Synopsis}
475 \begin{verbatim}
476 Initiate an ENUM query
477 \end{verbatim}
478 \subsection{Description}
479 \begin{verbatim}
480 This will do a ENUM lookup of the given phone number.
481 If no method-tpye is given, the default will be sip. If no
482 zone-suffix is given, the default will be "e164.arpa".
483 The result of this function will be a numeric ID that can
484 be used to retrieve the results using the ENUMRESULT function.
485
486 \end{verbatim}
487
488
489 \section{ENUMRESULT}
490 \subsection{Syntax}
491 \begin{verbatim}
492 ENUMRESULT(id|resultnum)
493 \end{verbatim}
494 \subsection{Synopsis}
495 \begin{verbatim}
496 Retrieve results from a ENUMQUERY
497 \end{verbatim}
498 \subsection{Description}
499 \begin{verbatim}
500 This function will retrieve results from a previous use
501 of the ENUMQUERY function.
502   id - This argument is the identifier returned by the ENUMQUERY function.
503   resultnum - This is the number of the result that you want to retrieve.
504        Results start at 1.  If this argument is specified as "getnum",
505        then it will return the total number of results that are available.
506
507 \end{verbatim}
508
509
510 \section{ENV}
511 \subsection{Syntax}
512 \begin{verbatim}
513 ENV(<envname>)
514 \end{verbatim}
515 \subsection{Synopsis}
516 \begin{verbatim}
517 Gets or sets the environment variable specified
518 \end{verbatim}
519 \subsection{Description}
520 \begin{verbatim}
521 (null)
522 \end{verbatim}
523
524
525 \section{EVAL}
526 \subsection{Syntax}
527 \begin{verbatim}
528 EVAL(<variable>)
529 \end{verbatim}
530 \subsection{Synopsis}
531 \begin{verbatim}
532 Evaluate stored variables.
533 \end{verbatim}
534 \subsection{Description}
535 \begin{verbatim}
536 Using EVAL basically causes a string to be evaluated twice.
537 When a variable or expression is in the dialplan, it will be
538 evaluated at runtime. However, if the result of the evaluation
539 is in fact a variable or expression, using EVAL will have it
540 evaluated a second time. For example, if the variable ${MYVAR}
541 contains "${OTHERVAR}", then the result of putting ${EVAL(${MYVAR})}
542 in the dialplan will be the contents of the variable, OTHERVAR.
543 Normally, by just putting ${MYVAR} in the dialplan, you would be
544 left with "${OTHERVAR}".
545
546 \end{verbatim}
547
548
549 \section{EXISTS}
550 \subsection{Syntax}
551 \begin{verbatim}
552 EXISTS(<data>)
553 \end{verbatim}
554 \subsection{Synopsis}
555 \begin{verbatim}
556 Existence Test: Returns 1 if exists, 0 otherwise
557 \end{verbatim}
558 \subsection{Description}
559 \begin{verbatim}
560 (null)
561 \end{verbatim}
562
563
564 \section{FIELDQTY}
565 \subsection{Syntax}
566 \begin{verbatim}
567 FIELDQTY(<varname>|<delim>)
568 \end{verbatim}
569 \subsection{Synopsis}
570 \begin{verbatim}
571 Count the fields, with an arbitrary delimiter
572 \end{verbatim}
573 \subsection{Description}
574 \begin{verbatim}
575 (null)
576 \end{verbatim}
577
578
579 \section{FILTER}
580 \subsection{Syntax}
581 \begin{verbatim}
582 FILTER(<allowed-chars>|<string>)
583 \end{verbatim}
584 \subsection{Synopsis}
585 \begin{verbatim}
586 Filter the string to include only the allowed characters
587 \end{verbatim}
588 \subsection{Description}
589 \begin{verbatim}
590 (null)
591 \end{verbatim}
592
593
594 \section{GLOBAL}
595 \subsection{Syntax}
596 \begin{verbatim}
597 GLOBAL(<varname>)
598 \end{verbatim}
599 \subsection{Synopsis}
600 \begin{verbatim}
601 Gets or sets the global variable specified
602 \end{verbatim}
603 \subsection{Description}
604 \begin{verbatim}
605 (null)
606 \end{verbatim}
607
608
609 \section{GROUP}
610 \subsection{Syntax}
611 \begin{verbatim}
612 GROUP([category])
613 \end{verbatim}
614 \subsection{Synopsis}
615 \begin{verbatim}
616 Gets or sets the channel group.
617 \end{verbatim}
618 \subsection{Description}
619 \begin{verbatim}
620 Gets or sets the channel group.
621
622 \end{verbatim}
623
624
625 \section{GROUP\_COUNT}
626 \subsection{Syntax}
627 \begin{verbatim}
628 GROUP_COUNT([groupname][@category])
629 \end{verbatim}
630 \subsection{Synopsis}
631 \begin{verbatim}
632 Counts the number of channels in the specified group
633 \end{verbatim}
634 \subsection{Description}
635 \begin{verbatim}
636 Calculates the group count for the specified group, or uses the
637 channel's current group if not specifed (and non-empty).
638
639 \end{verbatim}
640
641
642 \section{GROUP\_LIST}
643 \subsection{Syntax}
644 \begin{verbatim}
645 GROUP_LIST()
646 \end{verbatim}
647 \subsection{Synopsis}
648 \begin{verbatim}
649 Gets a list of the groups set on a channel.
650 \end{verbatim}
651 \subsection{Description}
652 \begin{verbatim}
653 Gets a list of the groups set on a channel.
654
655 \end{verbatim}
656
657
658 \section{GROUP\_MATCH\_COUNT}
659 \subsection{Syntax}
660 \begin{verbatim}
661 GROUP_MATCH_COUNT(groupmatch[@category])
662 \end{verbatim}
663 \subsection{Synopsis}
664 \begin{verbatim}
665 Counts the number of channels in the groups matching the specified pattern
666 \end{verbatim}
667 \subsection{Description}
668 \begin{verbatim}
669 Calculates the group count for all groups that match the specified pattern.
670 Uses standard regular expression matching (see regex(7)).
671
672 \end{verbatim}
673
674
675 \section{HASH}
676 \subsection{Syntax}
677 \begin{verbatim}
678 HASH(hashname[|hashkey])
679 \end{verbatim}
680 \subsection{Synopsis}
681 \begin{verbatim}
682 Implementation of a dialplan associative array
683 \end{verbatim}
684 \subsection{Description}
685 \begin{verbatim}
686 In two argument mode, gets and sets values to corresponding keys within a named
687 associative array.  The single-argument mode will only work when assigned to from
688 a function defined by func_odbc.so.
689
690 \end{verbatim}
691
692
693 \section{HASHKEYS}
694 \subsection{Syntax}
695 \begin{verbatim}
696 HASHKEYS(<hashname>)
697 \end{verbatim}
698 \subsection{Synopsis}
699 \begin{verbatim}
700 Retrieve the keys of a HASH()
701 \end{verbatim}
702 \subsection{Description}
703 \begin{verbatim}
704 Returns a comma-delimited list of the current keys of an associative array
705 defined by the HASH() function.  Note that if you iterate over the keys of
706 the result, adding keys during iteration will cause the result of the HASHKEYS
707 function to change.
708
709 \end{verbatim}
710
711
712 \section{IAXPEER}
713 \subsection{Syntax}
714 \begin{verbatim}
715 IAXPEER(<peername|CURRENTCHANNEL>[|item])
716 \end{verbatim}
717 \subsection{Synopsis}
718 \begin{verbatim}
719 Gets IAX peer information
720 \end{verbatim}
721 \subsection{Description}
722 \begin{verbatim}
723 If peername specified, valid items are:
724 - ip (default)          The IP address.
725 - status                The peer's status (if qualify=yes)
726 - mailbox               The configured mailbox.
727 - context               The configured context.
728 - expire                The epoch time of the next expire.
729 - dynamic               Is it dynamic? (yes/no).
730 - callerid_name         The configured Caller ID name.
731 - callerid_num          The configured Caller ID number.
732 - codecs                The configured codecs.
733 - codec[x]              Preferred codec index number 'x' (beginning with zero).
734
735 If CURRENTCHANNEL specified, returns IP address of current channel
736
737
738 \end{verbatim}
739
740
741 \section{IAXVAR}
742 \subsection{Syntax}
743 \begin{verbatim}
744 IAXVAR(<varname>)
745 \end{verbatim}
746 \subsection{Synopsis}
747 \begin{verbatim}
748 Sets or retrieves a remote variable
749 \end{verbatim}
750 \subsection{Description}
751 \begin{verbatim}
752 (null)
753 \end{verbatim}
754
755
756 \section{ICONV}
757 \subsection{Syntax}
758 \begin{verbatim}
759 ICONV(in-charset,out-charset,string)
760 \end{verbatim}
761 \subsection{Synopsis}
762 \begin{verbatim}
763 Converts charsets of strings.
764 \end{verbatim}
765 \subsection{Description}
766 \begin{verbatim}
767 Converts string from in-charset into out-charset.  For available charsets,
768 use 'iconv -l' on your shell command line.
769 Note: due to limitations within the API, ICONV will not currently work with
770 charsets with embedded NULLs.  If found, the string will terminate.
771
772 \end{verbatim}
773
774
775 \section{IF}
776 \subsection{Syntax}
777 \begin{verbatim}
778 IF(<expr>?[<true>][:<false>])
779 \end{verbatim}
780 \subsection{Synopsis}
781 \begin{verbatim}
782 Conditional: Returns the data following '?' if true else the data following ':'
783 \end{verbatim}
784 \subsection{Description}
785 \begin{verbatim}
786 (null)
787 \end{verbatim}
788
789
790 \section{IFMODULE}
791 \subsection{Syntax}
792 \begin{verbatim}
793 IFMODULE(<modulename.so>)
794 \end{verbatim}
795 \subsection{Synopsis}
796 \begin{verbatim}
797 Checks if an Asterisk module is loaded in memory
798 \end{verbatim}
799 \subsection{Description}
800 \begin{verbatim}
801 Checks if a module is loaded. Use the full module name
802 as shown by the list in "module list". 
803 Returns "1" if module exists in memory, otherwise "0".
804
805 \end{verbatim}
806
807
808 \section{IFTIME}
809 \subsection{Syntax}
810 \begin{verbatim}
811 IFTIME(<timespec>?[<true>][:<false>])
812 \end{verbatim}
813 \subsection{Synopsis}
814 \begin{verbatim}
815 Temporal Conditional: Returns the data following '?' if true else the data following ':'
816 \end{verbatim}
817 \subsection{Description}
818 \begin{verbatim}
819 (null)
820 \end{verbatim}
821
822
823 \section{ISNULL}
824 \subsection{Syntax}
825 \begin{verbatim}
826 ISNULL(<data>)
827 \end{verbatim}
828 \subsection{Synopsis}
829 \begin{verbatim}
830 NULL Test: Returns 1 if NULL or 0 otherwise
831 \end{verbatim}
832 \subsection{Description}
833 \begin{verbatim}
834 (null)
835 \end{verbatim}
836
837
838 \section{KEYPADHASH}
839 \subsection{Syntax}
840 \begin{verbatim}
841 KEYPADHASH(<string>)
842 \end{verbatim}
843 \subsection{Synopsis}
844 \begin{verbatim}
845 Hash the letters in the string into the equivalent keypad numbers.
846 \end{verbatim}
847 \subsection{Description}
848 \begin{verbatim}
849 Example:  ${KEYPADHASH(Les)} returns "537"
850
851 \end{verbatim}
852
853
854 \section{LEN}
855 \subsection{Syntax}
856 \begin{verbatim}
857 LEN(<string>)
858 \end{verbatim}
859 \subsection{Synopsis}
860 \begin{verbatim}
861 Returns the length of the argument given
862 \end{verbatim}
863 \subsection{Description}
864 \begin{verbatim}
865 (null)
866 \end{verbatim}
867
868
869 \section{LOCAL}
870 \subsection{Syntax}
871 \begin{verbatim}
872 LOCAL(<varname>)
873 \end{verbatim}
874 \subsection{Synopsis}
875 \begin{verbatim}
876 Variables local to the gosub stack frame
877 \end{verbatim}
878 \subsection{Description}
879 \begin{verbatim}
880 (null)
881 \end{verbatim}
882
883
884 \section{MAILBOX\_EXISTS}
885 \subsection{Syntax}
886 \begin{verbatim}
887 MAILBOX_EXISTS(<vmbox>[@<context>])
888 \end{verbatim}
889 \subsection{Synopsis}
890 \begin{verbatim}
891 Tell if a mailbox is configured
892 \end{verbatim}
893 \subsection{Description}
894 \begin{verbatim}
895 Returns a boolean of whether the corresponding mailbox exists.  If context
896 is not specified, defaults to the "default" context.
897
898 \end{verbatim}
899
900
901 \section{MATH}
902 \subsection{Syntax}
903 \begin{verbatim}
904 MATH(<number1><op><number2>[,<type_of_result>])
905 \end{verbatim}
906 \subsection{Synopsis}
907 \begin{verbatim}
908 Performs Mathematical Functions
909 \end{verbatim}
910 \subsection{Description}
911 \begin{verbatim}
912 Perform calculation on number1 to number2. Valid ops are: 
913     +,-,/,*,%,<<,>>,^,AND,OR,XOR,<,>,>=,<=,==
914 and behave as their C equivalents.
915 <type_of_result> - wanted type of result:
916         f, float - float(default)
917         i, int - integer,
918         h, hex - hex,
919         c, char - char
920 Example: Set(i=${MATH(123%16,int)}) - sets var i=11
921 \end{verbatim}
922
923
924 \section{MD5}
925 \subsection{Syntax}
926 \begin{verbatim}
927 MD5(<data>)
928 \end{verbatim}
929 \subsection{Synopsis}
930 \begin{verbatim}
931 Computes an MD5 digest
932 \end{verbatim}
933 \subsection{Description}
934 \begin{verbatim}
935 (null)
936 \end{verbatim}
937
938
939 \section{MINIVMACCOUNT}
940 \subsection{Syntax}
941 \begin{verbatim}
942 MINIVMACCOUNT(<account>:item)
943 \end{verbatim}
944 \subsection{Synopsis}
945 \begin{verbatim}
946 Gets MiniVoicemail account information
947 \end{verbatim}
948 \subsection{Description}
949 \begin{verbatim}
950 Valid items are:
951 - path           Path to account mailbox (if account exists, otherwise temporary mailbox)
952 - hasaccount     1 if static Minivm account exists, 0 otherwise
953 - fullname       Full name of account owner
954 - email          Email address used for account
955 - etemplate      E-mail template for account (default template if none is configured)
956 - ptemplate      Pager template for account (default template if none is configured)
957 - accountcode    Account code for voicemail account
958 - pincode        Pin code for voicemail account
959 - timezone       Time zone for voicemail account
960 - language       Language for voicemail account
961 - <channel variable name> Channel variable value (set in configuration for account)
962
963
964 \end{verbatim}
965
966
967 \section{MINIVMCOUNTER}
968 \subsection{Syntax}
969 \begin{verbatim}
970 MINIVMCOUNTER(<account>:name[:operand])
971 \end{verbatim}
972 \subsection{Synopsis}
973 \begin{verbatim}
974 Reads or sets counters for MiniVoicemail message
975 \end{verbatim}
976 \subsection{Description}
977 \begin{verbatim}
978 Valid operands for changing the value of a counter when assigning a value are:
979 - i   Increment by value
980 - d   Decrement by value
981 - s   Set to value
982
983 The counters never goes below zero.
984 - The name of the counter is a string, up to 10 characters
985 - If account is given and it exists, the counter is specific for the account
986 - If account is a domain and the domain directory exists, counters are specific for a domain
987 The operation is atomic and the counter is locked while changing the value
988
989 The counters are stored as text files in the minivm account directories. It might be better to use
990 realtime functions if you are using a database to operate your Asterisk
991
992 \end{verbatim}
993
994
995 \section{ODBC\_ANTIGF}
996 \subsection{Syntax}
997 \begin{verbatim}
998 ODBC_ANTIGF(<arg1>[...[,<argN>]])
999 \end{verbatim}
1000 \subsection{Synopsis}
1001 \begin{verbatim}
1002 Runs the referenced query with the specified arguments
1003 \end{verbatim}
1004 \subsection{Description}
1005 \begin{verbatim}
1006 Runs the following query, as defined in func_odbc.conf, performing
1007 substitution of the arguments into the query as specified by ${ARG1},
1008 ${ARG2}, ... ${ARGn}.  This function may only be read, not set.
1009
1010 SQL:
1011 SELECT COUNT(*) FROM exgirlfriends WHERE callerid='${SQL_ESC(${ARG1})}'
1012
1013 \end{verbatim}
1014
1015
1016 \section{ODBC\_FETCH}
1017 \subsection{Syntax}
1018 \begin{verbatim}
1019 ODBC_FETCH(<result-id>)
1020 \end{verbatim}
1021 \subsection{Synopsis}
1022 \begin{verbatim}
1023 Fetch a row from a multirow query
1024 \end{verbatim}
1025 \subsection{Description}
1026 \begin{verbatim}
1027 For queries which are marked as mode=multirow, the original query returns a
1028 result-id from which results may be fetched.  This function implements the
1029 actual fetch of the results.
1030
1031 \end{verbatim}
1032
1033
1034 \section{ODBC\_PRESENCE}
1035 \subsection{Syntax}
1036 \begin{verbatim}
1037 ODBC_PRESENCE(<arg1>[...[,<argN>]])
1038 \end{verbatim}
1039 \subsection{Synopsis}
1040 \begin{verbatim}
1041 Runs the referenced query with the specified arguments
1042 \end{verbatim}
1043 \subsection{Description}
1044 \begin{verbatim}
1045 Runs the following query, as defined in func_odbc.conf, performing
1046 substitution of the arguments into the query as specified by ${ARG1},
1047 ${ARG2}, ... ${ARGn}.  When setting the function, the values are provided
1048 either in whole as ${VALUE} or parsed as ${VAL1}, ${VAL2}, ... ${VALn}.
1049
1050 Read:
1051 SELECT location FROM presence WHERE id='${SQL_ESC(${ARG1})}'
1052
1053 Write:
1054 UPDATE presence SET location='${SQL_ESC(${VAL1})}' WHERE id='${SQL_ESC(${ARG1})}'
1055
1056 \end{verbatim}
1057
1058
1059 \section{ODBC\_SQL}
1060 \subsection{Syntax}
1061 \begin{verbatim}
1062 ODBC_SQL(<arg1>[...[,<argN>]])
1063 \end{verbatim}
1064 \subsection{Synopsis}
1065 \begin{verbatim}
1066 Runs the referenced query with the specified arguments
1067 \end{verbatim}
1068 \subsection{Description}
1069 \begin{verbatim}
1070 Runs the following query, as defined in func_odbc.conf, performing
1071 substitution of the arguments into the query as specified by ${ARG1},
1072 ${ARG2}, ... ${ARGn}.  This function may only be read, not set.
1073
1074 SQL:
1075 ${ARG1}
1076
1077 \end{verbatim}
1078
1079
1080 \section{QUEUE\_MEMBER\_COUNT}
1081 \subsection{Syntax}
1082 \begin{verbatim}
1083 QUEUE_MEMBER_COUNT(<queuename>)
1084 \end{verbatim}
1085 \subsection{Synopsis}
1086 \begin{verbatim}
1087 Count number of members answering a queue
1088 \end{verbatim}
1089 \subsection{Description}
1090 \begin{verbatim}
1091 Returns the number of members currently associated with the specified queue.
1092
1093 \end{verbatim}
1094
1095
1096 \section{QUEUE\_MEMBER\_LIST}
1097 \subsection{Syntax}
1098 \begin{verbatim}
1099 QUEUE_MEMBER_LIST(<queuename>)
1100 \end{verbatim}
1101 \subsection{Synopsis}
1102 \begin{verbatim}
1103 Returns a list of interfaces on a queue
1104 \end{verbatim}
1105 \subsection{Description}
1106 \begin{verbatim}
1107 Returns a comma-separated list of members associated with the specified queue.
1108
1109 \end{verbatim}
1110
1111
1112 \section{QUEUE\_VARIABLES}
1113 \subsection{Syntax}
1114 \begin{verbatim}
1115 QUEUE_VARIABLES(<queuename>)
1116 \end{verbatim}
1117 \subsection{Synopsis}
1118 \begin{verbatim}
1119 Return Queue information in variables
1120 \end{verbatim}
1121 \subsection{Description}
1122 \begin{verbatim}
1123 Makes the following queue variables available.
1124 QUEUEMAX maxmimum number of calls allowed
1125 QUEUESTRATEGY the strategy of the queue
1126 QUEUECALLS number of calls currently in the queue
1127 QUEUEHOLDTIME current average hold time
1128 QUEUECOMPLETED number of completed calls for the queue
1129 QUEUEABANDONED number of abandoned calls
1130 QUEUESRVLEVEL queue service level
1131 QUEUESRVLEVELPERF current service level performance
1132 Returns 0 if queue is found and setqueuevar is defined, -1 otherwise
1133 \end{verbatim}
1134
1135
1136 \section{QUEUE\_WAITING\_COUNT}
1137 \subsection{Syntax}
1138 \begin{verbatim}
1139 QUEUE_WAITING_COUNT(<queuename>)
1140 \end{verbatim}
1141 \subsection{Synopsis}
1142 \begin{verbatim}
1143 Count number of calls currently waiting in a queue
1144 \end{verbatim}
1145 \subsection{Description}
1146 \begin{verbatim}
1147 Returns the number of callers currently waiting in the specified queue.
1148
1149 \end{verbatim}
1150
1151
1152 \section{QUOTE}
1153 \subsection{Syntax}
1154 \begin{verbatim}
1155 QUOTE(<string>)
1156 \end{verbatim}
1157 \subsection{Synopsis}
1158 \begin{verbatim}
1159 Quotes a given string, escaping embedded quotes as necessary
1160 \end{verbatim}
1161 \subsection{Description}
1162 \begin{verbatim}
1163 (null)
1164 \end{verbatim}
1165
1166
1167 \section{RAND}
1168 \subsection{Syntax}
1169 \begin{verbatim}
1170 RAND([min][|max])
1171 \end{verbatim}
1172 \subsection{Synopsis}
1173 \begin{verbatim}
1174 Choose a random number in a range
1175 \end{verbatim}
1176 \subsection{Description}
1177 \begin{verbatim}
1178 Choose a random number between min and max.  Min defaults to 0, if not
1179 specified, while max defaults to RAND_MAX (2147483647 on many systems).
1180   Example:  Set(junky=${RAND(1|8)}); 
1181   Sets junky to a random number between 1 and 8, inclusive.
1182
1183 \end{verbatim}
1184
1185
1186 \section{REALTIME}
1187 \subsection{Syntax}
1188 \begin{verbatim}
1189 REALTIME(family|fieldmatch[|value[|delim1[|delim2]]]) on read
1190 REALTIME(family|fieldmatch|value|field) on write
1191
1192 \end{verbatim}
1193 \subsection{Synopsis}
1194 \begin{verbatim}
1195 RealTime Read/Write Functions
1196 \end{verbatim}
1197 \subsection{Description}
1198 \begin{verbatim}
1199 This function will read or write values from/to a RealTime repository.
1200 REALTIME(....) will read names/values from the repository, and 
1201 REALTIME(....)= will write a new value/field to the repository. On a
1202 read, this function returns a delimited text string. The name/value 
1203 pairs are delimited by delim1, and the name and value are delimited 
1204 between each other with delim2. The default for delim1 is '|' and   
1205 the default for delim2 is '='. If there is no match, NULL will be   
1206 returned by the function. On a write, this function will always     
1207 return NULL. 
1208
1209 \end{verbatim}
1210
1211
1212 \section{REGEX}
1213 \subsection{Syntax}
1214 \begin{verbatim}
1215 REGEX("<regular expression>" <data>)
1216 \end{verbatim}
1217 \subsection{Synopsis}
1218 \begin{verbatim}
1219 Regular Expression
1220 \end{verbatim}
1221 \subsection{Description}
1222 \begin{verbatim}
1223 Returns 1 if data matches regular expression, or 0 otherwise.
1224 Please note that the space following the double quotes separating the regex from the data
1225 is optional and if present, is skipped. If a space is desired at the beginning of the data,
1226 then put two spaces there; the second will not be skipped.
1227
1228 \end{verbatim}
1229
1230
1231 \section{SET}
1232 \subsection{Syntax}
1233 \begin{verbatim}
1234 SET(<varname>=[<value>])
1235 \end{verbatim}
1236 \subsection{Synopsis}
1237 \begin{verbatim}
1238 SET assigns a value to a channel variable
1239 \end{verbatim}
1240 \subsection{Description}
1241 \begin{verbatim}
1242 (null)
1243 \end{verbatim}
1244
1245
1246 \section{SHA1}
1247 \subsection{Syntax}
1248 \begin{verbatim}
1249 SHA1(<data>)
1250 \end{verbatim}
1251 \subsection{Synopsis}
1252 \begin{verbatim}
1253 Computes a SHA1 digest
1254 \end{verbatim}
1255 \subsection{Description}
1256 \begin{verbatim}
1257 Generate a SHA1 digest via the SHA1 algorythm.
1258  Example:  Set(sha1hash=${SHA1(junky)})
1259  Sets the asterisk variable sha1hash to the string '60fa5675b9303eb62f99a9cd47f9f5837d18f9a0'
1260  which is known as his hash
1261
1262 \end{verbatim}
1263
1264
1265 \section{SHELL}
1266 \subsection{Syntax}
1267 \begin{verbatim}
1268 SHELL(<command>)
1269 \end{verbatim}
1270 \subsection{Synopsis}
1271 \begin{verbatim}
1272 Executes a command as if you were at a shell.
1273 \end{verbatim}
1274 \subsection{Description}
1275 \begin{verbatim}
1276 Returns the value from a system command
1277   Example:  Set(foo=${SHELL(echo "bar")})
1278   Note:  When using the SHELL() dialplan function, your "SHELL" is /bin/sh,
1279   which may differ as to the underlying shell, depending upon your production
1280   platform.  Also keep in mind that if you are using a common path, you should
1281   be mindful of race conditions that could result from two calls running
1282   SHELL() simultaneously.
1283
1284 \end{verbatim}
1285
1286
1287 \section{SIP\_HEADER}
1288 \subsection{Syntax}
1289 \begin{verbatim}
1290 SIP_HEADER(<name>[,<number>])
1291 \end{verbatim}
1292 \subsection{Synopsis}
1293 \begin{verbatim}
1294 Gets the specified SIP header
1295 \end{verbatim}
1296 \subsection{Description}
1297 \begin{verbatim}
1298 Since there are several headers (such as Via) which can occur multiple
1299 times, SIP_HEADER takes an optional second argument to specify which header with
1300 that name to retrieve. Headers start at offset 1.
1301
1302 \end{verbatim}
1303
1304
1305 \section{SIPCHANINFO}
1306 \subsection{Syntax}
1307 \begin{verbatim}
1308 SIPCHANINFO(item)
1309 \end{verbatim}
1310 \subsection{Synopsis}
1311 \begin{verbatim}
1312 Gets the specified SIP parameter from the current channel
1313 \end{verbatim}
1314 \subsection{Description}
1315 \begin{verbatim}
1316 Valid items are:
1317 - peerip                The IP address of the peer.
1318 - recvip                The source IP address of the peer.
1319 - from                  The URI from the From: header.
1320 - uri                   The URI from the Contact: header.
1321 - useragent             The useragent.
1322 - peername              The name of the peer.
1323 - t38passthrough        1 if T38 is offered or enabled in this channel, otherwise 0
1324
1325 \end{verbatim}
1326
1327
1328 \section{SIPPEER}
1329 \subsection{Syntax}
1330 \begin{verbatim}
1331 SIPPEER(<peername>[|item])
1332 \end{verbatim}
1333 \subsection{Synopsis}
1334 \begin{verbatim}
1335 Gets SIP peer information
1336 \end{verbatim}
1337 \subsection{Description}
1338 \begin{verbatim}
1339 Valid items are:
1340 - ip (default)          The IP address.
1341 - port                  The port number
1342 - mailbox               The configured mailbox.
1343 - context               The configured context.
1344 - expire                The epoch time of the next expire.
1345 - dynamic               Is it dynamic? (yes/no).
1346 - callerid_name         The configured Caller ID name.
1347 - callerid_num          The configured Caller ID number.
1348 - callgroup             The configured Callgroup.
1349 - pickupgroup           The configured Pickupgroup.
1350 - codecs                The configured codecs.
1351 - status                Status (if qualify=yes).
1352 - regexten              Registration extension
1353 - limit                 Call limit (call-limit)
1354 - curcalls              Current amount of calls 
1355                         Only available if call-limit is set
1356 - language              Default language for peer
1357 - accountcode           Account code for this peer
1358 - useragent             Current user agent id for peer
1359 - codec[x]              Preferred codec index number 'x' (beginning with zero).
1360
1361
1362 \end{verbatim}
1363
1364
1365 \section{SORT}
1366 \subsection{Syntax}
1367 \begin{verbatim}
1368 SORT(key1:val1[...][,keyN:valN])
1369 \end{verbatim}
1370 \subsection{Synopsis}
1371 \begin{verbatim}
1372 Sorts a list of key/vals into a list of keys, based upon the vals
1373 \end{verbatim}
1374 \subsection{Description}
1375 \begin{verbatim}
1376 Takes a comma-separated list of keys and values, each separated by a colon, and returns a
1377 comma-separated list of the keys, sorted by their values.  Values will be evaluated as
1378 floating-point numbers.
1379
1380 \end{verbatim}
1381
1382
1383 \section{SPEECH}
1384 \subsection{Syntax}
1385 \begin{verbatim}
1386 SPEECH(argument)
1387 \end{verbatim}
1388 \subsection{Synopsis}
1389 \begin{verbatim}
1390 Gets information about speech recognition results.
1391 \end{verbatim}
1392 \subsection{Description}
1393 \begin{verbatim}
1394 Gets information about speech recognition results.
1395 status:   Returns 1 upon speech object existing, or 0 if not
1396 spoke:  Returns 1 if spoker spoke, or 0 if not
1397 results:  Returns number of results that were recognized
1398
1399 \end{verbatim}
1400
1401
1402 \section{SPEECH\_ENGINE}
1403 \subsection{Syntax}
1404 \begin{verbatim}
1405 SPEECH_ENGINE(name)=value
1406 \end{verbatim}
1407 \subsection{Synopsis}
1408 \begin{verbatim}
1409 Change a speech engine specific attribute.
1410 \end{verbatim}
1411 \subsection{Description}
1412 \begin{verbatim}
1413 Changes a speech engine specific attribute.
1414
1415 \end{verbatim}
1416
1417
1418 \section{SPEECH\_GRAMMAR}
1419 \subsection{Syntax}
1420 \begin{verbatim}
1421 SPEECH_GRAMMAR([nbest number/]result number)
1422 \end{verbatim}
1423 \subsection{Synopsis}
1424 \begin{verbatim}
1425 Gets the matched grammar of a result if available.
1426 \end{verbatim}
1427 \subsection{Description}
1428 \begin{verbatim}
1429 Gets the matched grammar of a result if available.
1430
1431 \end{verbatim}
1432
1433
1434 \section{SPEECH\_RESULTS\_TYPE}
1435 \subsection{Syntax}
1436 \begin{verbatim}
1437 SPEECH_RESULTS_TYPE()=results type
1438 \end{verbatim}
1439 \subsection{Synopsis}
1440 \begin{verbatim}
1441 Sets the type of results that will be returned.
1442 \end{verbatim}
1443 \subsection{Description}
1444 \begin{verbatim}
1445 Sets the type of results that will be returned. Valid options are normal or nbest.
1446 \end{verbatim}
1447
1448
1449 \section{SPEECH\_SCORE}
1450 \subsection{Syntax}
1451 \begin{verbatim}
1452 SPEECH_SCORE([nbest number/]result number)
1453 \end{verbatim}
1454 \subsection{Synopsis}
1455 \begin{verbatim}
1456 Gets the confidence score of a result.
1457 \end{verbatim}
1458 \subsection{Description}
1459 \begin{verbatim}
1460 Gets the confidence score of a result.
1461
1462 \end{verbatim}
1463
1464
1465 \section{SPEECH\_TEXT}
1466 \subsection{Syntax}
1467 \begin{verbatim}
1468 SPEECH_TEXT([nbest number/]result number)
1469 \end{verbatim}
1470 \subsection{Synopsis}
1471 \begin{verbatim}
1472 Gets the recognized text of a result.
1473 \end{verbatim}
1474 \subsection{Description}
1475 \begin{verbatim}
1476 Gets the recognized text of a result.
1477
1478 \end{verbatim}
1479
1480
1481 \section{SPRINTF}
1482 \subsection{Syntax}
1483 \begin{verbatim}
1484 SPRINTF(<format>|<arg1>[|...<argN>])
1485 \end{verbatim}
1486 \subsection{Synopsis}
1487 \begin{verbatim}
1488 Format a variable according to a format string
1489 \end{verbatim}
1490 \subsection{Description}
1491 \begin{verbatim}
1492 Parses the format string specified and returns a string matching that format.
1493 Supports most options supported by sprintf(3).  Returns a shortened string if
1494 a format specifier is not recognized.
1495
1496 \end{verbatim}
1497
1498
1499 \section{SQL\_ESC}
1500 \subsection{Syntax}
1501 \begin{verbatim}
1502 SQL_ESC(<string>)
1503 \end{verbatim}
1504 \subsection{Synopsis}
1505 \begin{verbatim}
1506 Escapes single ticks for use in SQL statements
1507 \end{verbatim}
1508 \subsection{Description}
1509 \begin{verbatim}
1510 Used in SQL templates to escape data which may contain single ticks (') which
1511 are otherwise used to delimit data.  For example:
1512 SELECT foo FROM bar WHERE baz='${SQL_ESC(${ARG1})}'
1513
1514 \end{verbatim}
1515
1516
1517 \section{STAT}
1518 \subsection{Syntax}
1519 \begin{verbatim}
1520 STAT(<flag>,<filename>)
1521 \end{verbatim}
1522 \subsection{Synopsis}
1523 \begin{verbatim}
1524 Does a check on the specified file
1525 \end{verbatim}
1526 \subsection{Description}
1527 \begin{verbatim}
1528 flag may be one of the following:
1529   d - Checks if the file is a directory
1530   e - Checks if the file exists
1531   f - Checks if the file is a regular file
1532   m - Returns the file mode (in octal)
1533   s - Returns the size (in bytes) of the file
1534   A - Returns the epoch at which the file was last accessed
1535   C - Returns the epoch at which the inode was last changed
1536   M - Returns the epoch at which the file was last modified
1537
1538 \end{verbatim}
1539
1540
1541 \section{STRFTIME}
1542 \subsection{Syntax}
1543 \begin{verbatim}
1544 STRFTIME([<epoch>][|[timezone][|format]])
1545 \end{verbatim}
1546 \subsection{Synopsis}
1547 \begin{verbatim}
1548 Returns the current date/time in a specified format.
1549 \end{verbatim}
1550 \subsection{Description}
1551 \begin{verbatim}
1552 (null)
1553 \end{verbatim}
1554
1555
1556 \section{STRPTIME}
1557 \subsection{Syntax}
1558 \begin{verbatim}
1559 STRPTIME(<datetime>|<timezone>|<format>)
1560 \end{verbatim}
1561 \subsection{Synopsis}
1562 \begin{verbatim}
1563 Returns the epoch of the arbitrary date/time string structured as described in the format.
1564 \end{verbatim}
1565 \subsection{Description}
1566 \begin{verbatim}
1567 This is useful for converting a date into an EPOCH time, possibly to pass to
1568 an application like SayUnixTime or to calculate the difference between two
1569 date strings.
1570
1571 Example:
1572   ${STRPTIME(2006-03-01 07:30:35|America/Chicago|%Y-%m-%d %H:%M:%S)} returns 1141219835
1573
1574 \end{verbatim}
1575
1576
1577 \section{TIMEOUT}
1578 \subsection{Syntax}
1579 \begin{verbatim}
1580 TIMEOUT(timeouttype)
1581 \end{verbatim}
1582 \subsection{Synopsis}
1583 \begin{verbatim}
1584 Gets or sets timeouts on the channel. Timeout values are in seconds.
1585 \end{verbatim}
1586 \subsection{Description}
1587 \begin{verbatim}
1588 Gets or sets various channel timeouts. The timeouts that can be
1589 manipulated are:
1590
1591 absolute: The absolute maximum amount of time permitted for a call.  A
1592            setting of 0 disables the timeout.
1593
1594 digit:    The maximum amount of time permitted between digits when the
1595           user is typing in an extension.  When this timeout expires,
1596           after the user has started to type in an extension, the
1597           extension will be considered complete, and will be
1598           interpreted.  Note that if an extension typed in is valid,
1599           it will not have to timeout to be tested, so typically at
1600           the expiry of this timeout, the extension will be considered
1601           invalid (and thus control would be passed to the 'i'
1602           extension, or if it doesn't exist the call would be
1603           terminated).  The default timeout is 5 seconds.
1604
1605 response: The maximum amount of time permitted after falling through a
1606            series of priorities for a channel in which the user may
1607            begin typing an extension.  If the user does not type an
1608            extension in this amount of time, control will pass to the
1609            't' extension if it exists, and if not the call would be
1610            terminated.  The default timeout is 10 seconds.
1611
1612 \end{verbatim}
1613
1614
1615 \section{TXTCIDNAME}
1616 \subsection{Syntax}
1617 \begin{verbatim}
1618 TXTCIDNAME(<number>)
1619 \end{verbatim}
1620 \subsection{Synopsis}
1621 \begin{verbatim}
1622 TXTCIDNAME looks up a caller name via DNS
1623 \end{verbatim}
1624 \subsection{Description}
1625 \begin{verbatim}
1626 This function looks up the given phone number in DNS to retrieve
1627 the caller id name.  The result will either be blank or be the value
1628 found in the TXT record in DNS.
1629
1630 \end{verbatim}
1631
1632
1633 \section{URIDECODE}
1634 \subsection{Syntax}
1635 \begin{verbatim}
1636 URIDECODE(<data>)
1637 \end{verbatim}
1638 \subsection{Synopsis}
1639 \begin{verbatim}
1640 Decodes a URI-encoded string according to RFC 2396.
1641 \end{verbatim}
1642 \subsection{Description}
1643 \begin{verbatim}
1644 (null)
1645 \end{verbatim}
1646
1647
1648 \section{URIENCODE}
1649 \subsection{Syntax}
1650 \begin{verbatim}
1651 URIENCODE(<data>)
1652 \end{verbatim}
1653 \subsection{Synopsis}
1654 \begin{verbatim}
1655 Encodes a string to URI-safe encoding according to RFC 2396.
1656 \end{verbatim}
1657 \subsection{Description}
1658 \begin{verbatim}
1659 (null)
1660 \end{verbatim}
1661
1662
1663 \section{VERSION}
1664 \subsection{Syntax}
1665 \begin{verbatim}
1666 VERSION([info])
1667 \end{verbatim}
1668 \subsection{Synopsis}
1669 \begin{verbatim}
1670 Return the Version info for this Asterisk
1671 \end{verbatim}
1672 \subsection{Description}
1673 \begin{verbatim}
1674 If there are no arguments, return the version of Asterisk in this format: SVN-branch-1.4-r44830M
1675 If the argument is 'ASTERISK_VERSION_NUM', a string of digits is returned (right now fixed at 999999).
1676 If the argument is 'BUILD_USER', the string representing the user's name whose account was used to configure Asterisk, is returned.
1677 If the argument is 'BUILD_HOSTNAME', the string representing the name of the host on which Asterisk was configured, is returned.
1678 If the argument is 'BUILD_MACHINE', the string representing the type of machine on which Asterisk was configured, is returned.
1679 If the argument is 'BUILD_OS', the string representing the OS of the machine on which Asterisk was configured, is returned.
1680 If the argument is 'BUILD_DATE', the string representing the date on which Asterisk was configured, is returned.
1681 If the argument is 'BUILD_KERNEL', the string representing the kernel version of the machine on which Asterisk was configured, is returned .
1682   Example:  Set(junky=${VERSION()}; 
1683   Sets junky to the string 'SVN-branch-1.6-r74830M', or possibly, 'SVN-trunk-r45126M'.
1684
1685 \end{verbatim}
1686
1687
1688 \section{VMCOUNT}
1689 \subsection{Syntax}
1690 \begin{verbatim}
1691 VMCOUNT(vmbox[@context][|folder])
1692 \end{verbatim}
1693 \subsection{Synopsis}
1694 \begin{verbatim}
1695 Counts the voicemail in a specified mailbox
1696 \end{verbatim}
1697 \subsection{Description}
1698 \begin{verbatim}
1699   context - defaults to "default"
1700   folder  - defaults to "INBOX"
1701
1702 \end{verbatim}
1703
1704