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