Asterisk.org: Developer Documentation (28 Oct 2009)

Wed Oct 28 15:49:24 2009

## Asterisk developer's documentation

# DUNDi Configuration

- See also DUNDi

## dundi.conf

    ;
    ; DUNDi configuration file
    ;
    ; For more information about DUNDi, see http://www.dundi.com
    ;
    ;
    [general]
    ;
    ; The "general" section contains general parameters relating
    ; to the operation of the dundi client and server.
    ;
    ; The first part should be your complete contact information
    ; should someone else in your peer group need to contact you.
    ;
    ;department=Your Department
    ;organization=Your Company, Inc.
    ;locality=Your City
    ;stateprov=ST
    ;country=US
    ;email=your@email.com
    ;phone=+12565551212
    ;
    ;
    ; Specify bind address and port number.  Default is
    ; 4520
    ;
    ;bindaddr=0.0.0.0
    ;port=4520
    ;
    ; 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!)
    ;
    ;entityid=00:07:E9:3B:76:60
    ;
    ; 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 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
    ; 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.
    ;
    autokill=yes
    ;
    ; pbx_dundi creates a rotating key called "secret", under the family
    ; 'secretpath'.  The default family is dundi (resulting in
    ; the key being held at dundi/secret).
    ;
    ;secretpath=dundi
    ;
    ; The 'storehistory' option (also changeable at runtime with
    ; 'dundi store history' and 'dundi no store history') will
    ; cause the DUNDi engine to keep track of the last several
    ; queries and the amount of time each query took to execute
    ; for the purpose of tracking slow nodes.  This option is
    ; off by default due to performance impacts.
    ;
    ;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
    ; 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
    ; within the DUNDi request
    ;
    ; '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.
    ;
    ; '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.
    ;
    ; '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
    ; ${IPADDR}: The IP address to connect to
    ; ${SECRET}: The current rotating secret key to be used
    ;
    ; Further options may include:
    ;
    ; nounsolicited:  No unsolicited calls of any type permitted via this
    ;                 route
    ; 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
    ;                 this route
    ; nopartial:      Do not search for partial matches
    ;
    ; There *must* exist an entry in mappings for DUNDi to respond
    ; to any request, although it may be empty.
    ;
    ;e164 => dundi-e164-canonical,0,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
    ;e164 => dundi-e164-customers,100,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
    ;e164 => dundi-e164-via-pstn,400,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial

    ;digexten => default,0,IAX2,guest@lappy/${NUMBER}
    ;asdf =>

    ;
    ;
    ; The remaining sections represent the peers
    ; that we fundamentally trust.  The section name
    ; represents the name and optionally at a specific
    ; DUNDi context if you want the trust to be established
    ; for only a specific DUNDi context.
    ;
    ; inkey - What key they will be authenticating to us with
    ;
    ; outkey - What key we use to authenticate to them
    ;
    ; host - What their host is
    ;
    ; 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 sacrificing performance.
    ;
    ; include - Includes this peer when searching a particular context
    ;           for lookup (set "all" to perform all lookups with that
    ;           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
    ;             host.
    ;
    ; permit - Permits this peer to search a given DUNDi context on
    ;          the local system.  Set "all" to permit this host to
    ;          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
    ;         requests only, transmit requests only, or do both.
    ;
    ; 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
    ;

    ;
    ; 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

    ;
    ; Sample Secondary e164 DUNDi peer
    ;
    ;[00:A0:C9:96:92:84]
    ;model = symmetric
    ;host = misery.digium.com
    ;inkey = misery
    ;outkey = ourkey
    ;include = e164
    ;permit = e164
    ;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

    ;[*]
    ;