Страница 1 из 1

Фильтрация клиентов по useragent

СообщениеДобавлено: 21 янв 2020, 01:12
coolman
Всем привет! Есть необходимость для отдельных пользователей настроить фильтрацию по useragent параметру.
Что имеется введу что некоторым пользователям запретить пользоваться всеми клиентами кроме определенных.
Поискав в гугле решения по этой задаче к сожалению я ничего не нашел.
Буду благодарен за помощь.

Re: Фильтрация клиентов по useragent

СообщениеДобавлено: 21 янв 2020, 04:33
zzuz
Самое простое - iptables
например ,
iptables -A INPUT -p udp -m udp --dport 5060 -m string --string "eyeBeam" --algo bm --to 65535 -j DROP

Re: Фильтрация клиентов по useragent

СообщениеДобавлено: 21 янв 2020, 06:19
coolman
Спасибо за ваш ответ но к сожалению данное решение не подходит так как необходимо сделать фильтр только для части клиентов.
Ваше решение закроет доступ к всему серверу.
Так же я не уверен но помойму оно не будет работать для TLS соединений.

Re: Фильтрация клиентов по useragent

СообщениеДобавлено: 21 янв 2020, 11:21
zzuz
Код: выделить все
same => n,ExecIF($[${REGEX("eyeBeam" ${SIP_HEADER(User-Agent)}]?Noop():Hangup())

Re: Фильтрация клиентов по useragent

СообщениеДобавлено: 22 янв 2020, 01:34
coolman
Спасибо большое за решение оно отлично подходит!
Как то сам не подумал отбивать это на уровне extension
Единственное возможно на будущее если каму то понадобится в вашем примере пропущена запятая правильнее будет так:
same => n,ExecIF($[${REGEX("eyeBeam", ${SIP_HEADER(User-Agent)}]?Noop():Hangup())

Единственное конечно в идеале отбивать ненужные устройства еще на уровне регистрации.
Может есть и для этого какое то решение ?

Re: Фильтрация клиентов по useragent

СообщениеДобавлено: 22 янв 2020, 09:28
Turbid
coolman писал(а):отбивать ненужные устройства еще на уровне регистрации


разве что только на уровне proxy (kamailio, opensips)...

Re: Фильтрация клиентов по useragent

СообщениеДобавлено: 22 янв 2020, 13:51
zzuz
По поводу синтаксиса , что на 1.8 версии , что на 16

Код: выделить все
[Syntax]
REGEX("regular expression" string)


Так что непонятно откуда вы запятую придумали.