Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Данный метод похож на идентификацию через СМС. Однако вместо сообщения абонент получает входящий бесплатный вызов, где механический голос произносит код доступа, который затем надо ввести в форму.

Преимущества такого способа очевидны:

, с произнесением кода доступа.

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

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

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

В настоящий момент поддерживается

...

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

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

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

Warning

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

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

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

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

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

Услуга провайдеров 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 ключ» необходимо ввести ключ, который отображен в личном кабинете провайдера сервиса.

Image Added

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 на сервере АТС.

Image Added

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

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

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

6.


В настройках метода авторизации в административном интерфейсе WNAM (общего, или для площадки) указать данный метод, выбрать провайдера, указать:
  1. Для ВМЕСТОСМС в поле Логин - ничего, в поле Пароль - API ключ
  2. Для BitCall в поле "Логин" ввести зарегистрированный в системе номер телефона, в поле Пароль - API ключ
  3. Для SMSЦЕНТР в полях Логин и Пароль - учетные данные в системе
  4. Для New-Tel Callpassword.ru в поле Логин - идентификатор клиента (число), в поле Пароль - API ключ (длинное шестнадцатеричное число)
  • Image Removed
  • Размер ответного кода рекомендуется устанавливать в "4 цифры".
  • Выберите страницу типа "Звонок абоненту", или её клон.
  • Проверить возможность вызова, используя форму http://адрес.вашего.сервера/cp/testsend


    Укажите ваш номер телефона, получите вызов с кодом "1234"
    Внимание! Чтобы эта проверка работала, включите "Тестовые интерфейсы СМС и шаблонов страниц" в меню "Конфигурация - Общие настройки"Отредактировать стандартный шаблон страницы типа "Звонок абоненту", или её клон

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

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

    Image Added

    Существует возможность настроить собственную АТС 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»,представляющий собой строку, в которой задается имя канала с возможностью «на лету» изменять переменные вида: %переменная% реальными значениями.

    Warning

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

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

    SIP/%TRUNK%/%PHONE%

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

    SIP/zadarma/79998887766

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

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

    zadarma/79998887766@default

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

    %TRUNK%/%PHONE%@%CONTEXT%