Provisioning: ENUMAG Projects RTC Platforms (Provisioning Guides)
This guide describes the provisioning functions for ENUM.
ENUM Ranges
ENUM is used in the routing logic of the SIP Proxy for sessions that use telephone numbers as identifiers. ENUM is a protocol that provides a translation mechanism for E.164 telephone numbers into IP addressing schemes.
An ENUM range is a telephone number prefix that has been allocated to your platform (by your telephone numbers supplier or telecom regulator in your country). For example you are an operator in Holland (contry code 31) and you have been allocated from the local authorities the numbers 31208005100 till 31208005199 (one hundred numbers). The prefix is therefore 312080051. First create an ENUM range using this prefix, then add individual numbers belonging to this range.
An ENUM range is similar with a DNS zones but it contains extra non DNS attributes like the type of numbers allowed to be stored.
SOAP/XML functions
- EnumPort → addRange()
- EnumPort → updateRange()
- EnumPort → deleteRange()
- EnumPort → getRanges()
ENUM range attributes:
<complexType name="EnumRange"> − <sequence> <element name="id" nillable="false" type="ngnpro:EnumRangeId"/> <element name="ttl" nillable="true" type="xsd:nonNegativeInteger" default="3600"/> <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="nameservers" nillable="true" type="ngnpro:StringArray"/> <element name="used" nillable="true" type="xsd:int"/> <element name="serial" nillable="true" type="xsd:int"/> <element name="customer" nillable="true" type="xsd:integer"/> <element name="reseller" nillable="true" type="xsd:integer"/> <element name="changeDate" nillable="true" type="xsd:string"/> <element name="info" nillable="true" type="xsd:string"/> </sequence> </complexType>
Graphical client
CDRTool → Accounts → ENUM ranges
Click on each range to modify its properties.
ENUM Numbers
ENUM is used in the routing logic of the SIP Proxy for sessions that use telephone numbers as identifiers. For each SIP account in the platform that must be reachable besides the SIP address also by one ore more telephone numbers, you must create the ENUM numbers and add mappings to their corresponding SIP account. Before creating any ENUM number, you must create an ENUM range.
The ENUM NAPTR record management has been developed based on the standards described at http://ag-projects.com/enum/.
Each ENUM number may have up to 5 NAPTR records as specified in ETSI TS 102 172 V1.2.1 (Minimum requirements for interoperability of ENUM implementations)
SOAP/XML functions
- EnumPort → addNumber()
- EnumPort → updateNumber()
- EnumPort → deleteNumber()
- EnumPort → getNumber()
- EnumPort → getNumbers()
ENUM number attributes:
<complexType name="EnumNumber"> − <sequence> <element name="id" nillable="false" type="ngnpro:EnumId"/> <element name="mappings" nillable="true" type="ngnpro:EnumMappingArray"/> <element name="info" nillable="true" type="xsd:string"/> <element name="owner" nillable="true" type="xsd:integer"/> <element name="customer" nillable="true" type="xsd:integer"/> <element name="reseller" nillable="true" type="xsd:integer"/> <element name="changeDate" nillable="true" type="xsd:string"/> </sequence> </complexType>
ENUM mapping attributes:
<complexType name="EnumMapping"> − <sequence> <element name="id" nillable="true" type="xsd:int"/> <element name="type" nillable="true" type="xsd:string"/> <element name="mapto" nillable="true" type="xsd:string"/> <element name="priority" nillable="true" type="xsd:int"/> <element name="ttl" nillable="true" type="xsd:int" default="3600"/> </sequence> </complexType>
The following NAPTR record types ENUM service types are supported:
var $NAPTR_services = array( "sip" => array( "service" => "sip", "webname" => "SIP", "schemas" => array( "sip:", "sips:" ) ), "mailto" => array( "service" => "mailto", "webname" => "Email", "schemas" => array( "mailto:" ) ), "web:http" => array( "service" => "web:http", "webname" => "WEB (http)", "schemas" => array( "http://" ) ), "web:https" => array( "service" => "web:https", "webname" => "WEB (https)", "schemas" => array( "https://" ) ), "x-skype:callto" => array( "service" => "x-skype:callto", "webname" => "Skype", "schemas" => array( "callto:" ) ), "h323" => array( "service" => "h323", "webname" => "H323", "schemas" => array( "h323:" ) ), "iax" => array( "service" => "iax", "webname" => "IAX", "schemas" => array( "iax:" ) ), "iax2" => array( "service" => "iax2", "webname" => "IAX2", "schemas" => array( "iax2:" ) ), "mms" => array( "service" => "mms", "webname" => "MMS", "schemas" => array( "tel:", "mailto:" ) ), "sms" => array( "service" => "sms", "webname" => "SMS", "schemas" => array( "tel:", "mailto:" ) ), "ems" => array( "service" => "ems", "webname" => "EMS", "schemas" => array( "tel:", "mailto:" ) ), "im" => array( "service" => "im", "webname" => "IM", "schemas" => array( "im:" ) ), "npd:tel" => array( "service" => "npd+tel", "webname" => "Portability", "schemas" => array( "tel:" ) ), "void:mailto" => array( "service" => "void:mailto", "webname" => "VOID(mail)", "schemas" => array( "mailto:" ) ), "void:http" => array( "service" => "void:http", "webname" => "VOID(http)", "schemas" => array( "http://" ) ), "void:https" => array( "service" => "void:https", "webname" => "VOID(https)", "schemas" => array( "https://" ) ), "voice" => array( "service" => "voice", "webname" => "Voice", "schemas" => array( "voice:", "tel:" ) ), "tel" => array( "service" => "tel", "webname" => "Tel", "schemas" => array( "tel:" ) ), "fax:tel" => array( "service" => "fax:tel", "webname" => "Fax", "schemas" => array( "tel:" ) ), "ifax:mailto" => array( "service" => "ifax:mailto", "webname" => "iFax", "schemas" => array( "mailto:" ) ), "pres" => array( "service" => "pres", "webname" => "Presence", "schemas" => array( "pres:" ) ), "ft:ftp" => array( "service" => "ft:ftp", "webname" => "FTP", "schemas" => array( "ftp://" ) ), "loc:http" => array( "service" => "loc:http", "webname" => "GeoLocation", "schemas" => array( "http://" ) ), "key:http" => array( "service" => "key:http", "webname" => "Public key", "schemas" => array( "http://" ) ), "key:https" => array( "service" => "key:https", "webname" => "Public key (HTTPS)", "schemas" => array( "https://" ) ) );
Graphical client
CDRTool → Accounts → ENUM numbers
Click on each number to modify its properties.
Next Steps
Continue by:
- learning about Main Entities used in Provisioning; or
- learning about Provisioning: DNS; or
- learning about Provisioning: Emergency Numbers; or
- learning about Provisioning: PSTN; or
- learning about Provisioning: SIP; or
- learning about Provisioning: Trusted Peers; or
- learning about Provisioning: User Notifications; or
- learning about Provisioning: Voicemail; or
- going back to Provisioning Introduction.