summaryrefslogtreecommitdiff
path: root/configs/samples/func_odbc.conf.sample
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2014-07-17 21:17:28 +0000
committerMatthew Jordan <mjordan@digium.com>2014-07-17 21:17:28 +0000
commitfc0fecb4768d696db3324bcf6dd03325bb4cd513 (patch)
tree12615f96e88382b2824d4901f6949571e41ea2e4 /configs/samples/func_odbc.conf.sample
parent1ce23d4534994fdd8bfb8ad3b9ca1884194097be (diff)
configs: Move sample config files into a subdirectory of configs
This moves all samples configs from configs/ to configs/samples. This allows for additional sets of sample configuration files to be added in the future. Review: https://reviewboard.asterisk.org/r/3804/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@418870 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'configs/samples/func_odbc.conf.sample')
-rw-r--r--configs/samples/func_odbc.conf.sample96
1 files changed, 96 insertions, 0 deletions
diff --git a/configs/samples/func_odbc.conf.sample b/configs/samples/func_odbc.conf.sample
new file mode 100644
index 000000000..fd528d216
--- /dev/null
+++ b/configs/samples/func_odbc.conf.sample
@@ -0,0 +1,96 @@
+;
+; func_odbc.conf
+;
+; Each context is a separately defined function. By convention, all
+; functions are entirely uppercase, so the defined contexts should also
+; be all-uppercase, but there is nothing that enforces this. All functions
+; are case-sensitive, however.
+;
+; For substitution, you have ${ARG1}, ${ARG2} ... ${ARGn}
+; for the arguments to each SQL statement.
+;
+; In addition, for write statements, you have ${VAL1}, ${VAL2} ... ${VALn}
+; parsed, just like arguments, for the values. In addition, if you want the
+; whole value, never mind the parsing, you can get that with ${VALUE}.
+;
+;
+; If you have data which may potentially contain single ticks, you may wish
+; to use the dialplan function SQL_ESC() to escape the data prior to its
+; inclusion in the SQL statement.
+;
+;
+; The following options are available in this configuration file:
+;
+; readhandle A comma-separated list of DSNs (from res_odbc.conf) to use when
+; executing the readsql statement. Each DSN is tried, in
+; succession, until the statement succeeds. You may specify up to
+; 5 DSNs per function class. If not specified, it will default to
+; the value of writehandle or dsn, if specified.
+; writehandle A comma-separated list of DSNs (from res_odbc.conf) to use when
+; executing the writesql statement. The same rules apply as to
+; readhandle. "dsn" is a synonym for "writehandle".
+; readsql The statement to execute when reading from the function class.
+; writesql The statement to execute when writing to the function class.
+; insertsql The statement to execute when writing to the function class
+; succeeds, but initially indicates that 0 rows were affected.
+; prefix Normally, all function classes are prefixed with "ODBC" to keep
+; them uniquely named. You may choose to change this prefix, which
+; may be useful to segregate a collection of certain function
+; classes from others.
+; escapecommas This option may be used to turn off the default behavior of
+; escaping commas which occur within a field. If commas are
+; escaped (the default behavior), then fields containing commas
+; will be treated as a single value when assigning to ARRAY() or
+; HASH(). If commas are not escaped, then values will be separated
+; at the comma within fields. Please note that turning this option
+; off is incompatible with the functionality of HASH().
+; synopsis Appears in the synopsis field for the command
+; 'core show function <function name>'
+; mode This option may be set to 'multirow' to allow the function
+; specified to return more than a single row. However, this
+; changes the way that func_odbc normally works. Instead of the
+; invocation of the function returning a row, it returns an opaque
+; ID, which may be passed to ODBC_FETCH() to return each row in
+; turn. ODBC_FETCH_STATUS returns SUCCESS or FAILURE, to indicate
+; whether any results were stored, and you should call ODBC_Finish
+; on the ID to clean up any remaining results when you are done
+; with the query. Also, the variable ODBCROWS is set initially,
+; which may be used in an iterative fashion to return each row in
+; the result.
+; Please note that multirow queries are isolated to the channel,
+; and rows may not be fetched outside of the channel where the
+; query was initially performed. Additionally, as the results are
+; associated with a channel, mode=multirow is incompatible with
+; the global space.
+; rowlimit Rowlimit limits the total number of rows which can be stored for
+; that query. For mode=multirow, otherwise, func_odbc will
+; attempt to store all rows in the resultset, up to the maximum
+; amount of memory. In normal mode, rowlimit can be set to allow
+; additional rows to be fetched, rather than just the first one.
+; These additional rows can be returned by using the name of the
+; function which was called to retrieve the first row as an
+; argument to ODBC_FETCH().
+
+
+; ODBC_SQL - Allow an SQL statement to be built entirely in the dialplan
+[SQL]
+dsn=mysql1
+readsql=${ARG1}
+
+; ODBC_ANTIGF - A blacklist.
+[ANTIGF]
+dsn=mysql1,mysql2 ; Use mysql1 as the primary handle, but fall back to mysql2
+ ; if mysql1 is down. Supports up to 5 comma-separated
+ ; DSNs. "dsn" may also be specified as "readhandle" and
+ ; "writehandle", if it is important to separate reads and
+ ; writes to different databases.
+readsql=SELECT COUNT(*) FROM exgirlfriends WHERE callerid='${SQL_ESC(${ARG1})}'
+syntax=<callerid>
+synopsis=Check if a specified callerid is contained in the ex-gf database
+
+; ODBC_PRESENCE - Retrieve and update presence
+[PRESENCE]
+dsn=mysql1
+readsql=SELECT location FROM presence WHERE id='${SQL_ESC(${ARG1})}'
+writesql=UPDATE presence SET location='${SQL_ESC(${VAL1})}' WHERE id='${SQL_ESC(${ARG1})}'
+