[Freeswitch-dev] ENUM+EMER=ENUMER

Oleg Khovayko khovayko at gmail.com
Fri Aug 4 16:33:56 UTC 2017


Dear Colleagues,

0. As we know, there is no exist ENUM service for private person or 
small PBX owners.
e164.org is dead. And before death, it applied a "dirty tricks" to 
requests - for instance, ignored toll-free record in their ENUM database,
and routed TF-calls to their specific terminator.

We think, any centralized ENUM system vas these risks:
  - Non-transparent routing rules, controlled by some centralized 
organization
  - Risk of ban or mis-route some specific call, according "wishes" of 
ENUM-operator
  - Risk of business termination of ENUM operator.

1. We, Emercoin Team ( https://emercoin.com/team ), are designed 
decentralized blockchain-based ENUM.
General idea: ENUM-records are stored in the cryptocurrency blockchain, 
and by this way -
records are transparent, available everywhere, any anyone can run his 
own ENUM-server, which process these records.
Phone owner is owner of his ENUM record. So, system is decenrtralized, 
and does not have any centralized control point.
To preserve malicious ENUM-allocation, there is proposed verifiers - 
special agents, who verify number owner,
and provide signature to the owner of ENUM record.

2. System is already works!
For instance, see logs from my own FreeSWITCH and Emer node:

a) Call to TollFree with FreeSWITCH:

fc66e67d-1d79-e711-ad65-ac1f6b02117c Dialplan: 
sofia/internal/1001 at olegh.ftp.sh Regex (PASS) [Lookup ENUM] 
destination_number(18668886080) =~ /^(\d{7,})$/ break=on-true
fc66e67d-1d79-e711-ad65-ac1f6b02117c Dialplan: 
sofia/internal/1001 at olegh.ftp.sh Action ring_ready()
fc66e67d-1d79-e711-ad65-ac1f6b02117c Dialplan: 
sofia/internal/1001 at olegh.ftp.sh Action set(hangup_after_bridge=true)
fc66e67d-1d79-e711-ad65-ac1f6b02117c Dialplan: 
sofia/internal/1001 at olegh.ftp.sh Action set(continue_on_fail=true)
fc66e67d-1d79-e711-ad65-ac1f6b02117c Dialplan: 
sofia/internal/1001 at olegh.ftp.sh Action enum(+18668886080 enum)
fc66e67d-1d79-e711-ad65-ac1f6b02117c Dialplan: 
sofia/internal/1001 at olegh.ftp.sh Action bridge(${enum_auto_route})
. . .
57e3c17e-1d79-e711-ad65-ac1f6b02117c 2017-08-04 10:02:04.648767 [DEBUG] 
switch_core_state_machine.c:40 
sofia/external/%2B18668886080 at tollfree.alcazarnetworks.com Standard INIT

b) Debug log from the local Emer node:
2017-08-04 14:02:04 EmcDns::HandlePacket: Handle packet_len=55
2017-08-04 14:02:04     EmcDns::HandlePacket: msgID  : 41179
2017-08-04 14:02:04     EmcDns::HandlePacket: Bits   : 0100
2017-08-04 14:02:04     EmcDns::HandlePacket: QDCount: 1
2017-08-04 14:02:04     EmcDns::HandlePacket: ANCount: 0
2017-08-04 14:02:04     EmcDns::HandlePacket: NSCount: 0
2017-08-04 14:02:04     EmcDns::HandlePacket: ARCount: 1
2017-08-04 14:02:04     EmcDns::HandlePacket: qno=0 m_hdr->QDCount=1
2017-08-04 14:02:04 EmcDns::HandleQuery: Translated domain name: 
[0.8.0.6.8.8.8.6.6.8.1.enum]; DomainsQty=12
2017-08-04 14:02:04 EmcDns::HandleQuery: Key=0.8.0.6.8.8.8.6.6.8.1.enum 
QType=23 QClass=1
2017-08-04 14:02:04 EmcDns::HandleQuery: After TLD-suffix cut: 
[0.8.0.6.8.8.8.6.6.8.1.enum]
2017-08-04 14:02:04     EmcDns::SpfunENUM: 
Domain=[0.8.0.6.8.8.8.6.6.8.1.enum] N=12 TLD=[enum] Len=64
2017-08-04 14:02:04     EmcDns::SpfunENUM: ITU-T num=[18668886080]
2017-08-04 14:02:04     EmcDns::SpfunENUM Search(enum:18668886080:0)
2017-08-04 14:02:04     EmcDns::SpfunENUM TF-match N=[18668886080] 
RE=[^1(800|888|877|866|855|844)[2-9]\d{6}$] -> 1
2017-08-04 14:02:04     EmcDns::HandleE2U: Parsed: 100 10 E2U+sip 
!^(.*)$!sip:\1 at tollfree.alcazarnetworks.com!

As you see, FreeSWITCH sends request to the local domain "enum", and 
node provided rule to route to @tollfree.alcazarnetworks.com, and FS 
followed this rule.

c) You can test system with our public gateway "enumer.org", for example:
$ dig -t naptr +short 53995390081.enum.enumer.org


3. What we looking for

a) We looking for collaboration to create and maintain verifier WEB-site 
and calling engine.
By our understanding, this site must to do:
  - Show form, when someone pays for verification (to preserve malicious 
calls to innocents). Payment can be collected in EMCs.
  - Make verification call, and speak 6-digit number.
  - User enter these numbers into the form, and get signature to deploy 
into his ENUM-record.

b) Customers.
We would like invite customers to deploy their ENUM-records into ENUMER.

----

If you would like to collaborate, please contact me.

Thanks,
Oleg




More information about the FreeSWITCH-dev mailing list