123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- <?xml version="1.0" encoding='ISO-8859-1'?>
- <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
- "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
- <!-- Include general documentation entities -->
- <!ENTITY % docentities SYSTEM "../../../docbook/entities.xml">
- %docentities;
- ]>
- <!-- Module User's Guide -->
- <chapter>
-
- <title>&adminguide;</title>
-
- <section>
- <title>Overview</title>
- <para>
- The ALIAS_DB module can be used as an alternative for user aliases
- via usrloc. The main feature is that it does not store all addiacent
- data as for user location and always uses the database for search (no
- memory caching). A common use case is to provide additional user
- aliases, i.e. to supplement the registration in the location database.
- Users are this way on a proxy reachable with several request URIs.
- </para>
- <para>
- As the module use no memory caching the lookup is a bit slower but the
- data provisioning is easier. With very fast databases like MySQL the speed
- penalty can be lowered. Also, the search can be performed on different
- tables in the same script.
- </para>
- </section>
- <section>
- <title>Dependencies</title>
- <section>
- <title>&kamailio; Modules</title>
- <para>
- The following modules must be loaded before this module:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>database module</emphasis> (mysql, dbtext, ...).
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </section>
- <section>
- <title>External Libraries or Applications</title>
- <para>
- The following libraries or applications must be installed before
- running &kamailio; with this module loaded:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>None</emphasis>.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </section>
- </section>
- <section>
- <title>Parameters</title>
- <section>
- <title><varname>db_url</varname> (str)</title>
- <para>
- Database URL.
- </para>
- <para>
- <emphasis>
- Default value is <quote>&defaultrodb;</quote>.
- </emphasis>
- </para>
- <example>
- <title>Set <varname>db_url</varname> parameter</title>
- <programlisting format="linespecific">
- ...
- modparam("alias_db", "db_url", "&exampledb;")
- ...
- </programlisting>
- </example>
- </section>
-
- <section>
- <title><varname>user_column</varname> (str)</title>
- <para>
- Name of the column storing username.
- </para>
- <para>
- <emphasis>
- Default value is <quote>username</quote>.
- </emphasis>
- </para>
- <example>
- <title>Set <varname>user_column</varname> parameter</title>
- <programlisting format="linespecific">
- ...
- modparam("alias_db", "user_column", "susername")
- ...
- </programlisting>
- </example>
- </section>
-
- <section>
- <title><varname>domain_column</varname> (str)</title>
- <para>
- Name of the column storing user's domain.
- </para>
- <para>
- <emphasis>
- Default value is <quote>domain</quote>.
- </emphasis>
- </para>
- <example>
- <title>Set <varname>domain_column</varname> parameter</title>
- <programlisting format="linespecific">
- ...
- modparam("alias_db", "domain_column", "sdomain")
- ...
- </programlisting>
- </example>
- </section>
-
- <section>
- <title><varname>alias_user_column</varname> (str)</title>
- <para>
- Name of the column storing alias username.
- </para>
- <para>
- <emphasis>
- Default value is <quote>alias_username</quote>.
- </emphasis>
- </para>
- <example>
- <title>Set <varname>alias_user_column</varname> parameter</title>
- <programlisting format="linespecific">
- ...
- modparam("alias_db", "alias_user_column", "auser")
- ...
- </programlisting>
- </example>
- </section>
-
- <section>
- <title><varname>alias_domain_column</varname> (str)</title>
- <para>
- Name of the column storing alias domain.
- </para>
- <para>
- <emphasis>
- Default value is <quote>alias_domain</quote>.
- </emphasis>
- </para>
- <example>
- <title>Set <varname>alias_domain_column</varname> parameter</title>
- <programlisting format="linespecific">
- ...
- modparam("alias_db", "alias_domain_column", "adomain")
- ...
- </programlisting>
- </example>
- </section>
-
- <section>
- <title><varname>use_domain</varname> (int)</title>
- <para>
- Specifies whether to use or not the domain from R-URI when searching
- for alias. If set to 0, the domain from R-URI is not used, if set to
- 1 the domain from R-URI is used.
- </para>
- <para>
- <emphasis>
- Default value is <quote>0</quote>.
- </emphasis>
- </para>
- <example>
- <title>Set <varname>use_domain</varname> parameter</title>
- <programlisting format="linespecific">
- ...
- modparam("alias_db", "use_domain", 1)
- ...
- </programlisting>
- </example>
- </section>
-
- <section>
- <title><varname>domain_prefix</varname> (str)</title>
- <para>
- Specifies the prefix to be stripped from the domain in R-URI before
- doing the search.
- </para>
- <para>
- <emphasis>
- Default value is <quote>NULL</quote>.
- </emphasis>
- </para>
- <example>
- <title>Set <varname>domain_prefix</varname> parameter</title>
- <programlisting format="linespecific">
- ...
- modparam("alias_db", "domain_prefix", "sip.")
- ...
- </programlisting>
- </example>
- </section>
-
- <section>
- <title><varname>append_branches</varname> (int)</title>
- <para>
- If the alias resolves to many SIP IDs, the first is replacing
- the R-URI, the rest are added as branches.
- </para>
- <para>
- <emphasis>
- Default value is <quote>0</quote> (0 - don't add branches;
- 1 - add branches).
- </emphasis>
- </para>
- <example>
- <title>Set <varname>append_branches</varname> parameter</title>
- <programlisting format="linespecific">
- ...
- modparam("alias_db", "append_branches", 1)
- ...
- </programlisting>
- </example>
- </section>
- </section>
-
- <section>
- <title>Functions</title>
- <section>
- <title>
- <function moreinfo="none">alias_db_lookup(table_name)</function>
- </title>
- <para>
- The function takes the R-URI and search to see whether it is an alias
- or not. If it is an alias for a local user, the R-URI is replaced with
- user's SIP uri.
- </para>
- <para>
- The function returns TRUE if R-URI is alias and it was replaced by
- user's SIP uri.
- </para>
- <para>Meaning of the parameters is as follows:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>table_name</emphasis> - the name of the table
- where to search for alias. It can include pseudo-variables.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
- </para>
- <example>
- <title><function>alias_db_lookup()</function> usage</title>
- <programlisting format="linespecific">
- ...
- alias_db_lookup("dbaliases");
- alias_db_lookup("dba_$(rU{s.substr,0,1})");
- ...
- </programlisting>
- </example>
- </section>
- </section>
- </chapter>
|