Страница 1 из 1
Фильтрация клиентов по useragent
Добавлено: 21 янв 2020, 00:12
coolman
Всем привет! Есть необходимость для отдельных пользователей настроить фильтрацию по useragent параметру.
Что имеется введу что некоторым пользователям запретить пользоваться всеми клиентами кроме определенных.
Поискав в гугле решения по этой задаче к сожалению я ничего не нашел.
Буду благодарен за помощь.
Re: Фильтрация клиентов по useragent
Добавлено: 21 янв 2020, 03: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, 05:19
coolman
Спасибо за ваш ответ но к сожалению данное решение не подходит так как необходимо сделать фильтр только для части клиентов.
Ваше решение закроет доступ к всему серверу.
Так же я не уверен но помойму оно не будет работать для TLS соединений.
Re: Фильтрация клиентов по useragent
Добавлено: 21 янв 2020, 10:21
zzuz
Код: Выделить всё
same => n,ExecIF($[${REGEX("eyeBeam" ${SIP_HEADER(User-Agent)}]?Noop():Hangup())
Re: Фильтрация клиентов по useragent
Добавлено: 22 янв 2020, 00:34
coolman
Спасибо большое за решение оно отлично подходит!
Как то сам не подумал отбивать это на уровне extension
Единственное возможно на будущее если каму то понадобится в вашем примере пропущена запятая правильнее будет так:
same => n,ExecIF($[${REGEX("eyeBeam", ${SIP_HEADER(User-Agent)}]?Noop():Hangup())
Единственное конечно в идеале отбивать ненужные устройства еще на уровне регистрации.
Может есть и для этого какое то решение ?
Re: Фильтрация клиентов по useragent
Добавлено: 22 янв 2020, 08:28
Turbid
coolman писал(а):отбивать ненужные устройства еще на уровне регистрации
разве что только на уровне proxy (kamailio, opensips)...
Re: Фильтрация клиентов по useragent
Добавлено: 22 янв 2020, 12:51
zzuz
По поводу синтаксиса , что на 1.8 версии , что на 16
Код: Выделить всё
[Syntax]
REGEX("regular expression" string)
Так что непонятно откуда вы запятую придумали.