Difference between revisions of "DNS"

From reSIProcate
Jump to navigation Jump to search
(added windows specific info)
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
ares will to look in the following locations for the hosts file if it fails to find the entry via a DNS lookup
+
ares_gethostbyname() and ares_gethostbyaddr() ('''but not ares_query()!''') ares functions will look in the following locations for the hosts file if it fails to find the entry via a DNS lookup
 
* On *nix systems - /etc/hosts
 
* On *nix systems - /etc/hosts
 
* On *nix systems when ETC_INET is defined - /etc/inet/hosts
 
* On *nix systems when ETC_INET is defined - /etc/inet/hosts
Line 6: Line 6:
 
If you put the following line into /etc/resolv.conf:
 
If you put the following line into /etc/resolv.conf:
 
   lookup f b
 
   lookup f b
you are telling ares to look in the host (f)ile before DNS(b) servers.
+
you are telling the functions to look in the hosts (f)ile before DNS(b) servers. (b is for bind).
  
 
For windows environments the resolv.conf file will be retrieved from the drive of the working directory of the resip executable: ie. d:\etc\resolv.conf
 
For windows environments the resolv.conf file will be retrieved from the drive of the working directory of the resip executable: ie. d:\etc\resolv.conf
 +
 +
Note that reSIProcate in its current implementation uses only ares_query(). So, /etc/hosts is ignored. (See also http://list.sipfoundry.org/archive/resiprocate-devel/msg04973.html thread.)
  
 
= ENUM Support =
 
= ENUM Support =
The rutil library appears to have some level of support for ENUM queries, as do the DNS related classes under resip/stack. This space is reserved for an explanation of the current state of affairs with regards to resiprocate's ENUM support.
+
The rutil library has a basic level of support for ENUM queries, as do the DNS related classes under resip/stack. Currently the stack will atempt ENUM DNS resolution if an enum suffix is configured, and if the user part of the URI to resolve is at least 2 characters and starts with a '+' character.  This is true for both sip(s): and tel: URI's.
 +
 
 +
Current Limitations:
 +
# The stack allows setting of multiple ENUM suffixes, but only ever uses the first one in the list.
 +
# If an ENUM query returns a regular expression, then it will not be processed properly.  Only straight substitutions are currently supported.

Revision as of 08:37, 30 November 2006

ares_gethostbyname() and ares_gethostbyaddr() (but not ares_query()!) ares functions will look in the following locations for the hosts file if it fails to find the entry via a DNS lookup

  • On *nix systems - /etc/hosts
  • On *nix systems when ETC_INET is defined - /etc/inet/hosts
  • On Win32 systems - location of hosts file is retrieved from registry - typically: c:\Windows\System32\drivers\etc\hosts

If you put the following line into /etc/resolv.conf:

  lookup f b

you are telling the functions to look in the hosts (f)ile before DNS(b) servers. (b is for bind).

For windows environments the resolv.conf file will be retrieved from the drive of the working directory of the resip executable: ie. d:\etc\resolv.conf

Note that reSIProcate in its current implementation uses only ares_query(). So, /etc/hosts is ignored. (See also http://list.sipfoundry.org/archive/resiprocate-devel/msg04973.html thread.)

ENUM Support

The rutil library has a basic level of support for ENUM queries, as do the DNS related classes under resip/stack. Currently the stack will atempt ENUM DNS resolution if an enum suffix is configured, and if the user part of the URI to resolve is at least 2 characters and starts with a '+' character. This is true for both sip(s): and tel: URI's.

Current Limitations:

  1. The stack allows setting of multiple ENUM suffixes, but only ever uses the first one in the list.
  2. If an ENUM query returns a regular expression, then it will not be processed properly. Only straight substitutions are currently supported.