chan_sip: Allow Asterisk to retry after 403 on register
[asterisk/asterisk.git] / configs / dundi.conf.sample
old mode 100755 (executable)
new mode 100644 (file)
index a435af8..70f97d4
@@ -1,6 +1,8 @@
 ;
 ; DUNDi configuration file
 ;
+; For more information about DUNDi, see http://www.dundi.com
+;
 ;
 [general]
 ;
 ;bindaddr=0.0.0.0
 ;port=4520
 ;
+; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for a description of the tos parameter.
+;tos=ef
+;
 ; Our entity identifier (Should generally be the MAC address of the
 ; machine it's running on.  Defaults to the first eth address, but you
 ; can override it here, as long as you set it to the MAC of *something*
-; you own!)
+; you own!)  The EID can be overridden by a setting in asterisk.conf,
+; or by setting this option.
 ;
 ;entityid=00:07:E9:3B:76:60
 ;
-; Define the max depth in which to search the DUNDi system (also max # of 
-; seconds to wait for a reply)
+; Peers shall cache our query responses for the specified time,
+; given in seconds. Default is 3600.
+;
+;cachetime=3600
+;
+; This defines the max depth in which to search the DUNDi system.
+; Note that the maximum time that we will wait for a response is
+; (2000 + 200 * ttl) ms.
 ;
 ttl=32
 ;
-; If we don't get ACK to our DPREQUEST within 2000ms, and autokill is set
-; to yes, then we cancel the whole thing (that's enough time for one 
+; If we don't get ACK to our DPDISCOVER within 2000ms, and autokill is set
+; to yes, then we cancel the whole thing (that's enough time for one
 ; retransmission only).  This is used to keep things from stalling for a long
-; time for a host that is not available, but would be ill advised for bad 
+; time for a host that is not available, but would be ill advised for bad
 ; connections.  In addition to 'yes' or 'no' you can also specify a number
 ; of milliseconds.  See 'qualify' for individual peers to turn on for just
 ; a specific peer.
@@ -48,7 +60,7 @@ ttl=32
 autokill=yes
 ;
 ; pbx_dundi creates a rotating key called "secret", under the family
-; 'secretpath'.  The default family is dundi (resulting in 
+; 'secretpath'.  The default family is dundi (resulting in
 ; the key being held at dundi/secret).
 ;
 ;secretpath=dundi
@@ -60,28 +72,34 @@ autokill=yes
 ; for the purpose of tracking slow nodes.  This option is
 ; off by default due to performance impacts.
 ;
-;slowhistory=yes
+;storehistory=yes
 
 [mappings]
 ;
 ; The "mappings" section maps DUNDi contexts
 ; to contexts on the local asterisk system.  Remember
-; that numbers that are made available under the e164 
-; DUNDi context are regulated by the DUNDi General Peering 
+; that numbers that are made available under the e164
+; DUNDi context are regulated by the DUNDi General Peering
 ; Agreement (GPA) if you are a member of the DUNDi E.164
 ; Peering System.
 ;
 ; dundi_context => local_context,weight,tech,dest[,options]]
 ;
-; dundi_context is the name of the context being requested
+; 'dundi_context' is the name of the context being requested
 ; within the DUNDi request
 ;
-; local_context is the name of the context on the local system
+; 'local_context' is the name of the context on the local system
 ; in which numbers can be looked up for which responses shall be given.
 ;
-; tech is the technology to use (IAX, SIP, H323)
+; 'weight' is the weight to use for the responses provided from this
+; mapping.  The number must be >= 0 and < 60000.  Since it is totally
+; valid to receive multiple responses to a query, responses received
+; with a lower weight are tried first.  Note that the weight has a
+; special meaning in the e164 context - see the GPA for more details.
 ;
-; dest is the destination to supply for reaching that number.  The
+; 'tech' is the technology to use (IAX, SIP, H323)
+;
+; 'dest' is the destination to supply for reaching that number.  The
 ; following variables can be used in the destination string and will
 ; be automatically substituted:
 ; ${NUMBER}: The number being requested
@@ -90,14 +108,14 @@ autokill=yes
 ;
 ; Further options may include:
 ;
-; nounsolicited:  No unsolicited calls of any type permitted via this 
+; nounsolicited:  No unsolicited calls of any type permitted via this
 ;                 route
-; nocomunsolicit: No commercial unsolicited calls permitted via 
+; nocomunsolicit: No commercial unsolicited calls permitted via
 ;                 this route
 ; residential:    This number is known to be a residence
 ; commercial:     This number is known to be a business
 ; mobile:         This number is known to be a mobile phone
-; nocomunsolicit: No commercial unsolicited calls permitted via 
+; nocomunsolicit: No commercial unsolicited calls permitted via
 ;                 this route
 ; nopartial:      Do not search for partial matches
 ;
@@ -111,8 +129,31 @@ autokill=yes
 ;digexten => default,0,IAX2,guest@lappy/${NUMBER}
 ;asdf =>
 
-
 ;
+; Weights for mappings can be set a few different ways:
+;
+; 1) It can be set as a static number.
+;testmap1 => context1,222,IAX2,guest@peer1/${NUMBER}
+;
+; 2) It can be an Asterisk global variable.
+;testmap2 => context2,${DUNDITESTVAR},IAX2,guest@peer2${NUMBER}
+;
+; 3) It can be retrieved using a dialplan function.  This can be extremely
+;    useful if you want to let an external script decide what the weight
+;    in a response shouuld be.
+;testmap3 => context3,${SHELL(echo 123)},IAX2,guest@peer3/${NUMBER}
+;
+; The built in variables ${SECRET}, ${IPADDR} and ${NUMBER} can also be
+; passed to the weight. For example, you could pass the ${NUMBER} value
+; to your SHELL() script and use that to dynamically return a weight.
+;
+; Note than when using a global variable or dialplan function to set the
+; weight for a mapping, that response caching should be disabled if you
+; plan for these values to change frequently at all.  If the results are
+; cached, then any change in value will not take effect until the cache
+; has expired.
+;
+
 ;
 ; The remaining sections represent the peers
 ; that we fundamentally trust.  The section name
