note that the weight has a special meaning for e164
[asterisk/asterisk.git] / configs / dundi.conf.sample
1 ;
2 ; DUNDi configuration file
3
4 ; For more information about DUNDi, see http://www.dundi.com
5 ;
6 ;
7 [general]
8 ;
9 ; The "general" section contains general parameters relating
10 ; to the operation of the dundi client and server.
11 ;
12 ; The first part should be your complete contact information
13 ; should someone else in your peer group need to contact you.
14 ;
15 ;department=Your Department
16 ;organization=Your Company, Inc.
17 ;locality=Your City
18 ;stateprov=ST
19 ;country=US
20 ;email=your@email.com
21 ;phone=+12565551212
22 ;
23 ;
24 ; Specify bind address and port number.  Default is
25 ; 4520
26 ;
27 ;bindaddr=0.0.0.0
28 ;port=4520
29 ;
30 ; Our entity identifier (Should generally be the MAC address of the
31 ; machine it's running on.  Defaults to the first eth address, but you
32 ; can override it here, as long as you set it to the MAC of *something*
33 ; you own!)
34 ;
35 ;entityid=00:07:E9:3B:76:60
36 ;
37 ; This defines the max depth in which to search the DUNDi system.
38 ; Note that the maximum time that we will wait for a response is
39 ; (2000 + 200 * ttl) ms.
40 ;
41 ttl=32
42 ;
43 ; If we don't get ACK to our DPDISCOVER within 2000ms, and autokill is set
44 ; to yes, then we cancel the whole thing (that's enough time for one 
45 ; retransmission only).  This is used to keep things from stalling for a long
46 ; time for a host that is not available, but would be ill advised for bad 
47 ; connections.  In addition to 'yes' or 'no' you can also specify a number
48 ; of milliseconds.  See 'qualify' for individual peers to turn on for just
49 ; a specific peer.
50 ;
51 autokill=yes
52 ;
53 ; pbx_dundi creates a rotating key called "secret", under the family
54 ; 'secretpath'.  The default family is dundi (resulting in 
55 ; the key being held at dundi/secret).
56 ;
57 ;secretpath=dundi
58 ;
59 ; The 'storehistory' option (also changeable at runtime with
60 ; 'dundi store history' and 'dundi no store history') will
61 ; cause the DUNDi engine to keep track of the last several
62 ; queries and the amount of time each query took to execute
63 ; for the purpose of tracking slow nodes.  This option is
64 ; off by default due to performance impacts.
65 ;
66 ;storehistory=yes
67
68 [mappings]
69 ;
70 ; The "mappings" section maps DUNDi contexts
71 ; to contexts on the local asterisk system.  Remember
72 ; that numbers that are made available under the e164 
73 ; DUNDi context are regulated by the DUNDi General Peering 
74 ; Agreement (GPA) if you are a member of the DUNDi E.164
75 ; Peering System.
76 ;
77 ; dundi_context => local_context,weight,tech,dest[,options]]
78 ;
79 ; 'dundi_context' is the name of the context being requested
80 ; within the DUNDi request
81 ;
82 ; 'local_context' is the name of the context on the local system
83 ; in which numbers can be looked up for which responses shall be given.
84 ;
85 ; 'weight' is the weight to use for the responses provided from this
86 ; mapping.  The number must be >= 0 and < 60000.  Since it is totally
87 ; valid to receive multiple reponses to a query, responses received
88 ; with a lower weight are tried first.  Note that the weight has a
89 ; special meaning in the e164 context - see the GPA for more details.
90 ;
91 ; 'tech' is the technology to use (IAX, SIP, H323)
92 ;
93 ; 'dest' is the destination to supply for reaching that number.  The
94 ; following variables can be used in the destination string and will
95 ; be automatically substituted:
96 ; ${NUMBER}: The number being requested
97 ; ${IPADDR}: The IP address to connect to
98 ; ${SECRET}: The current rotating secret key to be used
99 ;
100 ; Further options may include:
101 ;
102 ; nounsolicited:  No unsolicited calls of any type permitted via this 
103 ;                 route
104 ; nocomunsolicit: No commercial unsolicited calls permitted via 
105 ;                 this route
106 ; residential:    This number is known to be a residence
107 ; commercial:     This number is known to be a business
108 ; mobile:         This number is known to be a mobile phone
109 ; nocomunsolicit: No commercial unsolicited calls permitted via 
110 ;                 this route
111 ; nopartial:      Do not search for partial matches
112 ;
113 ; There *must* exist an entry in mappings for DUNDi to respond
114 ; to any request, although it may be empty.
115 ;
116 ;e164 => dundi-e164-canonical,0,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
117 ;e164 => dundi-e164-customers,100,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
118 ;e164 => dundi-e164-via-pstn,400,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
119
120 ;digexten => default,0,IAX2,guest@lappy/${NUMBER}
121 ;asdf =>
122
123
124 ;
125 ;
126 ; The remaining sections represent the peers
127 ; that we fundamentally trust.  The section name
128 ; represents the name and optionally at a specific
129 ; DUNDi context if you want the trust to be established
130 ; for only a specific DUNDi context.
131 ;
132 ; inkey - What key they will be authenticating to us with
133 ;
134 ; outkey - What key we use to authenticate to them
135 ;
136 ; host - What their host is
137 ;
138 ; order - What search order to use.  May be 'primary', 'secondary', 
139 ;         'tertiary' or 'quartiary'.  In large systems, it is beneficial
140 ;         to only query one up-stream host in order to maximize caching
141 ;         value.  Adding one with primary and one with secondary gives you
142 ;         redundancy without sacraficing performance.
143 ;
144 ; include - Includes this peer when searching a particular context
145 ;           for lookup (set "all" to perform all lookups with that
146 ;           host.  This is also the context in which peers are permitted
147 ;           to precache.
148 ;
149 ; noinclude - Disincludes this peer when searching a particular context
150 ;             for lookup (set "all" to perform no lookups with that
151 ;             host.
152 ;
153 ; permit - Permits this peer to search a given DUNDi context on
154 ;          the local system.  Set "all" to permit this host to
155 ;          lookup all contexts.  This is also a context for which
156 ;          we will create/forward PRECACHE commands.
157 ;
158 ; deny -   Denies this peer to search a given DUNDi context on
159 ;          the local system.  Set "all" to deny this host to
160 ;          lookup all contexts.
161 ;
162 ; model - inbound, outbound, or symmetric for whether we receive 
163 ;         requests only, transmit requests only, or do both.
164 ;
165 ; precache - Utilize/Permit precaching with this peer (to pre
166 ;            cache means to provide an answer when no request
167 ;            was made and is used so that machines with few
168 ;            routes can push those routes up a to a higher level).
169 ;            outgoing means we send precache routes to this peer,
170 ;            incoming means we permit this peer to send us
171 ;            precache routes.  symmetric means we do both.
172 ;
173 ; Note: You cannot mix symmetric/outbound model with symmetric/inbound
174 ; precache, nor can you mix symmetric/inbound model with symmetric/outbound
175 ; precache.
176 ;
177 ;
178 ; The '*' peer is special and matches an unspecified entity
179 ;
180
181 ;
182 ; Sample Primary e164 DUNDi peer
183 ;
184 ;[00:50:8B:F3:75:BB]
185 ;model = symmetric
186 ;host = 64.215.96.114
187 ;inkey = digium
188 ;outkey = misery
189 ;include = e164
190 ;permit = e164
191 ;qualify = yes
192
193 ;
194 ; Sample Secondary e164 DUNDi peer
195 ;
196 ;[00:A0:C9:96:92:84]
197 ;model = symmetric
198 ;host = misery.digium.com
199 ;inkey = misery
200 ;outkey = ourkey
201 ;include = e164
202 ;permit = e164
203 ;qualify = yes
204 ;order = secondary
205
206 ;
207 ; Sample "push mode" downstream host
208 ;
209 ;[00:0C:76:96:75:28]
210 ;model = inbound
211 ;host = dynamic
212 ;precache = inbound
213 ;inkey = littleguy
214 ;outkey = ourkey
215 ;include = e164 ; In this case used only for precaching
216 ;permit = e164      
217 ;qualify = yes
218
219 ;
220 ; Sample "push mode" upstream host
221 ;
222 ;[00:07:E9:3B:76:60]
223 ;model = outbound
224 ;precache = outbound
225 ;host = 216.207.245.34
226 ;register = yes
227 ;inkey = dhcp34
228 ;permit = all ; In this case used only for precaching
229 ;include = all 
230 ;qualify = yes
231 ;outkey=foo
232
233 ;[*]
234 ;