73 <para> |
73 <para> |
74 Enum query returns 1 if the current Request URI was replaced |
74 Enum query returns 1 if the current Request URI was replaced |
75 and -1 if not. |
75 and -1 if not. |
76 </para> |
76 </para> |
77 <para> |
77 <para> |
|
78 In addition to standard ENUM, support for ISN (ITAD Subscriber |
|
79 Numbers) is provided as well. To allow ISN lookups to resolve, |
|
80 a different formatting algorithm is expected by the DNS server. |
|
81 Whereas a ENUM NAPTR record expects a DNS query of the form |
|
82 9.8.7.6.5.4.3.2.1.<suffix>, ISN method expects a DNS query of |
|
83 the form 6.5.1212.<suffix>. That is, a valid ISN number includes |
|
84 a prefix of '56' in the example. The rest of the number is a |
|
85 ITAD (Internet Telephony Administrative Domain) as defined |
|
86 in RFCs 3872 and 2871, and as allocated by the IANA in |
|
87 http://www.iana.org/assignments/trip-parameters. The ITAD is |
|
88 left intact and not refersed as ENUM requires. To learn more |
|
89 about ISN please refer to documents at www.freenum.org. |
|
90 </para> |
|
91 <para> |
|
92 To complete a ISN lookup on the user part of the Request-URI, |
|
93 isn_query() is used instead of enum_query(). |
|
94 </para> |
|
95 <para> |
78 Enum module also implements is_from_user_enum function. |
96 Enum module also implements is_from_user_enum function. |
79 This function does an enum lookup on the from user and |
97 This function does an enum lookup on the from user and |
80 returns true if found, false otherwise. |
98 returns true if found, false otherwise. |
81 </para> |
99 </para> |
82 </section> |
100 </section> |
151 modparam("enum", "i_enum_suffix", "e1234.arpa.") |
169 modparam("enum", "i_enum_suffix", "e1234.arpa.") |
152 </programlisting> |
170 </programlisting> |
153 </example> |
171 </example> |
154 </section> |
172 </section> |
155 <section> |
173 <section> |
|
174 <title><varname>isn_suffix</varname> (string)</title> |
|
175 <para> |
|
176 The domain suffix to be used for isn_query() lookups. Can |
|
177 be overridden by a parameter to isn_query. |
|
178 </para> |
|
179 <para> |
|
180 Default value is <quote>freenum.org.</quote> |
|
181 </para> |
|
182 <example> |
|
183 <title>Setting isn_suffix module parameter</title> |
|
184 <programlisting format="linespecific"> |
|
185 modparam("enum", "isn_suffix", "freenum.org.") |
|
186 </programlisting> |
|
187 </example> |
|
188 </section> |
|
189 <section> |
156 <title><varname>branchlabel</varname> (string)</title> |
190 <title><varname>branchlabel</varname> (string)</title> |
157 <para> |
191 <para> |
158 This parameter determines which label i_enum_query() will use |
192 This parameter determines which label i_enum_query() will use |
159 to branch off to the infrastructure ENUM tree. |
193 to branch off to the infrastructure ENUM tree. |
160 </para> |
194 </para> |
161 <para> |
195 <para> |
162 Default value is <quote>"i"</quote> |
196 Default value is <quote>"i"</quote> |
163 </para> |
197 </para> |
164 <example> |
198 <example> |
165 <title>Setting brachlabel module parameter</title> |
199 <title>Setting branchlabel module parameter</title> |
166 <programlisting format="linespecific"> |
200 <programlisting format="linespecific"> |
167 modparam("enum", "branchlabel", "i") |
201 modparam("enum", "branchlabel", "i") |
168 </programlisting> |
202 </programlisting> |
169 </example> |
203 </example> |
170 </section> |
204 </section> |
351 for the rationale behind this function. |
385 for the rationale behind this function. |
352 </para> |
386 </para> |
353 </section> |
387 </section> |
354 |
388 |
355 <section> |
389 <section> |
|
390 <title> |
|
391 <function moreinfo="none">isn_query(["suffix"[,"service"]])</function> |
|
392 </title> |
|
393 <para> |
|
394 The function performs a ISN query and rewrites the Request-URI with |
|
395 the result of the query. See <xref linkend="sec-overview"/> for more |
|
396 information. |
|
397 </para> |
|
398 <para>Meaning of the parameters is as follows:</para> |
|
399 <itemizedlist> |
|
400 <listitem> |
|
401 <para><emphasis>suffix</emphasis> - Suffix to be appended to the |
|
402 domain name. |
|
403 </para> |
|
404 </listitem> |
|
405 <listitem> |
|
406 <para><emphasis>service</emphasis> - Service string to be used in |
|
407 the service field. |
|
408 </para> |
|
409 </listitem> |
|
410 </itemizedlist> |
|
411 <para> |
|
412 This function can be used from REQUEST_ROUTE. |
|
413 </para> |
|
414 <para> |
|
415 See ftp://www.ietf.org/rfc/rfc3872.txt and |
|
416 ftp://www.ietf.org/rfc/rfc2871.txt for information |
|
417 regarding the ITAD part of the ISN string. |
|
418 </para> |
|
419 <example> |
|
420 <title><function moreinfo="none">isn_query</function> usage</title> |
|
421 <programlisting format="linespecific"> |
|
422 ... |
|
423 # search for "e2u+sip" in freenum.org |
|
424 isn_query("freenum.org."); |
|
425 ... |
|
426 # search for "e2u+sip" in default tree (configured as parameter) |
|
427 isn_query(); |
|
428 ... |
|
429 # search for "e2u+voice:sip" in freenum.org |
|
430 isn_query("freenum.org.","voice"); |
|
431 ... |
|
432 </programlisting> |
|
433 </example> |
|
434 </section> |
|
435 |
|
436 <section> |
356 <title><function moreinfo="none">is_from_user_enum()</function></title> |
437 <title><function moreinfo="none">is_from_user_enum()</function></title> |
357 <para> |
438 <para> |
358 Checks if the user part of from <abbrev>URI</abbrev> |
439 Checks if the user part of from <abbrev>URI</abbrev> |
359 is found in an enum lookup. |
440 is found in an enum lookup. |
360 Returns 1 if yes and -1 if not. |
441 Returns 1 if yes and -1 if not. |