@@ -126,15 +167,18 @@ autokill=yes
 ;
 ; host - What their host is
 ;
-; order - What search order to use.  May be 'primary', 'secondary', 
+; port - The port where their host is listening (default: 4520)
+;
+; order - What search order to use.  May be 'primary', 'secondary',
 ;         'tertiary' or 'quartiary'.  In large systems, it is beneficial
 ;         to only query one up-stream host in order to maximize caching
 ;         value.  Adding one with primary and one with secondary gives you
-;         redundancy without sacraficing performance.
+;         redundancy without sacrificing performance.
 ;
 ; include - Includes this peer when searching a particular context
 ;           for lookup (set "all" to perform all lookups with that
-;           host.
+;           host.  This is also the context in which peers are permitted
+;           to precache.
 ;
 ; noinclude - Disincludes this peer when searching a particular context
 ;             for lookup (set "all" to perform no lookups with that
@@ -142,17 +186,28 @@ autokill=yes
 ;
 ; permit - Permits this peer to search a given DUNDi context on
 ;          the local system.  Set "all" to permit this host to
-;          lookup all contexts.
+;          lookup all contexts.  This is also a context for which
+;          we will create/forward PRECACHE commands.
 ;
 ; deny -   Denies this peer to search a given DUNDi context on
 ;          the local system.  Set "all" to deny this host to
 ;          lookup all contexts.
 ;
-; model - inbound, outbound, or symmetric for whether we receive 
+; model - inbound, outbound, or symmetric for whether we receive
 ;         requests only, transmit requests only, or do both.
 ;
-; canprecache - Permits this peer to provide answers (which are cached)
-;               for queries we did not make (a.k.a. pre-caching)
+; precache - Utilize/Permit precaching with this peer (to pre
+;            cache means to provide an answer when no request
+;            was made and is used so that machines with few
+;            routes can push those routes up a to a higher level).
+;            outgoing means we send precache routes to this peer,
+;            incoming means we permit this peer to send us
+;            precache routes.  symmetric means we do both.
+;
+; Note: You cannot mix symmetric/outbound model with symmetric/inbound
+; precache, nor can you mix symmetric/inbound model with symmetric/outbound
+; precache.
+;
 ;
 ; The '*' peer is special and matches an unspecified entity
 ;
@@ -160,14 +215,14 @@ autokill=yes
 ;
 ; Sample Primary e164 DUNDi peer
 ;
-[00:50:8B:F3:75:BB]
-model = symmetric
-host = 64.215.96.114
-inkey = digium
-outkey = misery
-include = e164
-permit = e164
-qualify = yes
+;[00:50:8B:F3:75:BB]
+;model = symmetric
+;host = 64.215.96.114
+;inkey = digium
+;outkey = misery
+;include = e164
+;permit = e164
+;qualify = yes
 
 ;
 ; Sample Secondary e164 DUNDi peer
@@ -182,6 +237,32 @@ qualify = yes
 ;qualify = yes
 ;order = secondary
 
+;
+; Sample "push mode" downstream host
+;
+;[00:0C:76:96:75:28]
+;model = inbound
+;host = dynamic
+;precache = inbound
+;inkey = littleguy
+;outkey = ourkey
+;include = e164        ; In this case used only for precaching
+;permit = e164
+;qualify = yes
+
+;
+; Sample "push mode" upstream host
+;
+;[00:07:E9:3B:76:60]
+;model = outbound
+;precache = outbound
+;host = 216.207.245.34
+;register = yes
+;inkey = dhcp34
+;permit = all ; In this case used only for precaching
+;include = all
+;qualify = yes
+;outkey=foo
 
 ;[*]
 ;