Versions Compared

Key

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

...

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

...

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

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

Для звонка через собственную АТС - указать провайдера "Локальная АТС Asterisk", и далее в поле URL системы - параметры АТС в формате:
ip_адрес_астериска/имя_контекста/имя_транка, например

172.16.130.13/default/zadarma

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

  1. Размер ответного кода рекомендуется устанавливать в "4 цифры".
  2. Выберите страницу типа "Звонок абоненту", или её клон.
  3. Проверить возможность вызова, используя форму http://адрес.вашего.сервера/cp/testsend
    Укажите ваш номер телефона, получите вызов с кодом "1234"
    Внимание! Чтобы эта проверка работала, включите "Тестовые интерфейсы СМС и шаблонов страниц" в меню "Конфигурация - Общие настройки"
  4. Отредактировать стандартный шаблон страницы типа "Звонок абоненту", или её клон

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

Настроить исходящий транк на АТС, ведущий в сторону вашего SIP-провайдера. Как его настроить-смотрите документацию от Asterisk и примеры, выдаваемые вашим провайдером.

Настроить 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

Внесите изменения в диалплан. Для этого в /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, то есть собственный номер телефона.

Загрузите языковые звуковые пакеты для поддержки русского языка в Asterisk. Будут использоваться звуковые файлы для произнесения цифр. Для ОС Debian поставьте пакеты:

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

Вам также понадобится файл, который будет произнесен в линию абоненту перед кодом, например некоторое приветствие. В нашем примере используется файл vash-kod-dostupa.wav и vash-kod-dostupa.gsm, которые можно загрузить здесь и здесь. После загрузки их необходимо поместить в сюда:

/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 бит).
После настройки Asterinsk перезапустите сервис, и сделайте проверку работы авторизации. После ввода абонентом своего телефонного номера через несколько секунд ему поступит вызов, в котором ему произнесут, например, "Ваш код доступа семь четыре три девять", и положат трубку. Такой звонок занимает около десяти секунд. При этом в лог-файле или консоли Asterisk (включите отладку: core set debug 10 и sip set debug on) вы увидите:
-- 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)