Why Asynchronous DNS
Since the resip stack is intended to be suitable for use in server products, it is important that throughput should be minimally impacted by DNS latency. Using an asynchronous DNS allows processing to continue while we wait for a DNS result to come back. This is especially important because SIP uses a multi-step DNS resolution algorithm that may require several queries to be made in sequence before the end result is obtained.
SIP clients and servers can use DNS to resolve URIs for locating next hops. Details are covered in RFC 3263.
ReSIProcate uses a forked version of the ares asynchronous DNS library originally from MIT. This forked version is located in the contrib subdirectory of reSIProcate's svn repository. The reSIProcate version offers the following over the MIT version:
- numerous bug fixes, particularly on win32 architectures
- support of IPV6