ENUMER – особенности инновационного решения для VoIP звонков и его настройка

К списку новостей

Emercoin успешно занимается разработкой решений для бизнес-процессов. Одним из них является система ENUMER, предназначенная для обеспечения качественной IP телефонии между компаниями. Будучи построенной на блокчейне Emercoin, она обладает всеми преимуществами децентрализованных решений. ENUMER решает существующие проблемы с использованием традиционного протокола ENUM.

Многие компании используют как IP ATC, так и классические электронные АТС. Связь между двумя IP ATC происходит через обычную телефонную сеть (PSTN). При таком звонке соединение двух IP ATC происходит через цепочку PSTN-провайдеров, который перенаправляет звонок из VoIP-сети в PSTN-сеть и взимает плату за звонок. Для того чтобы соединение между двумя IP ATC происходило напрямую был создан протокол ENUM. Его задача – преобразование номера телефона в URI, и тем самым дать возможность IP ATC подключаться напрямую друг к другу.

Узнать больше о различиях между ENUMER и ENUM, а также о недостатках последнего вы можете в предыдущей нашей статье.

ENUMER реализован на децентрализованной системе доменных имен EmerDNS. За счет использования блокчейна с гибридным консенсусом PoW+PoS удалось устранить уязвимости, присущие централизованным DNS серверам, в том числе возможность атаки DNS-Spoofing, DNS-hijacking и им подобных.

Настройка ENUMER и начало работы

Практически любая современная IP ATC готова к работе в системе ENUMER, так как имеет стандартный модуль работы с ENUM. Мы тестировали, и уверены в совместимости с ENUMER таких IP ATC: FreeSWITCH, Asterisk, PortaSwitch, OpenSIPS, sipXcom.

Подключение к ENUMER заключается в настройке двух независимых подсистем: для отправки исходящих звонков через ENUMER и для получения входящих. Можно настроить только одну из двух подсистем, или настроить обе, что наиболее эффективно. Рассмотрим настройку обеих подсистем подробнее.

Исходящие звонки

В простейшем случае, для настройки исходящих нужно активировать подсистему ENUM вашей IP ATC, и прописать в диалплане (программе обработки вызова), чтобы АТС посылала ENUM-запрос на домен enum.enumer.org, и пользовалась его результатами.

