Howto:ENUM

From innovaphone wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Applies To

This information applies to

  • innovaphone Gateways V7

More Information

ENUM[1] is a DNS-based rendezvous mechanism, allowing within the VoIP context for a calling party to find a call destination. Whithout knowing each other beforehand and without requiring centralized components such as a gatekeeper.

Example ENUM Call Flow

The following call-flow depicts an ENUM call:

Enum-flow.gif

  • 1.: The caller dials the number 00049 7031 73009-88.
  • 2.: The gateway receives the call and submits a DNS query for the name 8.8.9.0.0.3.7.1.3.0.7.9.4.e164.arpa.
  • 3.: The gateway receives a successful DNS answer including a NAPTR[2] record with the regular replacement expression [3] !^\+49703173009(.*)$!sip:\1@gw-amt.innovaphone.com!.
  • 4.: The gateway processes the regular expression.
  • 5.: The gateway computes the SIP URI sip:88@gw-amt.innovaphone.com as call destination.
  • 6.: The gateway places a SIP call for the number 88 at the host gw-amt.innovaphone.com
  • 7.: The destination receives the call and replies to the gateway that it is ringing.
  • 8.: The gateway informs the caller that the destination is ringing.

...: and so on..

Configuration

A simple configuration outlines the basic steps to enable ENUM queries for every PSTN call. An alternative route ensures that calls will be forwarded into the PSTN, if no matching ENUM peer could be found.

The following assumptions apply:

  • The gateway terminates the PSTN number +497031 73009 on port BRI1:Trunk.
  • The gateway interface GW1:Trunk is H.323-registered at a trunk object within the local PBX.
  • The gateway interface GW5:ENUM/SIP is configured as a SIP-interface in ENUM mode. Outgoing and incoming SIP calls will leave and arrive via this interface.
  • DNS is configured and working

Configure GW5:ENUM/SIP

In addition to the following paragraph it is recommended to activate the Media-Relay[4] functionality by configuring Configuration/IP/Settings/Private Networks.

  • Open up GW5 and configure according to following screen shot

Enum-if-config.png

  • Ensure that outgoing ENUM calls will convey the international CGPN +49703173009xxx

Enum-cgpn-out-config.gif

Configure Routes

Three routes realize the outgoing call handling.

  • 'GW1:Trunk->Tone': This common route provides a dial tone.
  • 'GW1:Trunk->ENUM/SIP': Three maps cover three different dialling scenarios, which are handled longest-match first wise. The actual goal is to ensure that every ENUM/DNS query will be placed solely for international numbers (country code, area code, subscriber number, extension). In addition - the routing requires a certain amount of dial-digits, before a map gets considered (by a few dot-operators), in order to avoid DNS queries being too short in length. Note:It is of importance that all of these three maps have the Final Map checkmark activated.
    • 'To ENUM/SIP (international)': The caller already entered the digits for an international call (international trunk prefix=00) including country code. The prefix 00 will be removed by the map.
    • 'To ENUM/SIP (national)': The caller already entered the digits for a national call (national trunk prefix=0). The prefix 0 will be replaced by the german country code 49.
    • 'To ENUM/SIP (local)': The caller entered the digits for a call destined for the local area (no trunk prefix supplied). This map prepends the german country 49 and the area code 7031.

Enum-routes-config-simple.gif

  • 'GW1:Trunk->BRI1:Trunk': The alternative route falling through into the PSTN.

Two routes realize the handling for incoming calls.

  • 'BRI1:Trunk->GW1:Trunk': The usual route from the PSTN into the local PBX.
  • 'GW5:ENUM/SIP->GW1:Trunk': A new route leading a SIP caller from the outside into the local PBX. It is left up to the inclined reader of this article to configure the interface number mappings that process incoming calling party numbers into something digestive.

Configure Routes, Refinements

Please see Known Problems: ENUM queries for the own root number +49703173009 may be avoided by a configuration of three additional maps within the route 'GW1:Trunk->ENUM/SIP'. These maps - if provided - must precede the ones from above.

  • 0049703173009 -> BRI1:Trunk
  • 0703173009 -> BRI1:Trunk
  • 73009 -> BRI1:Trunk

These three additional maps show how to provide a short-circuit into the PSTN. Avoiding to submit an ENUM query for local numbers.

Configure a Different Suffix Than e164.arpa

Please see Howto:Enum_Domain

Testing

The austrian Nic maintains two interesting numbers that aid in the verification of an ENUM configuration:

  • +437200101011: This number accepts your call and plays some informational media.
  • +437200101012: This number is an echo-test and verifies that your outbound and inbound media channel are working correctly

More information about ENUM test numbers and about an account for incoming ENUM test calls is available on the web site of the IP-World.at.

Troubleshooting

The undocumented command mod cmd DNS0 will show a tiny usage:

args:
query <name> <type>   #lookup RRs of a specific type for the given name 
                      #Common numeric types are ANY(0),A(1),NS(2),CNAME(5),SOA(6),PTR(12),MX(15), 
                      #TXT(16),SRV(33),NAPTR(35) 
enum <+E.164>         #lookup NAPTR RR for a telephone number (enter with leading plus) 

examples: 
mod cmd DNS0 query . 2   #This query is listing the root servers (currently A-M) 
mod cmd DNS0 query www.innovaphone.com 1         # Get IP Address for www.innovaphone.com 
mod cmd DNS0 enum +49(7031)73009-88              # ENUM query 
mod cmd DNS0 query 4.157.253.145.in-addr.arpa 12 # Get DNS name for IP address 145.253.157.4

An ENUM query can be placed by entering e.g.:

http://172.16.16.1/!mod cmd DNS0 enum +4970317300988

If everything works well the XMLized output will be alike:

<result val="0" title="SUCCESS">

  <answer_rrs title="Answer Records">

    <rr rr-type="35"
      rr-name="NAPTR"
      name="8.8.9.0.0.3.7.1.3.0.7.9.4.e164.arpa"
      order="50"
      preference="50"
      flags="u"
      services="E2U+sip"
      regex="!^\+49703173009(.*)$!sip:\1@innovaphone.com!"
      replacement=""/>

    <rr rr-type="35"
      rr-name="NAPTR"
      name="8.8.9.0.0.3.7.1.3.0.7.9.4.e164.arpa"
      order="50"
      preference="50"
      flags="u"
      services="E2U+h323"
      regex="!^\+49703173009(.*)$!h323:\1@gw-amt.innovaphone.com!"
      replacement=""/>

  </answer_rrs>

  <ns_rrs title="Authoritative Nameserver Records"></ns_rrs>

  <ar_rrs title="Additional Records"></ar_rrs>

</result>

Known Problems

Please note that ENUM calls for the own domain will fail currently. That is, if you registered an ENUM/NAPTR-record for your gateway and you're about to test functionality from the same gateway the call media channel is likely to not get established correctly.

Notes

  1. ENUM, Telephone Number Mapping: RFC3761
  2. NAPTR Resource Record, Naming Authority Pointer, RFC2915
  3. Regular Expression, http://en.wikipedia.org/wiki/Regular_expression
  4. Media-Relay provides network- and port address translation for media channels from private to public (internet) networks.See Reference7:Configuration/IP/Settings