Add new README.configuration (bug #3527)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4984 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
parent
82f3b72c8e
commit
456b661871
|
@ -0,0 +1,145 @@
|
||||||
|
Asterisk Configuration Parser (version 1.1 and later)
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
|
The Asterisk configuration parser in the 1.1 development version (1.2
|
||||||
|
stable) and beyond series has been improved in a number of ways. In
|
||||||
|
addition to the realtime architecture, we now have the ability to create
|
||||||
|
templates in configuration files, and use these as templates when we
|
||||||
|
configure phones, voicemail accounts and queues.
|
||||||
|
|
||||||
|
This changes are general to the configuration parser, and works in
|
||||||
|
all configuration files.
|
||||||
|
|
||||||
|
General syntax
|
||||||
|
--------------
|
||||||
|
Asterisk configuration files are defined as follows:
|
||||||
|
|
||||||
|
[section]
|
||||||
|
label = value
|
||||||
|
label2 = value
|
||||||
|
|
||||||
|
In some files, (e.g. mgcp.conf, zapata.conf and agents.conf), the syntax
|
||||||
|
is a bit different. In these files the syntax is as follows:
|
||||||
|
|
||||||
|
[section]
|
||||||
|
label1 = value1
|
||||||
|
label2 = value2
|
||||||
|
object => name
|
||||||
|
|
||||||
|
label3 = value3
|
||||||
|
label2 = value4
|
||||||
|
object2 => name2
|
||||||
|
|
||||||
|
In this syntax, we create objects with the settings defined above the object
|
||||||
|
creation. Note that settings are inherited from the top, so in the example
|
||||||
|
above object2 has inherited the setting for "label1" from the first object.
|
||||||
|
|
||||||
|
For template configurations, the syntax for defining a section is changed
|
||||||
|
to
|
||||||
|
[section](options)
|
||||||
|
label = value
|
||||||
|
|
||||||
|
The options field is used to define templates, refer to templates and hide
|
||||||
|
templates. Any object can be used as a template.
|
||||||
|
|
||||||
|
No whitespace is allowed between the closing "]" and the parenthesis "(".
|
||||||
|
|
||||||
|
|
||||||
|
Adding to an existing section
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
[section]
|
||||||
|
label = value
|
||||||
|
|
||||||
|
[section](+)
|
||||||
|
label2 = value2
|
||||||
|
|
||||||
|
In this case, the plus sign indicates that the second section (with the
|
||||||
|
same name) is an addition to the first section. The second section can
|
||||||
|
be in another file (by using the #include statement). If the section
|
||||||
|
name referred to before the plus is missing, the configuration will fail
|
||||||
|
to load.
|
||||||
|
|
||||||
|
Defining a template-only section
|
||||||
|
--------------------------------
|
||||||
|
[section](!)
|
||||||
|
label = value
|
||||||
|
|
||||||
|
The exclamation mark indicates to the config parser that this is a only
|
||||||
|
a template and should not itself be used by the Asterisk module for
|
||||||
|
configuration. The section can be inherited by other sections (see
|
||||||
|
section "Using templates" below) but is not used by itself.
|
||||||
|
|
||||||
|
Using templates (or other configuration sections)
|
||||||
|
-------------------------------------------------
|
||||||
|
[section](name[,name])
|
||||||
|
label = value
|
||||||
|
|
||||||
|
The name within the parenthesis refers to other sections, either
|
||||||
|
templates or standard sections. The referred sections are included
|
||||||
|
before the configuration engine parses the local settings within the
|
||||||
|
section as though their entire contents (and anything they were
|
||||||
|
previously based upon) were included in the new section. For example
|
||||||
|
consider the following:
|
||||||
|
|
||||||
|
[foo]
|
||||||
|
permit=192.168.0.2
|
||||||
|
host=asdf
|
||||||
|
deny=192.168.0.1
|
||||||
|
|
||||||
|
[bar]
|
||||||
|
permit=192.168.1.2
|
||||||
|
host=jkl
|
||||||
|
deny=192.168.1.1
|
||||||
|
|
||||||
|
[baz](foo,bar)
|
||||||
|
permit=192.168.3.1
|
||||||
|
host=bnm
|
||||||
|
|
||||||
|
The [baz] section will be processed as though it had been written in the
|
||||||
|
following way:
|
||||||
|
|
||||||
|
[baz]
|
||||||
|
permit=192.168.0.2
|
||||||
|
host=asdf
|
||||||
|
deny=192.168.0.1
|
||||||
|
permit=192.168.1.2
|
||||||
|
host=jkl
|
||||||
|
deny=192.168.1.1
|
||||||
|
permit=192.168.3.1
|
||||||
|
host=bnm
|
||||||
|
|
||||||
|
Additional Examples:
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
(in top-level sip.conf)
|
||||||
|
|
||||||
|
[defaults](!)
|
||||||
|
type=friend
|
||||||
|
nat=yes
|
||||||
|
qualify=on
|
||||||
|
dtmfmode=rfc2833
|
||||||
|
disallow=all
|
||||||
|
allow=alaw
|
||||||
|
|
||||||
|
#include accounts/*/sip.conf
|
||||||
|
|
||||||
|
(in accounts/customer1/sip.conf)
|
||||||
|
|
||||||
|
[def-customer1](!,defaults)
|
||||||
|
secret=this_is_not_secret
|
||||||
|
context=from-customer1
|
||||||
|
callerid=Customer 1 <300>
|
||||||
|
accountcode=0001
|
||||||
|
|
||||||
|
[phone1](def-customer1)
|
||||||
|
mailbox=phone1@customer1
|
||||||
|
|
||||||
|
[phone2](def-customer1)
|
||||||
|
mailbox=phone2@customer1
|
||||||
|
|
||||||
|
This example defines two phones - phone1 and phone2 with settings
|
||||||
|
inherited from "def-customer1". The "def-customer1" is a template that
|
||||||
|
inherits from "defaults", which also is a template.
|
||||||
|
|
||||||
|
|
Reference in New Issue