Asterisk_Radius_помогите_связать
Asterisk_Radius_помогите_связать
Откуда: Челябинск
Сообщений: 31
|
Re: Asterisk_Radius_помогите_связать
По идее через INVITE это надо делать.
пробовал так:
if(!radius_proxy_authorize(""))
{
proxy_challenge("","1");
exit;
}
else
{
if (!check_from())
{
sl_send_reply("403", "Use From=ID");
exit;
}
else
{
xlog("L_INFO", "check_from OK M=$rm RURI=$ru F=$fu T=$tu IP=$si\n");
};
consume_credentials();
}
в принципе работает, но да иногда звонки прерываются, из-за чего не дошли руки выяснить, возможно радиус подглючивает, пока эти правила закоменчены. А что именно в инвайтах может не так прийти? Есть еще мысли на поточных цисках неправильным звонкам disconnect reqest делать, но пока клиентам доверяем, в сети в основном линксисы, если заблоичтся логин, то регистрация отвалится, и будет тишина в трубке.
|
Сообщений: 1530
|
Re: Asterisk_Radius_помогите_связать
ZloMurz: в принципе работает, но да иногда звонки прерываются, из-за чего не дошли руки выяснить
Я выяснял. Проблема в том, что INVITE может придти без необходимых для Digest авторизации данных, в результате биллинг/radius "отшивает" запрос, а Kamailio/SER/OpenSER, как следствие, его рвет. Причем рвет одно плечо! Вызываемый абонент остается висеть, но вызов уже не тарифицируется!!!
ZloMurz:
возможно радиус подглючивает, пока эти правила закоменчены.
Не radius, а скорее руки. У меня тоже, так что не обижайтесь. ;)
ZloMurz:
А что именно в инвайтах может не так прийти? Есть еще мысли на поточных цисках неправильным звонкам disconnect reqest делать
Мой биллинг пока этого не умеет -- даже не изучал еще как должно работать, если честно.
Я выставляю Session-Timeout и все, хотя Kamailio на это не обращает внимание, т.к.
а) не управляет сессией/медиа (его можно ребутнуть во время разговора и ничего не случится!)
б) Данный аттрибут возвращается в ответ на авторизацию, которая у меня выключена по вышеозначенным причинам.
Вообще-то я склоняюсь к тому, что на Kamailio/OpenSER'а не нужно вешать авторизацию звонка и аккаунтинг.
Нужна транзитная железка или ПО, которое будет заниматься этими вопросами.
У меня стоит Quintum Call Relay, который конвертирует SIP в H.323 и занимается аккаунтингом. Авторизацию к нему пока не прикрутил -- пока не понял как нужно допилить биллинг для этого.
|
Откуда: Челябинск
Сообщений: 31
|
Re: Asterisk_Radius_помогите_связать
Появилась идея, необязательно авторизовывать звонок обшерпинятыми средствами. Можно при звонке удостовериваться что пир зареган. Hапример можно юзать модуль sqlops или perl. Т.е. проверять во время invite делаем запрос в базу если в ней есть записи с таки from uri и src ip, если есть такой звонок то пропускаем его, если нет то делаем exit.
|
Сообщений: 1530
|
Re: Asterisk_Radius_помогите_связать
ZloMurz: Т.е. проверять во время invite делаем запрос в базу если в ней есть записи с таки from uri и src ip
Если не ошибаюсь, то не каждый INVITE содержит вызываемый номер (to uri).
А для авторизации он и нужен иначе проверка не имеет смысла...
Да и вызов скрипта -- изврат на мой взгляд, который стабильности не добавит. ;(
|
Откуда: Челябинск
Сообщений: 31
|
Re: Asterisk_Radius_помогите_связать
в данном случае нам надо узнать зареган ли на kamailio UA который пытается позвонить, у нас есть его uri и src_ip, мы на основании этих данных можем вполне провести проверку по алгоритму мною озвученному, зачем нам знать куда он звонит? Чтобы проверить хватит ли бабла у него позвонить?
tma: Да и вызов скрипта -- изврат на мой взгляд, который стабильности не добавит. ;(
Если использовать sqlops то никакого скрипта и не надо. А вообще мне один человек все время рассказывал про то что в IT часто делают костыли и это нехорошо. Да я согласен что хочется делать все очень правильно на этапе проектирования и согласования ТЗ. Но как-то вот давно не приходилось мне работать по грамотному ТЗ и с необходимым количеством времени и потенциалом для тестирования чтобы сразу все учесть, приходится делать костыли когда необходимость в них вылазит. Отсюда вывод - надо менять отношение к костылям :) Это все шутка конечно, но не без доли правды.
|
Сообщений: 1530
|
Re: Asterisk_Radius_помогите_связать
ZloMurz: в данном случае нам надо узнать зареган ли на kamailio UA который пытается позвонить, у нас есть его uri и src_ip, мы на основании этих данных можем вполне провести проверку по алгоритму мною озвученному, зачем нам знать куда он звонит? Чтобы проверить хватит ли бабла у него позвонить?
Именно "хватит ли бабла" и "а можно ли ему вообще звонить по этому номеру", а также "звонить будешь только 600 секунд и не секундой больше!".
Это и есть авторизация. Аудентификация работает, даже аккаунтинг можно поднять на Kamailio, хотя смысл поднимать аккаунтинг на Kamailio, который не контролирует сессию, не имеет смысла.
Я пока не придумал, как правильно сделать авторизацию... ;( Правда давненько я не думал над этой проблемой.
|
Откуда: Санкт-Петербург
Сообщений: 541
|
Re: Asterisk_Radius_помогите_связать
tma:
Именно "хватит ли бабла" и "а можно ли ему вообще звонить по этому номеру", а также "звонить будешь только 600 секунд и не секундой больше!".
Это и есть авторизация. Аудентификация работает, даже аккаунтинг можно поднять на Kamailio, хотя смысл поднимать аккаунтинг на Kamailio, который не контролирует сессию, не имеет смысла.
Я пока не придумал, как правильно сделать авторизацию... ;( Правда давненько я не думал над этой проблемой.
http://www.b2bua.org/wiki/B2BUADocumentation см. RADIUS B2BUA
|
Сообщений: 1530
|
Re: Asterisk_Radius_помогите_связать
dyer: RADIUS B2BUA
Спасибо, что напомнили.
|
|