Описание взаимодействия
Алгоритм подключения:
- Пользователь при подключении к captive portal выбирает авторизацию обратным звонком и вводит свой номер телефона;
- Eltex-portal по протоколу websocket передает информацию сервису eltex-ngw о вызываемом номере (Called number);
- Eltex-ngw с помощью CoA запроса передает информацию о вызываемом номере smg-шлюз;
- SMG-шлюз совершает вызов с одного из номеров (пул номеров) и в CoA-ACK передает номер с которого совершается вызов пользователю(Calling number);
- После того как пользователь ответит на вызов(при этом звонок будет сброшен), отобьет вызов или проигнорирует, SMG-шлюз отправляет на сервис ngw Radius пакет ACC-STOP c подтверждением, что звонок прошел;
- Пользователь вводит последние четыре цифры с номера с которого совершился вызов;
- Авторизация пройдена успешно.
Для корректной работы авторизации по обратному звонку, необходимо обеспечить сетевую связность между сервисом eltex-ngw и smg-шлюзом. Исходящий порт по-умолчанию для сервиса eltex-ngw UDP/3799, порт для входящих соединений UDP/1814.
Описание
Для авторизации пользователя на портале, нужно подключиться к SSID с портальной авторизацией, указать свой номер телефона и и нажать на кнопку "Подтвердить входящим звонком" . После появится сообщение "Введите последние 4 цифры вызывающего номера", а пользователю поступит звонок.
- Возможно ответить на звонок, тогда вызов будет сброшен
- Отбить вызов
- Ожидать завершения вызова
Ввести последние 4 цифры вызывающего номера в поле для ввода и нажать на "Войти".
Авторизация выполнена, учетная запись пользователя будет подвержена.
Схема взаимодействия доступна по ссылке Схема взаимодействия при авторизации обратным звонком
Настройка авторизации по звонку
Для подтверждения учетной записи пользователя при помощи обратного звонка нужно выполнить настройку eltex-ngw и включить способ подтверждения "Входящий вызов" в общий настройках портала.
1) С Настройкой модуля eltex-ngw по взаимодействию с smg-шлюзом можно ознакомиться перейдя по ссылке Настройка авторизации по входящему звонку
2) Открыть конструктор портала, выбрать портал на котором будет активен способ подтверждения по Входящему звонку и перейти в общие настройки. В разделе "Способ подтверждения личности" включить чекбокс "Входящий вызов". После включения чекбокса станет активно поле "Таймаут ожидания вызова", где можно установить время ожидания вызова. По дефолту таймаут равен 30 секундам.
"Таймаут ожидания вызова" время, по истечению которого, на странице ожидания ввода последних четырех цифр входящего номера перестанет быть доступно поле ввода и появится сообщение "Не удалось совершить вызов. Пожалуйста, попробуйте снова." если не пришел radius acct-stop пакет от SMG-шлюза на Eltex-NGW.
Если пользователь портала при авторизации по звонку ожидает завершения вызова, то стандартного значения "таймаут ожидания вызова" может не хватит, тогда следует увеличить значение , которое будет больше времени ожидания ответа на вызов(настраивается на SMG-шлюзе).
Диагностика проблем
Ошибка выполнения запроса. Проверьте подключение к сети
По нажатию на кнопку "Подтвердить входящим звонком" появляется "Ошибка выполнения запроса. Проверьте подключение к сети"
- Нет связности между сервисом Eltex-NGW и SMG-шлюзом
-Убедиться, что правильно указан адрес SMG шлюза в конфигурационном файле. -Убедиться, что порт 3799 SMG-шлюза доступен с сервера, где расположен Eltex-NGW
root@vagrant-ubuntu16-xenial-64-SWLC:~# nmap -sU -p 3799 192.168.114.163 Starting Nmap 7.01 ( https://nmap.org ) at 2019-03-14 09:32 +07 Nmap scan report for 192.168.114.163 Host is up (0.00056s latency). PORT STATE SERVICE 3799/udp open|filtered radius-dynauth
- Не правильно указан ключ smg.secret в конфигурационном файле Eltex-NGW
- Убедиться, что ключ совпадает для eltex-ngw так и для SMG-шлюза в разделе "Серверы RADIUS-Authorization". Если ключи разные, то при отправке CoA request с eltex-ngw, шлюз не будет отвечать.
Не удалось совершить вызов. Пожалуйста, попробуйте снова
Если появилось сообщение "Не удалось совершить вызов. Пожалуйста, попробуйте снова", а поле ввода стало недоступно при этом был ответ на звонок, то
- Убедиться, порт указанный в конфигурационном файле eltex-ngw открыт и не занят.
- Убедиться, что порт указанный в конфигурационном файле eltex-ngw доступен c SMG шлюза , по умолчанию 1814.
- Ключ listen.secret совпадает с SMG шлюзом в разделе Серверы RADIUS-Accounting, если ключ не верен, то в логах ngw можно увидеть сообщения:
2019-03-14 10:03:06.006 ERROR SmgGate$Receiver:161 - Incorrect authenticator for incoming radius packet 2019-03-14 10:03:06.006 DEBUG SmgGate$Receiver:179 - Packet received 2019-03-14 10:03:06.006 ERROR SmgGate$Receiver:161 - Incorrect authenticator for incoming radius packet 2019-03-14 10:03:07.007 DEBUG SmgGate$Receiver:179 - Packet received 2019-03-14 10:03:07.007 ERROR SmgGate$Receiver:161 - Incorrect authenticator for incoming radius packet
Сценарий идентификации
Настройка SMG
Исходные данные
Транковый шлюз SMG настроен для взаимодействия с ТфОП (настроены интерфейсы подключения к ТфОП и план нумерации) и может осуществлять вызовы. Настройка шлюза осуществляется в соответствии с руководством по эксплуатации.
Требования к настройке сети передачи данных
SMG принимает запросы RADIUS Change-of-Authorization (CoA) на UDP порт 3799. Сеть должна обеспечивать прохождение запросов на указанный порт SMG от Eltex NGW.
SMG отправляет запросы RADIUS Accounting на UDP порт 1813. Сеть должна обеспечивать прохождение запросов на указанный порт Eltex NGW от SMG.
Описание работы
Работа функционала инициируется через запрос RADIUS Change-of-Authorization (CoA) (описан в стандарте RFC 5176). Применяется для услуги авторизации подключения к сетям общественного доступа обратным вызовом. Пользователь подключается к сети и попадает на WEB-портал, где запрашивается пароль доступа и предлагается ввести пароль для авторизации. После ввода номера пользователь получает вызов на свой телефон. Отобразившийся у пользователя номер вызывающего или часть его служат паролем доступа к сети общественного доступа, который следует ввести на WEB-портале. Для инициации вызова WEB-портал должен отправить на SMG по протоколу RADIUS пакет CoA-Request, содержащий аттрибут Called-Station-Id с номером телефона пользователя. Пример запроса CoA-Request:
RADIUS Protocol Code: CoA-Request (43) Packet identifier: 0xa0 (160) Length: 33 Authenticator: ac02dd52e3435a2fa46ed7cd2f7f177d Attribute Value Pairs AVP: l=13 t=Called-Station-Id(30): 70123456789 Type: 30 Length: 13 Called-Station-Id: 70123456789
В случае, если номер может быть вызван, SMG выбирает номер вызывающего из заданного пула номеров и отправляет его в ответе CoA-ACK в аттрибуте Calling-Station-Id. После этого SMG инициирует вызов с выбранного номера на номер пользователя. Вне зависимости от результатов вызова (сброс вызова, ответ пользователя или окончание вызова по таймауту неответа), SMG отправляет информацию о совершённом вызове в запросах RADIUS Accounting. При ответе пользователя вызов будет немедленно сброшен. Пример ответа CoA-ACK:
RADIUS Protocol Code: CoA-ACK (44) Packet identifier: 0xa0 (160) Length: 33 Authenticator: 60363e5d4f742df10316cc05b81a42f6 Attribute Value Pairs AVP: l=13 t=Calling-Station-Id(31): 73830019698 Type: 31 Length: 13 Calling-Station-Id: 73830019698
В случае, если указанный пользователем номер не может быть вызван, SMG ответит сообщением CoA-NAK без каких-либо аттрибутов и не будет инициировать вызов. В случае, если запрос CoA-Request пришёл с сервера RADIUS, который не привязан к выбранному профилю RADIUS или на сетевой интерфейс, который не соответствует выбранному серверу, SMG проигнорирует такой запрос. Вызов совершается с виртуального номера. Маршрутизация вызова производится на общих основаниях через привязанный к виртуальному номеру план нумерации.
Параметры виртуального номера:
- PBX-профиль – привязка PBX-профиля;
- RADIUS профиль – профиль RADIUS, который будет использоваться для отправки запросов Accounting. С серверов, привязанных к этому профилю, могут приниматься запросы RADIUS CoA;
- План нумерации – привязка плана нумерации для маршрутизации вызовов;
- Категория доступа – выбор категории доступа;
- Категория АОН – выбор категории АОН;
- Метод выбора – метод выбора номеров из тех, что заданы в пуле номеров:
- случайный – номера будут выбираться в случайном порядке;
- последовательный – номера будут выбираться по порядку;
- Пулы номеров – пулы номеров, с которых будут осуществляться вызовы. Для организации пула необходимо задать начальный номер и диапазон номеров в пуле. Всего может быть задано 64 пула.
Для настройки работы услуги необходимо:
Зайти в раздел "RADIUS -> Серверы RADIUS"
- Задать адрес сервера, с которого может приходить RADIUS CoA запрос;
- Задать адрес сервера, на который будет отправляться RADIUS Accounting;
- Выбрать сетевой интерфейс, на котором будет осуществляться взаимодействие;
- Применить изменения.
Зайти в раздел "RADIUS -> Список профилей"
- Активировать опцию "Использовать RADIUS-Accounting";
- Указать, по каким событиям отправлять запросы RADIUS Accounting;
- Применить изменения.
Зайти в раздел "RADIUS -> Авторизация обратным вызовом"
- Задать параметры виртуального абонента, от лица которого будут инициированы вызовы:
- выбрать PBX профиль;
- выбрать созданный ранее профиль RADIUS;
- указать план нумерации, через который будет осуществляться вызов;
- задать категорию доступа (если используется);
- задать категорию АОН;
- задать метод выбора А-номера из пула - по порядку или случайным образом;
- Добавить пулы номеров, с которых будет совершаться вызов. Потребуется задать начальный номер и диапазон номеров;
- Применить изменения.