michael@202: ; michael@202: ; DUNDi configuration file michael@202: ; michael@202: ; For more information about DUNDi, see http://www.dundi.com michael@202: ; michael@202: ; michael@202: ;[general] michael@202: ; michael@202: ; The "general" section contains general parameters relating michael@202: ; to the operation of the dundi client and server. michael@202: ; michael@202: ; The first part should be your complete contact information michael@202: ; should someone else in your peer group need to contact you. michael@202: ; michael@202: ;department=Your Department michael@202: ;organization=Your Company, Inc. michael@202: ;locality=Your City michael@202: ;stateprov=ST michael@202: ;country=US michael@202: ;email=your@email.com michael@202: ;phone=+12565551212 michael@202: ; michael@202: ; michael@202: ; Specify bind address and port number. Default is michael@202: ; 4520 michael@202: ; michael@202: ;bindaddr=0.0.0.0 michael@202: ;port=4520 michael@202: ; michael@202: ; Our entity identifier (Should generally be the MAC address of the michael@202: ; machine it's running on. Defaults to the first eth address, but you michael@202: ; can override it here, as long as you set it to the MAC of *something* michael@202: ; you own!) michael@202: ; michael@202: ;entityid=00:07:E9:3B:76:60 michael@202: ; michael@202: ; Peers shall cache our query responses for the specified time, michael@202: ; given in seconds. Default is 3600. michael@202: ; michael@202: ;cachetime=3600 michael@202: ; michael@202: ; This defines the max depth in which to search the DUNDi system. michael@202: ; Note that the maximum time that we will wait for a response is michael@202: ; (2000 + 200 * ttl) ms. michael@202: ; michael@202: ;ttl=32 michael@202: ; michael@202: ; If we don't get ACK to our DPDISCOVER within 2000ms, and autokill is set michael@202: ; to yes, then we cancel the whole thing (that's enough time for one michael@202: ; retransmission only). This is used to keep things from stalling for a long michael@202: ; time for a host that is not available, but would be ill advised for bad michael@202: ; connections. In addition to 'yes' or 'no' you can also specify a number michael@202: ; of milliseconds. See 'qualify' for individual peers to turn on for just michael@202: ; a specific peer. michael@202: ; michael@202: ;autokill=yes michael@202: ; michael@202: ; pbx_dundi creates a rotating key called "secret", under the family michael@202: ; 'secretpath'. The default family is dundi (resulting in michael@202: ; the key being held at dundi/secret). michael@202: ; michael@202: ;secretpath=dundi michael@202: ; michael@202: ; The 'storehistory' option (also changeable at runtime with michael@202: ; 'dundi store history' and 'dundi no store history') will michael@202: ; cause the DUNDi engine to keep track of the last several michael@202: ; queries and the amount of time each query took to execute michael@202: ; for the purpose of tracking slow nodes. This option is michael@202: ; off by default due to performance impacts. michael@202: ; michael@202: ;storehistory=yes michael@202: michael@202: ;[mappings] michael@202: ; michael@202: ; The "mappings" section maps DUNDi contexts michael@202: ; to contexts on the local asterisk system. Remember michael@202: ; that numbers that are made available under the e164 michael@202: ; DUNDi context are regulated by the DUNDi General Peering michael@202: ; Agreement (GPA) if you are a member of the DUNDi E.164 michael@202: ; Peering System. michael@202: ; michael@202: ; dundi_context => local_context,weight,tech,dest[,options]] michael@202: ; michael@202: ; 'dundi_context' is the name of the context being requested michael@202: ; within the DUNDi request michael@202: ; michael@202: ; 'local_context' is the name of the context on the local system michael@202: ; in which numbers can be looked up for which responses shall be given. michael@202: ; michael@202: ; 'weight' is the weight to use for the responses provided from this michael@202: ; mapping. The number must be >= 0 and < 60000. Since it is totally michael@202: ; valid to receive multiple responses to a query, responses received michael@202: ; with a lower weight are tried first. Note that the weight has a michael@202: ; special meaning in the e164 context - see the GPA for more details. michael@202: ; michael@202: ; 'tech' is the technology to use (IAX, SIP, H323) michael@202: ; michael@202: ; 'dest' is the destination to supply for reaching that number. The michael@202: ; following variables can be used in the destination string and will michael@202: ; be automatically substituted: michael@202: ; ${NUMBER}: The number being requested michael@202: ; ${IPADDR}: The IP address to connect to michael@202: ; ${SECRET}: The current rotating secret key to be used michael@202: ; michael@202: ; Further options may include: michael@202: ; michael@202: ; nounsolicited: No unsolicited calls of any type permitted via this michael@202: ; route michael@202: ; nocomunsolicit: No commercial unsolicited calls permitted via michael@202: ; this route michael@202: ; residential: This number is known to be a residence michael@202: ; commercial: This number is known to be a business michael@202: ; mobile: This number is known to be a mobile phone michael@202: ; nocomunsolicit: No commercial unsolicited calls permitted via michael@202: ; this route michael@202: ; nopartial: Do not search for partial matches michael@202: ; michael@202: ; There *must* exist an entry in mappings for DUNDi to respond michael@202: ; to any request, although it may be empty. michael@202: ; michael@202: ;e164 => dundi-e164-canonical,0,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial michael@202: ;e164 => dundi-e164-customers,100,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial michael@202: ;e164 => dundi-e164-via-pstn,400,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial michael@202: michael@202: ;digexten => default,0,IAX2,guest@lappy/${NUMBER} michael@202: ;asdf => michael@202: michael@202: michael@202: ; michael@202: ; michael@202: ; The remaining sections represent the peers michael@202: ; that we fundamentally trust. The section name michael@202: ; represents the name and optionally at a specific michael@202: ; DUNDi context if you want the trust to be established michael@202: ; for only a specific DUNDi context. michael@202: ; michael@202: ; inkey - What key they will be authenticating to us with michael@202: ; michael@202: ; outkey - What key we use to authenticate to them michael@202: ; michael@202: ; host - What their host is michael@202: ; michael@202: ; order - What search order to use. May be 'primary', 'secondary', michael@202: ; 'tertiary' or 'quartiary'. In large systems, it is beneficial michael@202: ; to only query one up-stream host in order to maximize caching michael@202: ; value. Adding one with primary and one with secondary gives you michael@202: ; redundancy without sacrificing performance. michael@202: ; michael@202: ; include - Includes this peer when searching a particular context michael@202: ; for lookup (set "all" to perform all lookups with that michael@202: ; host. This is also the context in which peers are permitted michael@202: ; to precache. michael@202: ; michael@202: ; noinclude - Disincludes this peer when searching a particular context michael@202: ; for lookup (set "all" to perform no lookups with that michael@202: ; host. michael@202: ; michael@202: ; permit - Permits this peer to search a given DUNDi context on michael@202: ; the local system. Set "all" to permit this host to michael@202: ; lookup all contexts. This is also a context for which michael@202: ; we will create/forward PRECACHE commands. michael@202: ; michael@202: ; deny - Denies this peer to search a given DUNDi context on michael@202: ; the local system. Set "all" to deny this host to michael@202: ; lookup all contexts. michael@202: ; michael@202: ; model - inbound, outbound, or symmetric for whether we receive michael@202: ; requests only, transmit requests only, or do both. michael@202: ; michael@202: ; precache - Utilize/Permit precaching with this peer (to pre michael@202: ; cache means to provide an answer when no request michael@202: ; was made and is used so that machines with few michael@202: ; routes can push those routes up a to a higher level). michael@202: ; outgoing means we send precache routes to this peer, michael@202: ; incoming means we permit this peer to send us michael@202: ; precache routes. symmetric means we do both. michael@202: ; michael@202: ; Note: You cannot mix symmetric/outbound model with symmetric/inbound michael@202: ; precache, nor can you mix symmetric/inbound model with symmetric/outbound michael@202: ; precache. michael@202: ; michael@202: ; michael@202: ; The '*' peer is special and matches an unspecified entity michael@202: ; michael@202: michael@202: ; michael@202: ; Sample Primary e164 DUNDi peer michael@202: ; michael@202: ;[00:50:8B:F3:75:BB] michael@202: ;model = symmetric michael@202: ;host = 64.215.96.114 michael@202: ;inkey = digium michael@202: ;outkey = misery michael@202: ;include = e164 michael@202: ;permit = e164 michael@202: ;qualify = yes michael@202: michael@202: ; michael@202: ; Sample Secondary e164 DUNDi peer michael@202: ; michael@202: ;[00:A0:C9:96:92:84] michael@202: ;model = symmetric michael@202: ;host = misery.digium.com michael@202: ;inkey = misery michael@202: ;outkey = ourkey michael@202: ;include = e164 michael@202: ;permit = e164 michael@202: ;qualify = yes michael@202: ;order = secondary michael@202: michael@202: ; michael@202: ; Sample "push mode" downstream host michael@202: ; michael@202: ;[00:0C:76:96:75:28] michael@202: ;model = inbound michael@202: ;host = dynamic michael@202: ;precache = inbound michael@202: ;inkey = littleguy michael@202: ;outkey = ourkey michael@202: ;include = e164 ; In this case used only for precaching michael@202: ;permit = e164 michael@202: ;qualify = yes michael@202: michael@202: ; michael@202: ; Sample "push mode" upstream host michael@202: ; michael@202: ;[00:07:E9:3B:76:60] michael@202: ;model = outbound michael@202: ;precache = outbound michael@202: ;host = 216.207.245.34 michael@202: ;register = yes michael@202: ;inkey = dhcp34 michael@202: ;permit = all ; In this case used only for precaching michael@202: ;include = all michael@202: ;qualify = yes michael@202: ;outkey=foo michael@202: michael@202: ;[*] michael@202: ;