Вот статьи, содержащие примеры соответствующих частей диалпланов для IP ATC asterisk [http://asterisk.ru/news/194] и FreeSWITCH [https://habr.com/company/emercoin/blog/337034/].

Способ хороший и простой, но имеет недостатки: зависимость от внешнего сервиса, задержка обработки запросов, раскрытие номера, набираемого Вами 3-й стороне (нашему серверу, который делает поиск). Более эффективно, надёжно и приватно иметь собственный ENUM-сервер, который обрабатывает запросы локально, никуда не передавая. И ENUMER, в отличие от всех других реализаций ENUM, позволяет это сделать!

1) Вам надо установить программу-демона emercoind, которую скачать можно тут [https://emercoin.com/ru/benefits#download]. Необходимо активировать в ней режим emerDNS, в соответствии с документом [https://emercoin.com/ru/documentation/blockchain-services/emerdns/emerdns-introduction], то есть внести в конфигурационный файл emercoin.conf следующие строки:

emcdns=1                             # Activate DNS

emcdnsallowed=$enum|.coin|.emc|.lib|.bazar   # Allowed TLDs

enumtrust=ver:enum

enumtollfree=@enum:tollfree

Запускаем программу, ждём синхронизации блокчейна.

2) Пока идёт синхронизация, настраиваем локальный DNS Proxy. Это может быть bind, unbound, dnsmasq или другой подобный. Необходимо указать этому proxy, чтобы он отправлял запрос к доменным зонам emerDNS в локальную машину, на emercoin node. Здесь приведены примеры, как такое настроить [https://emercoin.com/ru/documentation/blockchain-services/emerdns/emerdns-introduction], раздел “Integration into a regular DNS tree”. В дополнение к 4-м доменным зонам из примера, добавьте 5-ю, “enum”.

Имейте также ввиду, что в некоторых поставках DNS систем, по умолчанию запрещён запрос на localhost. Этот запрет надо отключить.

После синхронизации блокчейна, и если всё настроено правильно, можно протестировать работоспособность системы, вручную послав ENUM-запрос в DNS:

$ dig -t naptr +short 53995390081.enum @localhost

Ответ должен быть примерно таким:

100 10 "u" "E2U+sip" "!^(.*)$!sip:\\[email protected]!" .

В случае возникновения ошибки можно попробовать отправить непосредственно в кошелек, на порт 5335

$ dig -t naptr +short 53995390081.enum @localhost –p 5335

И локализовать место сбоя. Но при правильной настройке – всё работает сразу и без проблем.

Как только Вы убедитесь, что запросы проходят на Ваш локальный ENUM-сервер - Вы можете изменить конфигурацию IP ATC, направляя запрос не в “enum.enumer.org”, а в локальный “enum”. Всё, настройка завершена, Вы можете отправлять исходящие через ENUMER, и получать бесплатное прямое соединение к набираемым абонентам.

Обратите внимание, что для настройки исходящих звонков, Вам монеты Emercoin не требуются - всё полностью бесплатно.

Входящие звонки

Вначале, Вам надо настроить Вашу IP ATC, чтобы она могла получать входящие звонки на SIP URI. Иными словами, чтобы кто угодно “из мира” мог бы позвонить Вам на SIP URI. То есть Вам надо написать (или взять готовый) dialplan для входящих, и открыть соответствующие порты сервера и firewall. В случае, если Вы имеете динамический IP, или не желаете открывать порт наружу по соображениям безопасности, Вы может держать регистрацию у какого-нибудь публичного провайдера, который позволяет получать звонки на SIP URI “из мира”, и направлять их на Ваш IP ATC. Мы тестировали этот режим с провайдерами callcentric и sipnet.

Всё, Ваша IP ATC получает звонки “из мира”. Осталось последнее - создать ENUM-запись, то есть внести информацию о Вашем номере телефона и SIP URI в ENUMER, и тем сообщить на весь мир, что “для звонка на номер 12345678900 идите на sip:[email protected]”, и звоните мне бесплатно. То есть - создать соответствующую запись в блокчейне Emercoin, и получить эту запись в своё пользование.

Система ENUMER базируется на блокчейне криптовалюты, и Вам необходим кошелёк (лучше всего с GUI) для управления Вашими ENUM-записями в системе ENUMER.

Наиболее простой способ получить запись в системе ENUMER - воспользоваться сервисом https://enumer.bitname.ru/. Этот сервис верифицирует Ваш входящий номер (делает на него тестовый звонок через PSTN), после чего отправляет Вам на Ваш кошелёк Emercoin готовую запись ENUMER, которую Вы увидите в разделе “Manage Names”. В дальнейшем, при необходимости, Вы сможете изменять SIP URI для соответствующего номера телефона из своего локального кошелька.

Так как отправленная Вам запись находится в блокчейне, она автоматически доступна для чтения всем пользователям системы ENUMER. И другие участники системы, желая позвонить Вам, будут делать локальный поиск в своих узлах emer-сети, находить там Ваш SIP URI и соединяться не через PSTN, а через SIP URI, который находится в вашей ENUM-записи в системе ENUMER. Иными словами, вместо “личного кабинета у держателя записи в интернете” Вы используете локальный кошелёк, который и есть Ваш “личный кабинет”, а репликация записи происходит средствами блокчейна.

Заметим, что сервис верификации - платный, и одна запись в ENUMER стоит 1EMC, что в настоящее время менее 1USD. Этот взнос покрывает расходы сервиса на звонок Вам, создание ENUM-записи, а также защищает добросовестных пользователей телефонов от хулиганства, когда жертву могут раздражать автоматическими звонками, к которым она отношения не имеет.

Более детально структура записи ENUMER рассмотрена в статье [https://habr.com/company/emercoin/blog/337034/]. Там же приведён устаревший, но ещё рабочий способ пройти верификацию (вручную) через нашего оператора.

ENUMER – это отличное дополнение к существующим VoIP решениям. Решение обеспечит вас надежной связью, приватностью, а также возможностью сэкономить на звонках и независимостью от традиционных PSTN-сетей.

К списку новостей