Один из вариантов интеграции позволяет получать данные о звонках пользователей по протоколу RADIUS. В этом варианте сервис eltex-ngw ожидает пакет radacct-stop (Acct-Status-Type = Stop), в котором в параметре Calling-Station-Id содержится номер телефона позвонившего пользователя.
Настройка:
Настроить файлы конфигурации на сервере:
В файле /etc/eltex-ngw/application.conf укажите конфигурационный файл для исходящих вызовов:
call { // Incoming (user to service) call config incoming.config = "sbc.conf" // Outgoing (service to user) call config outgoing.config = "" }
В файле /etc/eltex-ngw/gateway.d/sbc.conf укажите порт, secret и номер выделенного телефона:
connection { port = 8041 secret = 1234 } common { incoming_call_numbers=[88001230123] # prefix to be applied to the phone number in Calling-Station-Id attribute prefix="" }
Раздел connection:
port = порт который слушает sbc шлюз;
secret = radius-secret, который настроен на sbc шлюзе;
Раздел common:
incoming_sms_numbers = номер, выделенного телефона;
prefix = параметр добавляет заданный префикс в аккаунтинг-оповещения о входящих звонках с SBC.
Перезапустите службу NGW командой:
sudo service eltex-ngw restart
Проверка:
Для теста можно отправить acct-stop при помощи утилиты radclient:
echo 'Acct-Status-Type = Stop, Calling-Station-Id = "<sip:+79234567890@exmple.ru>"' | radclient localhost:8041 acct eltexsecret
Обратите внимание, что сервис eltex-ngw при использовании конфигурации sbc.conf ожидает номер именно в формате <sip:номер телефона@какой_то_текст> (например <sip:79234567890@a> ). Если формат номера будет не соответствовать, то возникнет ошибка обработки, в логах будет выведено сообщение:
2017-10-10 00:00:00.001 [SbcRadiusReceiver] WARN SbcRadiusReceiver:151 - Could not extract phone from Calling-Station-Id "79234567890"
Пример пакета radacct, который должен прилететь на eltex-ngw:
Дамп трафика с примером пакета: