310 likes | 325 Views
Telecom Signaling Networks and Service Forum January 18, 2006 Amsterdam. I am Adrian Georgescu. I work for AG Projects, which is developing solutions for convergence of the Telecom and Internet. ENUM provisioning systems.
E N D
Telecom Signaling Networks and Service Forum January 18, 2006 Amsterdam
I work for AG Projects, which is developing solutions for convergence of the Telecom and Internet
ENUM maps a telephone number to any type of address (including other telephone numbers) What is ENUM +40317105169 sip:ag@ag-projects.com
ENUM maps a telephone number to any type of address (including other telephone numbers) It is used in the routing decision (is an All Call Query) What is ENUM +40317105169 sip:ag@ag-projects.com ENUM is not an application or stand alone product
E.164 numbering plan must work on both PSTN and IP ENUM allows IP devices to be reached from the PSTN ENUM allows VoIP islands to interconnect (IMS included) ENUM enables applications beyond voice (Video and IM) Why ENUM
Registration of ENUM domains in Tier 1 (example for +31: 1.3.e164.arpa) Management of NAPTR records in Tier 2 (+3120 Amsterdam) ENUM provisioning tasks ENUM is based on DNS (NAPTR records) ENUM is a multi-tier model where Tier0/1 is the registry Tier 2 is the working horse of ENUM
The anatomy of ENUM records (NAPTR) Subscriber 9.9.2.5.0.0.8.0.2.1.3.c164.net. IN NAPTR 0 0 "U" "E2U+SIP" "!^.*$!sip:ag@ag-projects.com!" .
The anatomy of ENUM records (NAPTR) Subscriber Tier2 ITU RIPE TIER1 IANA IETF MDNS gTLD 9.9.2.5.0.0.8.0.2.1.3.c164.net. 0 IN NAPTR 0 0 "U" "E2U+SIP" "!^.*$!sip:ag@ag-projects.com!" . WHOIS Q931 SS7 SIP DNS IN Institutions, Providers, Subscribers, Protocols, Networks, Machines
Interaction with Tier 0/1 registries (country specific) Interaction with end-users (for user-ENUM) Interaction with telecom operators (carrier ENUM) Interaction with PSTN gateways Interaction with connected services (like SIP) Interaction with DNS servers Provisioning roles of ENUM Tier 2
Incorrect ENUM records can break applications Different applications are designed to cope with certain record formats (E2u+sip or sip+E2U, the old formats) ETSI and IETF have conflicting notations (example sip: and voice+sip:) Provisioning has impact on VoIP
Merging multiple DNS tree is difficult (carrier ENUM) Is good to have as less possible TLDs (ideally just one) Too many DNS records may not be returned using UDP The best practices now is to limit the provisioning of number of mappings for an ENUM to five ENUM Requirements for EDNS0 Support( L. Conroy, J. Reid) Internet draft: draft-conroy-enum-edns0 Provisioning has impact on VoIP
ENUM is useless alone, you need an application. A real world example looks like “Create one Voice over IP account” consisting of: SIP account on the SIP proxy ENUM mapping in the DNS server Voicemail account on the Voicemail server DDI on the PSTN class 5 switch So creating records into the DNS is just part of the problem Provisioning scenario
Numbering plan information (fixed/variable) Records usage (population/delegation/in use/free) Templates for generation of other related entities (SIP accounts) Access lists beyond transfers/query/notify ENUM zones contain non-DNS information
DNS is a public database, content put in DNS is meant to be public Do you want your web page to be found? Same question apply for your telephone number, if is yes that it must be made public What is behind the telephone number can however be protected Use anonymous SIP addresses for ENUM records Link the real user identity with the name space within the applications (by using aliases) SIP provides mechanisms for Identity and Privacy Privacy is solved starting with provisioning techniques and ending with the applications Provisioning and privacy
Check records for correctness Logical checks and syntax checks Network locking mechanisms Accounting, version control and auditing Used for push of data into the DNS server Used to retrieve data from external systems (like LDAP) Provisioning engine tasks
User ENUM has lots of zones with few records Carrier ENUM has few zones with lot of records For Carrier ENUM you need access lists, or different views For User ENUM you have privacy issues You need a different DNS management approach for two models and eventually two different DNS server solutions as well Provisioning for User ENUM and Carrier ENUM
Concurrent access in a controlled environment Combine ENUM and SIP provisioning requests Should be DNS server agnostic- Bind, PowerDNS, Nominum Should integrate SIP redirect services with ENUM (number portability solution) Should integrate domain registration and DNS zone management Record generation / dynamic provisioning- translates non-DNS data into NAPTR records SOAP/XML can be used to expose public interfaces, an Open Standard supported by most high-level programming languages (C, C++, Java, Python) Provisioning engine tasks
Make it easy for end-users. End-users are usually unaware of NAPTR records and the fact that ENUM is used for routing of their voice calls, E164 numbering plans and SIP address formats are better known and understood Provisioning of NAPTR records in E164 format
Provide finest control for operator, ENUM regular expression handling while preventing data input which syntactically or logically does not comply with ENUM purpose. Example: "E2U+MMS" => array("service"=>"E2U+mms", "schemas"=>array("tel:”,"mailto:")), Provisioning of NAPTR records in DNS format
Capacity management Capacity management is important, allocating and delegating numbers requires skills (see IPV4 address depletion). ENUM zone usage, record ownership, current zone population, percentage of delegation, usage ratio, unallocated or unassigned records.
Bulk provisioning Carrier-ENUM zones are often provisioned in bulk, numbering plan generators or imports from external data sources should be possible Provisioning scenario Generate 10000 SIP records in domain example.com with associated 10000 NAPTR records under private tree 1.3.e164-provider.nl.
High-availability (carrier grade) Scalability and speed (match calls per second requirements) Interoperability (standardized NAPTR record formats) Retrieval of data from external sources Capacity planning and capacity management Auditing, version control Disaster recovery plan What is an ENUM system actually? DNS servers + Storage + Provisioning Interfaces Provisioning engine design
SOAP/XML scheme to manage zone records The zones store numbers <complexType name="EnumRange"> <sequence> <element name="id" nillable="false" type="ngnpro:EnumRangeId"/> <element name="minDigits" nillable="true" type="xsd:int"/> <element name="maxDigits" nillable="true" type="xsd:int"/> <element name="size" nillable="true" type="xsd:int"/> <element name="used" nillable="true" type="xsd:int"/> </sequence> </complexType> SOAP/XML engine primitives
SOAP/XML scheme to manage discrete numbers The number have attributes outside DNS <complexType name="EnumNumber"> <sequence> <element name="id" nillable="false" type="ngnpro:EnumId"/> <element name="owner" nillable="true" type="xsd:integer"/> <element name="info" nillable="true" type="xsd:string"/> <element name="mappings" nillable="true" type="ngnpro:EnumMappingArray"/> </sequence> </complexType> Provisioning engine primitives
SOAP/XML scheme to manage mappings Number has mappings which correspond to DNS NAPTR records <complexType name="EnumMapping"> <sequence> <element name="id" nillable="true" type="xsd:integer"/> <element name="type" nillable="true" type="xsd:string"/> <element name="mapto" nillable="true" type="xsd:string"/> <element name="priority" nillable="true" type="xsd:int"/> </sequence> </complexType> Provisioning engine primitives
SOAP/XML scheme to manage zone records SOAP messages (functions) <wsdl:message name="AddEnumRangeRequest"> <wsdl:message name="DeleteEnumRangeRequest"> <wsdl:message name="GetEnumRangesRequest"/> <wsdl:message name="AddEnumNumberRequest"> <wsdl:message name="UpdateEnumNumberRequest"> <wsdl:message name="DeleteEnumNumberRequest"> <wsdl:message name="GetEnumNumberRequest"> <wsdl:message name="AddEnumMappingRequest"> <wsdl:message name="UpdateEnumMappingRequest"> <wsdl:message name="DeleteEnumMappingRequest"> Provisioning engine primitives
This presentation is available at http://ag-projects.com/ENUM/
Thank you Adrian Georgescu ag@ag-projects.com