Asterisk_Radius_помогите_связать
Asterisk_Radius_помогите_связать
Откуда: Москва
Сообщений: 44
|
Asterisk_Radius_помогите_связать
Добрый день! Подскажите, кто как связывал Asterisk и Radius. Встала задача:
Абонент регистрируется по SIP'у. Совершает звонок, например на мобильный телефон, Asterisk посылает запрос на Radius сервер (Биллинг), биллинг ему отвечает, что у абонента такая-то сумма на счету и он может говорить на эту сумму, по данному направлению столько-то минут. Далее, если количество минут достигло заданной отметки, то Asterisk обрывает сессию.
|
Сообщений: 177
|
Re: Asterisk_Radius_помогите_связать
http://voip.rus.net/tiki-index.php?page=asterisk-utm
http://sanoqua.livejournal.com/839.html
http://pc-inform.ru/articles/Billing_and_Asterisk.html
и т.д.
|
Откуда: Челябинск
Сообщений: 31
|
Re: Asterisk_Radius_помогите_связать
Имхо надо делать не так.
Asterisk должен слать аккаунтинговые запросы:
1. start - начало разговора, radius может либо разрешить звонок либо нет
2. iterium update - радиус при получении этого запроса списывает часть средств с аккаунта согласно направлению и длительности
3. stop - конец разговора.
Если тебе надо при достижении нуля в балансе сбросить абонента, то Radius должен отправить на asterisk специальный запрос разъединения канала Disconnect-Request.
Вот так должна работать правильная система. То что ты пытаешься сделать попахивает изобретением велосипеда.
|
Откуда: Москва
Сообщений: 3421
|
Re: Asterisk_Radius_помогите_связать
Может купить биллинг для Asterisk? See MOR
|
Откуда: Москва
Сообщений: 44
|
Re: Asterisk_Radius_помогите_связать
ZloMurz: Имхо надо делать не так.
Asterisk должен слать аккаунтинговые запросы:
1. start - начало разговора, radius может либо разрешить звонок либо нет
2. iterium update - радиус при получении этого запроса списывает часть средств с аккаунта согласно направлению и длительности
3. stop - конец разговора.
Если тебе надо при достижении нуля в балансе сбросить абонента, то Radius должен отправить на asterisk специальный запрос разъединения канала Disconnect-Request.
Вот так должна работать правильная система. То что ты пытаешься сделать попахивает изобретением велосипеда.
Спасибо за информацию. А не могли бы рассказать, реализовывали ли Вы данную схему, и вообще, как можно (лучше) реализовать данную связку.
|
Откуда: Челябинск
Сообщений: 31
|
Re: Asterisk_Radius_помогите_связать
Нет на asterisk еще не реализовывал, это у меня в планах, реализовывали на cisco и mvts.
|
Сообщений: 1530
|
Re: Asterisk_Radius_помогите_связать
ZloMurz: Имхо надо делать не так.
Asterisk должен слать аккаунтинговые запросы:
С аккаунтингом не все так сложно, а вот как быть с аудентификацией и авторизацией?..
|
Сообщений: 1530
|
Re: Asterisk_Radius_помогите_связать
ZloMurz:
2. iterium update - радиус при получении этого запроса списывает часть средств с аккаунта согласно направлению и длительности
3. stop - конец разговора.
Т.е. списание средств происходит только при UPDATE? ;) А при STOP?
А если UPDATE вообще небыло или STOP пришел в середине минуты?
На мой взгляд правильнее тарифицировать по STOP, а при UPDATE подсчитывать промежуточные значения и т.д.
|
Откуда: Челябинск
Сообщений: 31
|
Re: Asterisk_Radius_помогите_связать
Верно снятие средств должно происходить и при update, чтобы отслеживать расходование средств клиентом, чтобы он в минус не уходил, и при stop тоже на случай что разговор короткий и update не успел на radius уйти, но это уже логика биллинговой системы.
По поводу авторизации, пробовали как-то на asterisk это сделать, код правили даже, в итоге забили, проблему решил kamailio + radiusclient-ng, на asteriskpbx.ru начал блог по связке kamailio + asterisk + radius + loadbalansing, в скором времени будет продолжение, там можно будет прочить как это настраивается :)
|
Сообщений: 1530
|
Re: Asterisk_Radius_помогите_связать
ZloMurz: Верно снятие средств должно происходить и при update, чтобы отслеживать расходование средств клиентом, чтобы он в минус не уходил, и при stop тоже на случай что разговор короткий и update не успел на radius уйти, но это уже логика биллинговой системы.
При STOP нужно тоже деньги считать, т.к. если длительность разговора составляет к примеру 90 секунд, UPDATE пришел на 60'орй секунде, то в случае, если биллинг считает только по UPDATE,
оставшиеся 30 секунд будут не тарифицированы. За месяц набежит достаточно большая сумма, а если
объемы исчисляются миллионами минут?..
По UPDATE на мой взгляд все-таки некорректно снимать деньги -- накопиться такое кол-во записей (если протоколировать все снятия), что начнутся проблемы. Проще немного в минус уйти, чем огрести проблемы при огромном кол-ве записей.
ZloMurz:
По поводу авторизации, пробовали как-то на asterisk это сделать, код правили даже, в итоге забили, проблему решил kamailio + radiusclient-ng
kamailo + radiusclient-ng -- как Вы прикрутили авторизацию вызова?
аудентификацию я сделал -- проблем нет, аккаунтинг вообще на другой железке.
А вот с авторизацией проблемы -- если в INVITE делать, то не все INVITE содержат корректные данные и звонок может быть прерван.
Хотелось бы узнать как Вы решили эту проблему?
|
|