Начиная с версии 1.2.660 WNAM поддерживает идентификацию абонента через совершение звонка на указанный им номер, с произнесением кода доступа.

С версии 1.6.2802 WNAM поддерживается сценарий двухфакторной авторизации, где кодом доступа являются последние цифры номера входящего звонка от провайдера или последовательность цифр, произнесенная механическим голосом при ответе на звонок. Входящий звонок является для абонента бесплатным. Код доступа необходимо ввести в соответствующее поле страницы идентификации – «код».

Преимущества идентификации посредством входящего звонка:

  • сокращение стоимости идентификации (от 0.25 до 0.46 рублей за вызов). При наличии собственного сервера порядка 10 копеек за звонок с посекундной тарификацией;
  • высокая надежность (входящий звонок поступает абоненту мгновенно);
  • отсутствие регистрации имен отправителя (как в случае с идентификацией посредством СМС-сообщений);
  • потенциальная возможность произнесения рекламы (рекламной фразы).

В настоящий момент поддерживается пять сторонних провайдера для совершения звонков с произнесением кода доступа и один собственный провайдер:

  • ВМЕСТОСМС – vmestosms.ru.Провайдер предоставляет фиксированный тариф за вызов – 46 копеек, при этом код доступа произносится дважды.
  • BitCall – sc-tehno.ru (https://bitcall.ru). Тариф данного провайдера зависит от направления и длительности звонка и составляет порядка 25 копеек за вызов, код доступа произносится один раз.
  • SMSЦЕНТР (http://smsc.ru). Тариф данного провайдера зависит от направления и длительности звонка и составляет порядка 25 копеек за вызов, код доступа произносится два раза.
  • New-Tel (http://callpassword.ru).Тариф данного провайдера можно получить, запросив информацию на указанном сайте.
  • Usicom (https://www.uiscom.ru/) или виртуальная АТС. Тариф данного провайдера можно уточнить на указанном сайте.
  • Собственная автоматическая телефонная станция (далее по тексту – АТС) Asterisk.

и провайдеры с совершением звонка со "случайного" исходящего номера с генерацией 4-5-6-значного кода, соответствующего последним цифрам номера звонящего:

Услуга провайдера ВМЕСТОСМС доступна только для российских операторов, номера которых начинаются с цифры 7.

Услуга провайдера New-Tel доступна с версии WNAM 1.4.

Использование собственной АТС доступно с версии WNAM 1.6.

Также система поддерживает пять провайдеров с совершением звонка со «случайного» исходящего номера с генерацией 4-5-6-значного кода доступа, соответствующего последним цифрам номера:  

  • SMSЦЕНТР – smsc.ru. Код доступа данного провайдера соответствует последним цифрам номера входящего звонка абоненту.
  • Voicepassword.ru. Код доступа данного провайдера соответствует последним цифрам номера входящего звонка абоненту, но также доступен абоненту при ответе на звонок. Применимая длина кода доступа определяется в настройках способа идентификации.
  • Telediscount.ru. Код доступа данного провайдера соответствует последним цифрам номера входящего звонка абоненту.
  • I-digital.ru. Код доступа данного провайдера соответствует последним цифрам номера входящего звонка абоненту.
  • obit.ru. Код доступа данного провайдера соответствует последним цифрам номера входящего звонка абоненту.

Услуга провайдеров Telediscount и I-digital доступна с версии WNAM 1.6.3038.

Услуга провайдера Obit доступна с версии WNAM 1.6.3092.

1. Настройка идентификации при использовании сторонних провайдеров

Для настройки данного метода необходимо:

1.Выбрать провайдера, зарегистрироваться на сайте провайдера и полнить счет на необходимую сумму.

2. Перейти в настройки способа авторизации с помощью учетной записи администратора в интерфейсе WNAM ("Конфигурация" → "Гостевая авторизация" → "Авторизация"). В соответствующем поле указать метод «Звонок абоненту» и выбрать провайдера. В настройках провайдера необходимо выполнить следующие действия:

  • Для провайдера BitCall зарегистрировать номер (номер отправителя звонка). Зарегистрированный номер будет являться логином в форме настройки. В поле «Логин» ввести зарегистрированный номер телефона, в поле «Пароль» ввести API ключ.
  • Для провайдера ВМЕСТОСМС поле «Логин» оставить пустым, в поле «Пароль» ввести API ключ.Для провайдеров SMSЦЕНТР, telediscount.ru и obit.ru в поля «Логин» и «Пароль» следует ввести учетные данные в системе – логин и пароль соответственно. Также в личном кабинете провайдера необходимо настроить допустимые IP-адреса.
  • Для провайдера New-Tel Callpassword.ru в поле «Логин» ввести ключ_API_для_авторизации_запросов, в поле «Пароль» ввести ключ_API_для_подписи_запросов. Дополнительно в поле «URL системы» можно ввести последовательность «voice», которая отвечает за произнесение кода доступа механическим голосом.
  • Для провайдеров voicepassword.ru и i-digital.ru в поле «API ключ» необходимо ввести ключ, который отображен в личном кабинете провайдера сервиса.

3. После ввода необходимых данных следует нажать кнопку "Сохранить изменения" и произвести тестирование путем совершения вызова через конструктор страниц, или имя_сервера/cp/testform. В случае успешного применения настроек, в файле регистрации событий «wnam.log» будут произведены подобные записи:

DEBUG [com.netams.wnam.web.cp.SmsHandler:174] - CP CALL phase 1: mac=00:01:02:03:04:05, ip=1.2.3.4, phone=7915xxxxxxx, code=1524 ! система присвоила временный код
DEBUG [c.n.w.s.sms.providers.VoicePassword:36] - voicepassword call_to: +7915xxxxxxx return 'CodeResponse{result='ok', code='4922', price=0.30, errorCode='null'}'
DEBUG [c.n.w.web.cp.CaptivePortalController:941] - postSms: site_id=8, username=00:01:02:03:04:05, phone=7915xxxxxxx, smscode=4922, ci.key=... ! реальный код 4922; этот звонок пришел с +7 (961) 342-49-22
DEBUG [c.n.w.web.cp.CaptivePortalController:1076] - postSmsPhase2 phone=7915xxxxxxx, code=4922, r={ ip=1.2.3.4, mac=00:01:02:03:04:05, phone=7915xxxxxxx, code=4922, attempts=0 }, r_ir=false, ap_m=CALL
DEBUG [c.n.w.web.cp.CaptivePortalController:1101] - CP CALL phase 2: mac=00:01:02:03:04:05, ip=1.2.3.4, phone=7915xxxxxxx, smscode=4922 CORRECT in 14546 ms.

2. Настройка собственной АТС 

При использовании собственной АТС администратору необходимо выполнить следующие действия:

1. В настройках WNAM для звонка через собственную АТС в поле «Провайдер звонка» необходимо указать наименование провайдера «Локальная АТС Asterisk», в поле «URL системы» ввести параметры АТС в формате ip_адрес_астериска/имя_контекста/имя_транка, например:

172.16.130.13/default/zadarma

2. В полях «Логин» и «Пароль» ввести учетные данные пользователя системы – от Manager-коннекта до Asterisk. Учетные записи WNAM и Asterisk можно хранить как на одном сервере, так и на разных. Во втором случае следует убедиться в доступности порта TCP:5038 на сервере АТС.

3. Нажать кнопку «Сохранить изменения».

4. Установить размер ответного кода доступа (рекомендованное значение «4 цифры»).

5. Выбрать страницу типа «Звонок абоненту», или её клон.

6. Проверить возможность вызова, используя форму http://адрес.вашего.сервера/cp/testsend. Перед проверкой необходимо включить «Тестовые интерфейсы СМС и шаблонов страниц» в меню «Конфигурация – Общие настройки». В соответствующем поле указать номер телефона, после чего получить входящий звонок с кодом  доступа «1234».

7. Отредактировать стандартный шаблон страницы типа «Звонок абоненту», или её клон.

Существует возможность настроить собственную АТС Asterisk на том же сервере, где работает WNAM, или на другом сервере. В обоих случаях необходимо:

1. Настроить исходящий способ подключения (trank) на АТС, ведущий в сторону SIP-провайдера Детальная инструкция по настройке SIP-провайдера представлена в документации на АТС Asterisk и документации собственного провайдера.

2. Настроить Manager-подключение. Для этого в файле конфигурации, расположенном по директории /etc/asterisk/manager.d/wnam.conf необходимо указать IP-адрес, сети, имя в квадратных скобках (логин) и пароль (расположение этого и последующих файлов может отличаться в зависимости от версии дистрибутива Linux):

[wnam]
secret=password
deny=0.0.0.0/0.0.0.0
permit=172.16.130.0/24,172.16.135.0/24
read = all
write = all

3. Внести изменения в номерной план (dialplan). Для этого в файле конфигурации, расположенном по директории /etc/asterisk/extensions.conf необходимо прописать следующий план:

exten => _7NXXXXXXXXX,1,NoOp(Исходящий звонок в транк)
same => n,Set(CALLERID(all)="74993467660"<74993467660>)
same => n,Set(CHANNEL(language)=ru)
same => n,Playback(vash-kod-dostupa)
same => n,SayDigits(${CODE})
same => n,Hangup()

Во второй строке CALLERID необходимо указать собственный номер телефона.

4. Загрузить языковые звуковые пакеты для поддержки русского языка при произношении кода доступа в АТС Asterisk. Для ОС Debian необходимо установить следующие пакеты:

apt-get install asterisk-core-sounds-ru asterisk-core-sounds-ru-gsm asterisk-core-sounds-ru-wav 

5. Дополнительно понадобится файл, который отвечает за приветствие абонента перед сообщением кода доступа. В качестве примера используются файлы «vash-kod-dostupa.wav» и «vash-kod-dostupa.gsm», которые можно получить по ссылкам https://www.netams.com/files/wnam/misc/vash-kod-dostupa.gsm и https://www.netams.com/files/wnam/misc/vash-kod-dostupa.wav соответственно. После загрузки выбранных файлов, их необходимо переместить в следующие директории:

/usr/share/asterisk/sounds/en_US_f_Allison/vash-kod-dostupa.gsm
/usr/share/asterisk/sounds/en_US_f_Allison/vash-kod-dostupa.wav
/usr/share/asterisk/sounds/ru_RU_f_IvrvoiceRU/vash-kod-dostupa.gsm
/usr/share/asterisk/sounds/ru_RU_f_IvrvoiceRU/vash-kod-dostupa.wav

Можно использовать оба формата файла и помещать их в каталоги с разными языками для большей надежности. Аналогичные файлы приветствия можно сделать самостоятельно с помощью программы «Yandex Speech Kit», конвертировав их онлайн-конвертерами (рекомендуемые настройки конвертации: 8000 Гц, моно, 16 бит).

Исходящие звонки отправляются в АТС Asterisk с номерами в международном формате, например, 79150002244. Возможность изменить номер в номерном плане АТС Asterisk отсутствует. Если выбранный SIP-провайдер ожидает увидеть исходящий номер в ином формате, то необходимо в разделе «Конфигурация" → "Дополнительные настройки» установить значение параметра «asterisk_pattern». Формат значения имеет вид: регулярное выражение совпадения ... знак | ... выражение замены, например:

^7|0

Это означает замену ведущей семерки в номере на ноль. При этом требуется поменять шаблон (pattern) в номерной плане:  (exten => _7NXXXXXXXXX на exten => _0NXXXXXXXXX).


6. После настройки АТС Asterinsk следует перезапустить сервис, и сделать проверку работы авторизации. После ввода абонентом своего телефонного номера через несколько секунд ему поступит вызов, в котором будет произнесено, например, следующее: «Ваш код доступа семь четыре три девять», после чего звонок завершится автоматически. Такой звонок занимает около десяти секунд. Далее следует перейти в консоль настройки АТС Asterisk и включить отладку, набрав команду «core set debug 10 и sip set debug on», после чего в консоли АТС Asterisk будет следующая информация:

-- SIP/zadarma-0000000f answered
-- Executing [79996771111@default:1] NoOp("SIP/zadarma-0000000f", "Исходящий звонок в транк") in new stack
 -- Executing [79996771111@default:2] Set("SIP/zadarma-0000000f", "CALLERID(all)="74993467660"<74993467660>") in new stack
 -- Executing [79996771111@default:3] Set("SIP/zadarma-0000000f", "CHANNEL(language)=ru") in new stack
 -- Executing [79996771111@default:4] Playback("SIP/zadarma-0000000f", "vash-kod-dostupa") in new stack
 -- <SIP/zadarma-0000000f> Playing 'vash-kod-dostupa.slin' (language 'ru')
-- Executing [79996771111@default:5] SayDigits("SIP/zadarma-0000000f", "7439") in new stack
 -- <SIP/zadarma-0000000f> Playing 'digits/7.slin' (language 'ru')
-- <SIP/zadarma-0000000f> Playing 'digits/4.slin' (language 'ru')
-- <SIP/zadarma-0000000f> Playing 'digits/3.slin' (language 'ru')
-- <SIP/zadarma-0000000f> Playing 'digits/9.slin' (language 'ru')

В лог-файле wnam.log появятся такие записи:

20:45:38.916 DEBUG [c.n.w.web.cp.CaptivePortalController:1241] - postSms: site_id=101, username=AE:9E:AF:32:3F:11, phone=79996771111, smscode=null, ci.key=e4bbe1da-8473-42b5-b097-bad95c46cab5

20:45:38.930 DEBUG [com.netams.wnam.web.cp.SmsHandler:147] - CP CALL phase 1: mac=AE:9E:AF:32:3F:11, ip=10.130.129.99, phone=79996771111, code=7439

20:45:38.944 INFO [o.a.live.internal.AsteriskServerImpl:322] - Initializing done
20:45:38.944 DEBUG [c.n.w.s.sms.providers.Asterisk:67] - Create Scenario Call: phone '79996771111',chanel 'SIP/zadarma/79996771111',context 'default',extension '79996771111'

20:45:38.949 INFO [o.a.live.internal.AsteriskServerImpl:1247] - Initializing done
20:45:38.949 INFO [o.a.live.internal.ChannelManager:213] - Adding channel SIP/zadarma-00000012(1586713540.31)

С версии WNAM 1.6.3231 поддерживается переопределение имени исходящего канала при совершении звонка через management-интерфейс АТС Asterisk. Стандартное наименование канала «SIP/имя_транка/номер_абонента» можно изменить. Следует воспользоваться такой возможностью, если администратору АТС требуется видеть в SIP-заголовках дополнительные параметры. Для этого в разделе «Конфигурация" → "Дополнительная настройка» необходимо отредактировать параметр «asterisk_trunk_pattern», представляющий собой строку, в которой задается имя канала с возможностью «на лету» изменять переменные вида: %переменная% реальными значениями.

Изменение параметра «asterisk_trunk_pattern» требует перезапуска сервиса WNAM.

Например, стандартная конфигурация параметра имеет вид:

SIP/%TRUNK%/%PHONE%

При совершении вызова будет сформировано имя канала:

SIP/zadarma/79998887766

Для использования доступны следующие переменные: %TRUNK%, %PHONE%, %CONTEXT%, %CODE%.

Например, если АТС требуется видеть в имени контекста значение, такое как: 

zadarma/79998887766@default

,то переменная «asterisk_trunk_pattern» должна иметь вид:

%TRUNK%/%PHONE%@%CONTEXT%

 

  • No labels