Начиная с версии 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 (с .ru).Тариф данного провайдера можно получить, запросив информацию на указанном сайте.
- 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 (код в номере) (с версии 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. Настройка идентификации при использовании сторонних провайдеров
Для настройки данного метода необходимо:
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 вы увидите что-то подобноеуспешного применения настроек, в файле регистрации событий «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"Asterisk», и далее в поле URL системы - «URL системы» ввести параметры АТС в формате :
ip_адрес_астериска/имя_контекста/имя_транка, например:
172.16.130.13/default/zadarma
Также следует указать логин и пароль для 2. В полях «Логин» и «Пароль» ввести учетные данные пользователя системы – от Manager-коннекта до Астериска. Вы можете держать Asterisk. Учетные записи WNAM и Asterisk можно хранить как на одном сервере, так и на разных. Во втором случае убедитесь следует убедиться в доступности порта TCP:5038 на сервере АТС.
3. Нажать кнопку «Сохранить изменения».
4. Установить размер ответного кода доступа (рекомендованное значение «4 цифры»).
5. Выбрать страницу типа «Звонок абоненту»
Выберите страницу типа "Звонок абоненту", или её клон.
6. Проверить возможность вызова, используя форму http://адрес.вашего.сервера/cp/testsend
Укажите ваш номер телефона, получите вызов с кодом "1234"
Внимание! Чтобы эта проверка работала, включите "Тестовые
. Перед проверкой необходимо включить «Тестовые интерфейсы СМС и шаблонов
страниц"страниц» в меню
"Конфигурация - Общие настройки"«Конфигурация – Общие настройки». В соответствующем поле указать номер телефона, после чего получить входящий звонок с кодом доступа «1234».
7. Отредактировать стандартный шаблон страницы типа
"Звонок абоненту"«Звонок абоненту», или её клон
.
Существует возможность настроить Вы можете настроить вашу собственную АТС Asterisk на том же сервере, где работает и WNAM, или на другом вашем сервере. Вам в любом случае будет В обоих случаях необходимо:
1. Настроить исходящий транк Настроить исходящий способ подключения (trank) на АТС, ведущий в сторону вашего SIP-провайдера . Как его настроить-смотрите документацию от Asterisk и примеры, выдаваемые вашим провайдеромДетальная инструкция по настройке SIP-провайдера представлена в документации на АТС Asterisk и документации собственного провайдера.
2. Настроить Manager-подключение. Для этого сделайте файл в файле конфигурации, расположенном по директории /etc/asterisk/manager.d/wnam.conf на основе шаблона такого содержания, указав ваши IP адресанеобходимо указать 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()
Во второй строке укажите ваш Caller ID, то есть CALLERID необходимо указать собственный номер телефона.
4. Загрузить языковые звуковые пакеты для поддержки русского языка при произношении кода доступа в Asterisk. Будут использоваться русские звуковые файлы для произнесения цифрАТС 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«asterisk_
patternpattern». Формат значения имеет вид: регулярное выражение совпадения ... знак | ... выражение замены, например
параметр вида:
^7|0
Это означает замену ведущей
семеркесемерки в номере на ноль. При этом
не забудьте поменять паттерн в диалпланетребуется поменять шаблон (pattern) в номерной плане: (exten => _7NXXXXXXXXX на exten => _0NXXXXXXXXX).
6. После настройки АТС 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%
...