The Cisco Unified Border Element (CUBE) facilitates the mapping of E.164 called numbers to Session Initiation Protocol (SIP) Uniform Resource Identifiers (URIs) (ENUM). The SIP ENUM technology allows the traditional telephony part of the network (using E.164 numbering in order to address destinations) to interwork with the SIP telephony part of the network, generally using SIP URIs.
From the Public Switched Telephone Network (PSTN) network, if an end user dials an E.164 called party, the number can be translated by an ENUM gateway into the corresponding SIP URI. This SIP URI is then used to look up the Domain Name System (DNS) Naming Authority Pointer (NAPTR) Resource Records (RR). The NAPTR RR (as defined in RFC 2915) describes how the call should be forwarded or terminated and records information, such as e-mail addresses, a fax number, a personal website, a voice over IP (VoIP) number, mobile telephone numbers, voice mail systems, IP-telephony addresses, and web pages.
Alternately, when the calling party is a VoIP endpoint and dials an E.164 number, then the originator’s SIP user agent (UA) converts it into a SIP URI in order to be used to look up at the ENUM gateway DNS and fetch the NAPTR RR.
Ensure that you meet these requirements before you attempt this configuration:
Basic knowledge of how to configure and use Cisco IOS® Voice
Basic knowledge of how to configure and use Cisco Unified Border Element (CUBE)
The information in this document is based on Cisco Unified Border Element release on an ISR that uses Cisco IOS release 12.4T.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Refer to the Cisco Technical Tips Conventions for more information on document conventions.
The following example shows a typical NAPTR RR and field details.
Domain field.
Class field: "IN" = Internet.
Type of RR (Resource Record): NAPTR = 35.
Order: the lower the value the higher the precedence.
Preference of NAPTR RR with equal Order.
Flag field: A "U" flag means that the next step is not a DNS lookup but that the output of the Regexp field is a URI. An “A” flag means that the next step is an address lookup. An “S” flag means that the next step is an SRV record lookup.
Service field: this field indicates which protocol and service are used. The syntax “sip+E2U” means the protocol is SIP and E2U means E.164 to URI mapping (as per RFC 2916). The Cisco IOS Gateways do not support “E2U+sip” (RFC 3761 Service Type).
Regexp field: this field consists of match and replacement information.
The detailed description (per RFC 2916) of key fields in the NAPTR RR is described here:
Field 4—The order field specifies the order in which records MUST be processed when multiple NAPTR records are returned in response to a single query.
Field 5—The preference field specifies the order in which records SHOULD be processed when multiple NAPTR records have the same value of "order."
Field 6—The flag field contains modifiers that affect what happens in the next DNS lookup, typically for optimizing the process.
Field 7— The service field specifies the resolution protocol and resolution service(s) that will be available if the rewrite specified by the regexp or replacement fields is applied.
Field 8—The regexp field is one of two fields used for the rewrite rules and is the core concept of the NAPTR record.
Field 8—The replacement field is the other field that might be used for the rewrite rule.
In this section, you are presented with the information to configure the features described in this document.
Note: Use the Command Lookup Tool (registered customers only) to obtain more information on the commands used in this section.
This image shows a typical ENUM sequence in a CUBE that is configured for a SIP-SIP service:
This diagram shows the sequence of events that occur in the ENUM configuration described in this document.
The user dials 901189.
The call matches outgoing dial-peer 300 which points to ENUM table 3. ENUM table 3 rule 3 preference 2 replaces 9011 with +1408; the final ENUM resulting string is +140889. Characters other than the number are removed, and the resulting string is 140889. Digits are reversed, dots added, and the string is appended with the zone name; the resulting string is 9.8.8.0.4.1.e164.arpa, which is a Fully Qualified Domain Name (FQDN).
CUBE contacts the DNS server in order to resolve the FQDN.
The DNS server should have NAPTR record configured in order to support this feature and returns the SIP URI sip:2000@9.13.8.100.
CUBE places an outgoing call to 2000@9.13.8.100.
CUBE requires the configuration described in this section in order to process ENUM-based URI resolution.
This example shows how to enable CUBE functionality in order to terminate the incoming VoIP calls and re-originate them using an outbound VoIP dial-peer.
voice service voip allow-connections h323 to sip allow-connections sip to h323 allow-connections sip to sip allow-connections h323 to h323
This example shows how to configure the ENUM table in CUBE:
voice enum-match-table 3 rule 3 2 /^9011\(.*\)//+1408\1/e164.arpa
This example shows how to configure the incoming and outgoing dial-peers with the relevant protocol, DTMF type, and codec information.
!-- Incoming dial peer dial-peer voice 1 voip incoming called-number 901189 session protocol sipv2 dtmf-relay rtp-nte codec g711ulaw ! !-- Outgoing dial peer ! dial-peer voice 2 voip destination-pattern 901189 session protocol sipv2 session target enum:3 !-- 3 denotes ENUM table number dtmf-relay rtp-nte codec g711ulaw
This example shows how to configure the DNS server in order to return the SIP URI for the reversed FQDN.
$ORIGIN 9.8.8.0.4.1.e164.arpa. IN NAPTR 100 10 "u" "sip+E2U" "!^.*$!sip:2000@9.13.8.100!" .
Here is a sample configuration that shows how to support ENUM in CUBE.
Sample Configuration |
---|
! ip name-server 9.13.8.100 !-- DNS Server having NAPTR RR ! ! ! voice service voip allow-connections h323 to h323 allow-connections h323 to sip allow-connections sip to sip supplementary-service h450.12 h323 call start slow sip no call service stop ! ! voice enum-match-table 3 !-- ENUM table to digit stripping !-- and conversion into FQDN rule 3 2 /^9011\(.*\)/ /+1408\1/ e164.arpa ! ! dial-peer voice 300 voip destination-pattern 901189 session protocol sipv2 session target enum:3 !-- Session target Pointing to an ENUM table codec g711ulaw ! dial-peer voice 400 voip destination-pattern 4000 session protocol sipv2 session target ipv4:9.13.8.88 incoming called-number 901189 codec g711ulaw |
Verify the configuration as shown in this section.
IPIP-2801-5#show voice enum detail IPIP-2801-5#enum_resolve_domain: match_num 901189 table_indx 3 enum_resolve_domain: rule 3 result string +140889 generate_enum_search_string : search string 9.8.8.0.4.1.e164.arpa enum_dns_query: name = 9.8.8.0.4.1.e164.arpa type = 35, ns_server = 0 order 100 pref 10 service sip+E2U flag u regexp !^.*$!sip:2000@9.13.8.100! replacement num_elem = 1 NAPTR Record : order 100 pref 10 service sip+E2U flags u regexp !^.*$!sip:2000@9.13.8.100! replacement decode_naptr_record : re_string ^.*$ decode_naptr_record : re_substitution_string sip:2000@9.13.8.100 decode_naptr_record : re_flags_string U_FLAG case, stopping query new_e164_user sip:2000@9.13.8.100 contact_list : sip:2000@9.13.8.100 enum_resolve_domain: contact_list 64D79698 IPIP-2801-5>en IPIP-2801-5#show voip rtp conn VoIP RTP active connections : No. CallId dstCallId LocalRTP RmtRTP LocalIP RemoteIP 1 25 26 16836 20844 9.13.8.25 9.13.8.200 2 26 25 16720 49186 9.13.8.25 9.13.8.100 Found 2 active RTP connections IPIP-2801-5#show call active voice | inc Sess SessionProtocol=sipv2 SessionTarget=9.13.8.200 SessionProtocol=sipv2 SessionTarget=3 IPIP-2801-5#
This section provides information you can use to troubleshoot your configuration.
show voice enum—In order to display the rules of an ENUM match table, use the enum-match-table [table-num] command in privileged EXEC mode.
debug voip enum detail—In order to view VoIP ENUM information, use the debug voip enum command in privileged EXEC mode.
This sample output shows the information you receive when you run the troubleshooting commands:
IPIP-2801-5#debug voip enum detail enum_resolve_domain: match_num 901189 table_indx 3 enum_resolve_domain: rule 3 result string +140889 generate_enum_search_string : search string 9.8.8.0.4.1.e164.arpa enum_dns_query: name = 9.8.8.0.4.1.e164.arpa type = 35, ns_server = 0 order 100 pref 10 service sip+E2U flag u regexp !^.*$!sip:2000@9.13.8.100! replacement num_elem = 1 NAPTR Record : order 100 pref 10 service sip+E2U !-- Per RFC2916 flags u regexp !^.*$!sip:2000@9.13.8.100! replacement decode_naptr_record : re_string ^.*$ decode_naptr_record : re_substitution_string sip:2000@9.13.8.100 decode_naptr_record : re_flags_string U_FLAG case, stopping query new_e164_user sip:2000@9.13.8.100 contact_list : sip:2000@9.13.8.100 enum_resolve_domain: contact_list 64D79698 TB1-IPIPGW1-3#enum_resolve_domain: match_num 901189 table_indx 3 enum_resolve_domain: rule 3 result string +140889 generate_enum_search_string : search string 9.8.8.0.4.1.e164.arpa enum_dns_query: name = 9.8.8.0.4.1.e164.arpa type = 35, ns_server = 0 order 100 pref 10 service E2U+sip flag u regexp !^.*$!sip:521000@10.1.1.100! replacement num_elem = 1 NAPTR Record : order 100 pref 10 service E2U+sip !-- Per RFC2916 flags u regexp !^.*$!sip:521000@10.1.1.100! replacement validate_service_field: NAPTR Record format Error, non-supported "service protocol" field find_enum_contact_list_i: NAPTR Record format Error, invalid "service" field TB1-IPIPGW1-3#show voice enum voice enum_match_table 3 rule 3 2 /^9011\(.*\)/ /+1408\1/ e164.arpa
Note: Refer to Important Information on Debug Commands before you use debug commands.
Revision | Publish Date | Comments |
---|---|---|
1.0 |
02-Jul-2009 |
Initial Release |