Page MenuHomePhabricator

Provisioning: ENUM
AG 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

  • EnumPortaddRange()
  • EnumPortupdateRange()
  • EnumPortdeleteRange()
  • EnumPortgetRanges()

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

CDRToolAccountsENUM ranges

book-general-sip-platform-ngnpro-enum-ranges (289×1 px, 49 KB)

Click on each range to modify its properties.

book-general-sip-platform-ngnpro-enum-range (528×1 px, 58 KB)

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

  • EnumPortaddNumber()
  • EnumPortupdateNumber()
  • EnumPortdeleteNumber()
  • EnumPortgetNumber()
  • EnumPortgetNumbers()

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

CDRToolAccountsENUM numbers

book-general-sip-platform-ngnpro-enum-numbers (252×1 px, 47 KB)

Click on each number to modify its properties.

book-general-sip-platform-ngnpro-enum-number (473×1 px, 66 KB)

Next Steps

Continue by: