Начиная с версии 1.2.685 WNAM поддерживает идентификацию абонента через приём звонка от абонента на ваш указанный номер.
Данный метод похож на идентификацию через получение СМС. Однако вместо отправки СМС-сообщения абонент совершает , за свой счёт , исходящий вызов на ваш номер телефона. Этот номер должен быть вами приобретен Номер, на который должны поступать звонки от абонентов, необходимо приобрести у любого провайдера , и заведён завести на шлюз (программную АТС) Asterisk под вашим управлением. Длительность входящего вызова минимальна: звонок сразу сбрасывается. Для WNAM важно определить входящий номер вызывающего абонента, который проводит авторизацию.
Преимущества этого способа идентификации таковыТакой способ идентификации имеет ряд преимуществ:
- Практически нулевые минимальные операционные затраты - при использовании SIP-провайдеров стоимость входящих вызовов нулевая, а стоимость аренды номера - нулевая или минимальна близка к нулевой;
существует Есть возможность произнесения абоненту рекламного сообщения, которое он обязан дослушать до конца.
Для настройки данного метода необходимо произвести следующие действия:
1.
...
Настройка входящей телефонной линии
Необходимо создать учётную запись у вашего используемого VoIP провайдера, арендовать (получить, купить) телефонный номер.
В приведенном примере ниже используется провайдер zadarma.com, где общий внешний номер провайдера +7 495 777 66 75, а внутренний номер 454498 (то есть получение вызова будет требовать донабора). Для удобства использования рекомендуется получить выделенный номер.
Установка и настройка АТС Asterisk, настройка взаимодействия с провайдером должна быть проведена вами самостоятельно при помощи соответствующих инструкций провайдера. Если вы используете Если используется АТС другого типа, не проблема - вам то необходимо реализовать какое-либо действие (например, вызов скрипта), которое АТС выполнит при поступлении звонка. Обращайтесь В случае возникновения проблем с реализацией данного способа следует обратиться в техническую поддержку за помощью на support@netams.com за помощью.
ПредполагаетсяПо умолчанию предполагается, что входящие вызовы поступают в контекст [default].
2. Настройка уведомления со стороны АТС Asterisk в сторону WNAM о входящем звонке
В конфигурационном файле /etc/asterisk/extensions.conf в контексте [default] необходимо создать правила вызова скрипта-уведомителя при помощи интерфейса AGI.:
[default]
;include => demoexten => 454498,1,NoOp(Входящий звонок с номера ${CALLERID(num)})
same => n,AGI(wnam-asterisk-bridge.pl,${CALLERID(num)})
same => n,Hangup()
В поле exten укажите указать ваш внешний номер телефона.
Далее , необходимо скачать скрипт взаимодействия wnam-asterisk-bridge.pl [используйте бинарную утилиту, см. ниже] из репозитория http://www.netams.com/files/wnam/misc/ , поместить поместив его в каталог скриптов /usr/share/asterisk/agi-bin/ и сделать его исполняемым:
chmod +x /usr/share/asterisk/agi-bin/wnam-asterisk-bridge.pl
При необходимости, если АТС Asterisk и WNAM работают на разных серверах, отредактируйте следует отредактировать скрипт, прописав адрес сервера WNAM. Проверьте Затем необходимо проверить работоспособность взаимодействия, запустите запустив скрипт:
/usr/share/asterisk/agi-bin/wnam-asterisk-bridge.pl 1234
При этом в лог-файле wnam.log вы должны увидеть появиться следующие две записи:
12:18:37.192 DEBUG [c.n.wnam.services.WnamCmdService:230] - Start handling client connection
12:18:37.192 DEBUG [c.n.wnam.services.WnamCmdService:249] - Finish handling client connection
...
Warning |
---|
Начиная с версий WNAM 1.3.1339 и 1.4.1499 рекомендуемым способом идентификации по звонку является использование не Perl, а бинарного (двоичного) скрипта wnam-asterisk-bridge, который находится в том же репозитории http://www.netams.com/files/wnam/misc/ |
...
с его исходными текстами. Параметры |
...
вызова скрипта (командной строки) дополнительно указывают на IP адрес сервера WNAM |
...
и пароль взаимодействия. Также для авторизации через пул номеров необходимо передавать номер, на который пришёл вызов. |
...
Пример использования скрипта: |
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
3. Настройка WNAM
Со стороны административного интерфейса WNAM требуется в разделе "Конфигурация" → "Площадки" требуется только выбрать новый метод идентификации "получение Получение звонка от абонента". Он может быть общим (по умолчанию, для всех площадок), и индивидуально выбранным для заданной площадки:
Параметры Параметр "провайдер ", "логин", "пароль", "ответный кодзвонка" значения не имеютимеет и может быть не заполнен.
Необходимо выбрать страницу шаблона в поле "Имя страницы", отображаемую абоненты абонентов при идентификации. В дистрибутиве идет представлена шаблонная страница call_recv.
4. Модификация страницы авторизации
Вам Далее необходимо отредактировать шаблон страницы call_recv из меню "Конфигурация - Загружаемые страницы портала" → "Гостевая конфигурация" → "Конструктор страниц" на вкладке "Авторизация". Как минимум, вам необходимо необходимо указать входящий номер телефона вашего шлюза АТС Asterisk.
Номер указывается в виде текста, отображаемого на зеленой кнопке, и в параметрах ссылки в формате:
<a href="tel:+74957776675,454498#">...
или
<a href="tel:+74951234567">...
...
Warning |
---|
Возможность перехода при нажатии на ссылку на телефонное приложение с вызовом номера авторизации зависит от возможности телефона (модель, операционная система). В версии WNAM 1.4.1418 |
...
реализован механизм в странице типа call_recv, позволяющий совершать исходящий вызов по ссылке и из мини-браузера iOS |
...
и Safari. Вызов из мини-браузера Android также работает. |
5. Проверка идентификации
При подключении к сети абонент, открыв браузер и перейдя по ссылке, попадает на стандартную процедуру идентификации:
На первом шаге абонент указывает свой номер телефона.
На втором шаге абоненту предлагается , где первым шагом должен указать свой номер телефона, а вторым шагом должен совершить идентификационный звонок:
...
При нажатии на зеленую кнопку , если она сработает, (при её работоспособности) абоненту будет предложено открыть телефонное приложение и сделать вызов:
...
После совершения вызова произойдет автоматическое перенаправление браузера на окно redirect, либо иное действие, определенное в разделе "Перенаправление". По умолчанию, проверка того, пришел ли звонок и произведена ли идентификация, выполненного звонка и идентификации производится раз в 5 секунд (таймер задается в js-коде страницы call_recv).
При корректной идентификации в лог-файле wnam.log вы увидите следующую будет отображена следующая цепочку событий:
12:17:14.068 DEBUG [c.n.w.web.cp.CaptivePortalController:288] - CP mikrotik clicked: username=AA:56:14:DD:38:58, ip=10.130.3.235, dst='http://www.ru/', server_address=10.130.3.1:80, server_name='mk1-hs'
12:17:14.199 DEBUG [c.n.w.web.cp.CaptivePortalController:1020] - processAuthRequest MIKROTIK: username=AA:56:14:DD:38:58, ip=10.130.3.235, server=10.130.3.1:80, site_id=55, dst='http://www.ru/'
12:17:14.209 DEBUG [c.n.w.web.cp.CaptivePortalController:1052] - captive portal redirected to SMS page, username=AA:56:14:DD:38:58, cust=null, form='call_recv'
12:17:24.292 DEBUG [c.n.w.web.cp.CaptivePortalController:752] - CP CALLRECV phase 1: mac=AA:56:14:DD:38:58, ip=10.130.3.235, phone=79153446712
12:17:29.854 DEBUG [c.n.w.web.cp.CaptivePortalController:816] - CP CALLRECV phase 2: mac=AA:56:14:DD:38:58, ip=10.130.3.235, phone=79153446712, smscode=1617 UNVERIFIED
12:18:36.091 DEBUG [c.n.w.web.cp.CaptivePortalController:816] - CP CALLRECV phase 2: mac=AA:56:14:DD:38:58, ip=10.130.3.235, phone=79153446712, smscode=1617 UNVERIFIED
12:18:37.192 DEBUG [c.n.wnam.services.WnamCmdService:230] - Start handling client connection
12:18:37.192 DEBUG [c.n.wnam.services.WnamCmdService:714] - CALL-RECV confirmed phone 79153446712, MAC=AA:56:14:DD:38:58, CODE=1617
12:18:37.192 DEBUG [c.n.wnam.services.WnamCmdService:249] - Finish handling client connection
12:18:41.625 DEBUG [c.n.w.web.cp.CaptivePortalController:791] - CP SMSRECV phase 2: mac=AA:56:14:DD:38:58, ip=10.130.3.235, phone=79153446712, smscode=1617 VERIFIED
12:18:41.635 DEBUG [c.n.w.web.cp.CaptivePortalController:1092] - processRedirectRequest username=AA:56:14:DD:38:58, method=FORM
12:18:43.729 DEBUG [c.n.w.web.cp.CaptivePortalController:850] - Redirect login: site_id=55, username=AA:56:14:DD:38:58, dst='http://bash.im'
12:18:43.729 DEBUG [c.n.w.web.cp.CaptivePortalController:1221] - loginAtNas MIKROTIK username=AA:56:14:DD:38:58, ip=10.130.3.235, server=10.130.3.1:80, dst='http://bash.im'
12:18:43.739 DEBUG [com.netams.wnam.web.cp.Mikrotik:37] - backToMikrotik login len=531, server='10.130.3.1:80', username=AA:56:14:DD:38:58, password=password, dst='http://bash.im'
12:18:44.200 DEBUG [c.n.wnam.services.WnamCmdService:230] - Start handling client connection
12:18:44.220 INFO [WnamRadius:451] - AUTH for new session ID=8050007e-9b3858, request MAC=AA:56:14:DD:38:58, IP=10.130.3.235, cust_clientid=null
12:18:44.240 DEBUG [c.n.wnam.services.WnamCmdService:230] - Start handling client connection
12:18:44.240 INFO [WnamRadius:550] - ACCT Start existing (8050007e-9b3858) session ID=8050007e-9b3858, MAC=AA:56:14:DD:38:58, IP=10.130.3.235, NAS=172.16.130.9