ENUM links telephony with the internet - which makes its use for VoIP one of the most apparent and common fields of application, as telephone numbers were also used for telephony at first.
In order that a VoIP caller and callee can "find" each other via ENUM and the call can directly be made over the conventional telephone network, the following two preconditions must be met:
The following chart shows an exemplary procedure:

The use of ENUM for telephone systems could be similar to the above-mentioned case: The telephone system has both a conventional telephone network as well as an IP-compliant interface, which is connected to the internet. Calls from the internet or from the conventional telephone network will reach the employee on his usual desk telephone.
With only one single ENUM domain (namely the one according to the individual number of the end device) the VoIP addresses can be specified for all relevant phone extensions. Thus, these extension lines can be reached directly via internet by all devices and operators supporting ENUM call processing.
If the telephone system also uses ENUM as a least-cost-router between the conventional telephone and the internet line for outgoing calls, calls to "ENUM-activated" numbers - e.g. to other, congeneric telephone systems of the branch company - are also processed via internet.
In this case ENUM serves as an alternative to fixed interconnections between telephone systems. The advantage is that newly added telephone systems (e.g. from business partners) are found "automatically".
Telephone systems that are not internet/ENUM-compatible themselves can be upgraded with special devices. These devices are interposed between the system and the conventional telephone connection, and process calls via internet connection - if possible. The users of the telephone system do not take notice of these processes - they just call the number from their desk telephone as usual.
Asterisk is an ENUM-compliant software branch exchange for Linux. In order to use Asterisk and ENUM as a least-cost-router between the internet and the conventional telephone network, an ENUM query must be performed during the processing of the call. Here is an example of a configuration extract (which must of course be adapted to its special purpose!):
[from_sip_phone]
exten => _00X.,1,Set(enumresult=${ENUMLOOKUP(+${EXTEN:2})})
exten => _00X.,2,GotoIf($["${enumresult}" = ""]?103:3)
exten => _00X.,3,Dial(SIP/${enumresult},90)
exten => _00X.,4,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?103:5)
exten => _00X.,5,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?103:6)
exten => _00X.,6,Hangup
exten => _00X.,103,Dial(ZAP/g1/${EXTEN},90)
SIP Express Router is a SIP Proxy with ENUM-support. This is an exemplary extract of a configuration for routing calls via ENUM:
# Normalise local numbers
if (uri=~"^sip:[1-9]") {
prefix("+431"); # prefix country code + area code Vienna
}
# Normalise numbers with area code
if (uri=~"^sip:0[1-9]") {
strip(1); # cut preceding 0
prefix("+43"); # prefix country code
}
# Normalize international call numbers
if (uri=~"^sip:00[1-9]") {
strip(2); # cut preceding 00
prefix("+"); # prefix plus
}
if (enum_query("e164.arpa.") {
t_relay(); # ENUM-target found!
}