Templates are a means to avoid repetitive sections in Asterisk configuration files
like extensions.conf, sip.conf or iax.conf. Templates are not to be confused with
macros in extensions.conf.
For template configurations, the syntax for defining a section is as follows:
[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
(this is actually not template-related, but still an interesting method)
[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.
Example 1
[tpl_ext](!) ; a template
dtmfmode=rfc2833
context=from-internal
type=friend
disallow=all
allow=gsm
qualify=yes
host=dynamic
[1000](tpl_ext)
secret=1000
callcounter=yes ; Enable call counter
busylevel=1
Example 2
[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
Example 3
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
Tuesday, December 27, 2011
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment