Начиная с версии 1.2.660 WNAM поддерживает идентификацию абонента через совершение звонка на указанный им номер, с произнесением кода доступа.
Начиная с С версии 1.6.2802 также WNAM поддерживается сценарий двухфакторной авторизации, где кодом доступа являются последние цифры номера входящего звонка от провайдера .
Данный метод похож на идентификацию через СМС. Однако вместо СМС- сообщения абонент получает входящий, бесплатный для него, вызов, где:
- либо механический голос произносит код доступа
- либо необходимо запомнить последние цифры вызывающего номера
которые затем абонент вводит в поле "код" второй стадии процесса идентификации.
Преимущества такого способа очевидны:
или последовательность цифр, произнесенная механическим голосом при ответе на звонок. Входящий звонок является для абонента бесплатным. Код доступа необходимо ввести в соответствующее поле страницы идентификации – «код».
Преимущества идентификации посредством входящего звонка:
- сокращение стоимости Меньше стоимость идентификации (от 0.25 до 0.46 рублей за вызов против примерно 3 рубля за СМС), а в случае ). При наличии собственного сервера - порядка 10 копеек за звонок с посекундной тарификацией.;
- Высокая высокая надежность (СМС доходят не всегда)
- Не надо регистрировать имена отправителя СМС
- входящий звонок поступает абоненту мгновенно);
- отсутствие регистрации имен отправителя (как в случае с идентификацией посредством СМС-сообщений);
- потенциальная возможность произнесения рекламы (рекламной фразы).Потенциальная возможность произнесения рекламной фразы
В настоящий момент поддерживается четыре сторонних провайдера для
...
совершения звонков с произнесением кода доступа и один собственный провайдер:
- ВМЕСТОСМС – vmestosms.ru. Внимание! Данный способ работает только для российских номеров (начинающихся на 7). Фиксированный тариф 46 копеек за вызов. Код Провайдер предоставляет фиксированный тариф за вызов – 46 копеек, при этом код доступа произносится дважды.
- BitCall – sc-tehno.ru (https://bitcall.ru). Тариф данного провайдера зависит от направления и длительности звонка (и составляет порядка 25 копеек за вызов). Код , код доступа произносится один раз.
- SMSЦЕНТР (http://smsc.ru Тариф ). Тариф данного провайдера зависит от направления и длительности звонка (и составляет порядка 25 копеек за вызов). Код , код доступа произносится два раза.
- New-Tel (http://callpassword.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 (код в номере) (с версии WNAM 1.6.3038)
- i-digital.ru (код в номере) (с версии WNAM 1.6.3038) obit.ru (код в номере) (с версии WNAM 1.6.3092)
- . Код доступа данного провайдера соответствует последним цифрам номера входящего звонка абоненту.
- Voicepassword.ru. Код доступа данного провайдера соответствует последним цифрам номера входящего звонка абоненту, но также доступен абоненту при ответе на звонок. Применимая длина кода доступа определяется в настройках способа идентификации.
- Telediscount.ru. Код доступа данного провайдера соответствует последним цифрам номера входящего звонка абоненту.
- I-digital.ru. Код доступа данного провайдера соответствует последним цифрам номера входящего звонка абоненту.
- obit.ru. Код доступа данного провайдера соответствует последним цифрам номера входящего звонка абоненту.
Warning |
---|
Услуга провайдеров Telediscount и I-digital доступна с версии WNAM 1.6.3038. Услуга провайдера Obit доступна с версии WNAM 1.6.3092. |
1. Настройка идентификации при использовании сторонних провайдеров
Для настройки данного метода необходимо:
Выбрать провайдера, зарегистрироваться на сайте провайдера и полнить счет на необходимую сумму.
Перейти в настройки способа авторизации с помощью учетной записи администратора в интерфейсе WNAM ("Конфигурация" → "Гостевая авторизация" → "Авторизация"). В соответствующем поле указать метод «Звонок абоненту» и выбрать провайдера. В настройках провайдера необходимо выполнить следующие действия:
Для провайдера BitCall зарегистрировать
номер (номер отправителя звонка).
Зарегистрированный номер будет являться логином в форме настройки.
Для ВМЕСТОСМС в поле Логин - ничего
В поле «Логин» ввести зарегистрированный номер телефона, в поле
«Пароль» ввести API ключ.
Для
провайдера ВМЕСТОСМС поле «Логин» оставить пустым, в поле
«Пароль» ввести API ключ.
Для провайдеров SMSЦЕНТР
и obit.ru в
поля «Логин» и «Пароль» следует ввести учетные данные в системе
– логин и пароль соответственно. Также в личном кабинете провайдера
необходимо настроить допустимые IP-адреса.
Для провайдера New-Tel Callpassword.ru в поле
«Логин» ввести ключ_API_для_авторизации_запросов, в поле
«Пароль» ввести ключ_API_для_подписи_запросов.
Дополнительно в поле «URL системы» можно ввести последовательность «voice», которая отвечает за произнесение кода доступа механическим голосом.
- Для провайдеров voicepassword.ru и i-digital.
- ru в поле
- «API ключ» необходимо ввести ключ, который отображен в личном кабинете провайдера сервиса.
После ввода необходимых данных следует нажать кнопку "Сохранить изменения" и произвести Провести тестирование путем совершения вызова через конструктор страниц, или имя_сервера/cp/testform. В случае успеха в wnam.log вы увидите что-то подобноеуспешного применения настроек, в файле регистрации событий «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. Настройка собственной АТС
Это трудозатратно, но стоит дешевле.
На сторонеПри использовании собственной АТС администратору необходимо выполнить следующие действия:
- В настройках WNAM для звонка через собственную АТС
- в поле «Провайдер звонка» необходимо указатьнаименование провайдера
- «Локальная АТС
- Asterisk»,
- в поле
- «URL системы» ввести параметры АТС в формате
- ip_адрес_астериска/имя_контекста/имя_транка, например:
Также следует указать логин и пароль для172.16.130.13/default/zadarma
- В полях «Логин» и «Пароль» ввести учетные данные пользователя системы – от Manager-коннекта до
- Asterisk. Учетные записи WNAM и Asterisk можно хранить как на одном сервере, так и на разных. Во втором случае
- следует убедиться в доступности порта TCP:5038 на сервере АТС.
- Нажать кнопку «Сохранить изменения».
Установить размер ответного кода доступа (рекомендованное значение «4 цифры»).
- Выбрать страницу типа «Звонок абоненту»
- , или её клон.
- Проверить возможность вызова, используя форму http://адрес.вашего.сервера/cp/testsend
Укажите ваш номер телефона, получите вызов с кодом "1234"
Внимание! Чтобы эта проверка работала, включите "Тестовые
- . Перед проверкой необходимо включить «Тестовые интерфейсы СМС и шаблонов
- страниц» в меню
- «Конфигурация – Общие настройки». В соответствующем поле указать номер телефона, после чего получить входящий звонок с кодом доступа «1234».
- Отредактировать стандартный шаблон страницы типа
- «Звонок абоненту», или её клон
- .
Существует возможность настроить Вы можете настроить вашу собственную АТС Asterisk на том же сервере, где работает и WNAM, или на другом вашем сервере. Вам в любом случае будет В обоих случаях необходимо:1.
- Настроить исходящий
- способ подключения (trank) на АТС, ведущий в сторону
- SIP-провайдера
- Детальная инструкция по настройке SIP-провайдера представлена в документации на АТС Asterisk и документации собственного провайдера.
- Настроить Manager-подключение. Для этого
- в файле конфигурации, расположенном по директории /etc/asterisk/manager.d/wnam.conf
- необходимо указать IP-адрес, сети, имя в квадратных скобках (логин) и пароль
- (
- расположение этого и последующих файлов может отличаться
- в зависимости от версии дистрибутива Linux):
3.[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
- Внести изменения в
- номерной план (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()
Во второй строке укажите ваш Caller ID, то есть CALLERID необходимо указать собственный номер телефона.4.
- Загрузить языковые звуковые пакеты для поддержки русского языка при произношении кода доступа в АТС Asterisk.
- Для ОС Debian
- необходимо установить следующие пакеты:
apt-get install asterisk-core-sounds-ru asterisk-core-sounds-ru-gsm asterisk-core-sounds-ru-wav
5. Вам также Дополнительно понадобится файл, который будет произнесен в линию абоненту перед кодом, например некоторое приветствие. В нашем примере используются файлы vashотвечает за приветствие абонента перед сообщением кода доступа. В качестве примера используются файлы «vash-kod-dostupa.wav wav» и vash«vash-kod-dostupa.gsmgsm», которые можно взять здесь и здесь. После загрузки их необходимо поместить в сюдаполучить по ссылкам 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, ис помощью программы «Yandex Speech Kit», конвертировав их онлайн-конвертерами (
форматрекомендуемые настройки конвертации: 8000 Гц, моно, 16 бит).
6.- Исходящие звонки отправляются в АТС Asterisk с номерами в международном формате, например, 79150002244.
- Возможность изменить номер в
- номерном плане АТС Asterisk отсутствует. Если выбранный SIP-провайдер ожидает увидеть исходящий номер в ином формате
- , то необходимо в разделе «Конфигурация" → "
- Дополнительные
- настройки» установить значение параметра
- «asterisk_
- pattern». Формат значения имеет вид: регулярное выражение совпадения ... знак | ... выражение замены, например
- :
^7|0
Это означает замену ведущей
семеркесемерки в номере на ноль. При этом
не забудьте поменять паттерн в диалпланетребуется поменять шаблон (pattern) в номерной плане: (exten => _7NXXXXXXXXX на exten => _0NXXXXXXXXX).
После настройки АТС Asterinsk
перезапуститеследует перезапустить сервис, и
сделайтесделать проверку работы авторизации. После ввода абонентом своего телефонного номера через несколько секунд ему поступит вызов, в котором
ему произнесутбудет произнесено, например,
"Вашследующее: «Ваш код доступа семь четыре три
девять", и положат трубкудевять», после чего звонок завершится автоматически. Такой звонок занимает около десяти секунд.
При этом в лог-файле или консоли Asterisk (включите отладку: coreДалее следует перейти в консоль настройки АТС Asterisk и включить отладку, набрав команду «core set debug 10 и sip set debug
on) вы увидите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.944DEBUG
[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.949INFO
[o.a.live.internal.ChannelManager:213]
-
Adding
channel
SIP/zadarma-00000012(1586713540.31)
7. Начиная с С версии WNAM 1.6.3231 поддерживается переопределение имени исходящего канала при совершении звонка через management-интерфейс АТС Asterisk. Стандартное именование наименование канала , "SIP«SIP/имя_транка/номер_абонента" абонента» можно изменить. Воспользуйтесь этим способомСледует воспользоваться такой возможностью, если ваш администратор администратору АТС хочет требуется видеть в SIP-заголовках другие дополнительные параметры. Для этого в разделе «Конфигурация" → "Конфигурация - Дополнительная настройка" настройка» необходимо отредактировать параметр asteriskпараметр «asterisk_trunk_pattern. Он представляет pattern»,представляющий собой строку, в которой задается имя канала , с возможностью "на лету" «на лету» изменять переменные вида: %переменная% реальными значениями реальными значениями.
Warning |
---|
Изменение параметра «asterisk_trunk_pattern» требует перезапуска сервиса WNAM. |
Например, стандартная конфигурация параметра имеет вид:
SIP/%TRUNK%/%PHONE%
при При совершении вызова будет формировать сформировано имя канала:
SIP/zadarma/79998887766
Вы можете использовать Для использования доступны следующие переменные: %TRUNK% %TRUNK%, %PHONE%, %CONTEXT% %CONTEXT%, %CODE%%CODE%.
Например, если ваша АТС желает требуется видеть в имени контекста значение, напримертакое как:
zadarma/79998887766@default
переменная asterisk,то переменная «asterisk_trunk_pattern pattern» должна иметь вид:
%TRUNK%/%PHONE%@%CONTEXT%
...