Emercoin successfully develops solutions for implementation in business processes. One of them is ENUMER – a system designed to provide high-quality IP telephony between companies. It is built on Emercoin blockchain and embodies all the advantages of decentralized solutions. ENUMER solves existing problems that occur during the use of traditional ENUM protocol.
Many companies use either IP PBXs, or traditional electronic PBXs. IP PBXs communicate via regular telephone networks (PSTN). During such a call, the connection of two IP PBXs goes through the PSTN-provider network, which forwards the call from the VoIP network to the PSTN network and charges for each call. ENUM protocol was created to enable the direct connection between two IP PBXs. It converts a phone number into a URI, allowing IP PBXs to establish direct communication.
You can find out more about differences between ENUMER and ENUM, as well as the disadvantages of the latter, in our previous article.
ENUMER is based on the decentralized domain name system EmerDNS. By using blockchain with PoW+PoS hybrid consensus, we managed to eliminate the vulnerabilities of centralized DNS servers, including such attacks as DNS-Spoofing, DNS-hijacking, and the like.
Configuring and starting up with ENUMER
Almost any modern IP PBX is ready to work with ENUMER system, as they contain standard module for ENUM support. We’ve tested and can guarantee the compatibility of ENUMER with sich IP PBXs as FreeSWITCH, Asterisk, PortaSwitch, OpenSIPS, and sipXcom.
Connection to ENUMER consists of setting up of two independent subsystems: for outgoing calls via ENUMER and for incoming calls. You can configure one of the two subsystems or both, which is more effective. Below you will find information on both types of configuration.
At its simplest, to configure the outgoing calls you need to activate the ENUM subsystem of your IP PBXs and to specify in the dialplan (call processing program) for PBX to send ENUM requests to enum.enumer.org domain and use the received results.
In this article you will find examples of the relevant parts of dialplans for IP PBX FreeSWITCH [https://firstname.lastname@example.org/voip-made-free-with-blockchain-introducing-enumer-35235c4abec5].
The method is good and simple, but has disadvantages: depending on the external server, delay in processing requests, disclosure of the number that use dial to connect with a third party (to our server, which does the search). It is more efficient, reliable and private to have your own ENUM server that processes requests locally, without sending them anywhere. ENUMER, unlike all other ENUM solutions, allows you to do just that!
1) You need to install daemon program, which you can download here [https://emercoin.com/ru/benefits#download]. You need to activate the EmerDNS mode, in accordance with the document [https://emercoin.com/ru/documentation/blockchain-services/emerdns/emerdns-introduction], that is, add the following lines in the configuration file emercoin.conf:
emcdns=1 # Activate DNS
emcdnsallowed=$enum|.coin|.emc|.lib|.bazar # Allowed TLDs
Run the program and wait for blockchain synchronization.
2) While synchronization is in progress, set up a local DNS Proxy. It can be bind, unbound, dnsmasq or similar. You need to specify for this proxy to send requests to EmerDNS domain zones in your local machine, to emercoin node. Here in section “Integration into a regular DNS tree” you can find examples of configuration [https://emercoin.com/ru/documentation/blockchain-services/emerdns/emerdns-introduction]. In addition to four domain names from the example add the 5th one – “enum”.
Please also note that in some DNS systems the request to localhost is denied by default. This feature must be disabled.
After blockchain synchronization and if everything is configured correctly, you can test the system by manually sending ENUM request to DNS:
$ dig -t naptr +short 53995390081.enum @localhost
The answer will be something like this:
100 10 "u" "E2U+sip" "!^(.*)$!sip:\\email@example.com!" .
If an error occurrs, try to send a request to the wallet to 5335 port
$ dig -t naptr +short 53995390081.enum @localhost –p 5335
And localise the place of failure. However, with the rights settings everything will work right away and without any problems.
As soon as you make sure that the request go to your local ENUM server. you can change the configuration of IP PBX to send requests not to “enum.enumer.org”, but to local “enum”. Setup is complete. You can make outgoing calls via ENUMER and get free direct connection with a subscriber.
Please note that you don’t need Emercoin coin to set up outgoing calls – everything is free.
First. you need to configure your IP BPX to receive calls to SIP URI. In other words, so that anyone “from the world” could call you to SIP URI. You need to write (or to take a ready-to-use) diaplan for incoming calls, and open the appropriate ports of the server and firewall. If you have a dynamic IP, or don’t want to open the port for security reasons, you can keep registration with some public provider that allows to receive calls to SIP URI “from the world” and send them to your IP PBX. We’ve tested this mode with callcentric and sipnet providers.
Now your IP BPX can receive calls “from the world”. All you have to do is to create ENUM record, that is, enter information about you phone number and SIP URI into ENUMER and to tell the whole world that “to call 12345678900, go to sip: firstname.lastname@example.org” and make free-of-charge calls. You need to create a corresponding record in the Emercoin blockchain, and get this record for your use.
ENUMER system is based on cryptocurrency blockchain, and you need the wallet (preferable with GUI) to manage your ENUM records in ENUMER system.
The easiest way to get a record in ENUMER is to use https://enumer.bitname.ru/index.php?lang=en service. This services verifies your incoming call (makes a test call via PSTN) and then sends a to your Emercoin wallet you ENUMER record. You will find it is “Manage Names” tab. In the future, if you need you can change SIP URI I for the corresponding phone number from your local wallet.
Since the record sent to you is stored in blockchain, all users of the ENUMER system will be able to read it. And the member of the system, wishing to call you, will do a local search on their emer-network nodes, find there your SIP URI and connect not through PSTN but through SIP URI, that is in your ENUM record in ENUMER system. In other words, instead of using “a personal account of record holder in the internet” you use local wallet, which is your “personal account”, and the replication of the record occurs via the blockchain.
Note that you will have to pay for verification service. One ENUMER record costs 1 EMC, which is currently less than 1 USD. This fee covers the the service costs of calling you and protects bona fide phone users from the annoying automatic calls that have nothing to do with you.
The structure of ENUMER records is described in more detail in article [https://email@example.com/voip-made-free-with-blockchain-introducing-enumer-35235c4abec5]. There you will also find an outdated, but still working way of manual verification via our operator.
ENUMER is an excellent alternative to existing VoIP solutions. The solution provides you with reliable communication, independence from traditional PSTN networks and the ability to save on calls.