Список форумов Asterisk Forum Asterisk Forum
The Asterisk Open Source PBX - Russian Community
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ПравилаПравила   ГруппыГруппы   ИзбранноеИзбранное    LinksСсылки   РегистрацияРегистрация 
 RSSRSS   ПрофильПрофиль   Войти и проверить личные сообщения   ВходВход 

Prepaid через радиус.

 
Список форумов Asterisk Forum -> OpenSER    вывод темы на печать
Предыдущая тема :: Следующая тема  
Автор Сообщение
Homer



Зарегистрирован:
24.07.2009
Сообщения: 38

Статус: Оффлайн 

СообщениеДобавлено: Пн Янв 18, 2010 10:51    Заголовок сообщения: Prepaid через радиус.

Схема - Kamailio + Radius + Billing.
Модуль ACC замечательно шлёт аккаунтинг через радиус при начале вызова (INVITE) и при завершении его (BYE), с помощью взвода нужного флага в нужном месте конфига (setflag(1); ).
В начале соединения, после авторизации биллинг по радиусу присылает возможное время разговора которое хранится в переменной AVP и используется модулем DIALOG.
Модуль DIALOG отсчитывает таймер по этому времени и если оно заканчивается то рвет соединение (для этого надо в коде в нужном месте поставить dlg_bye_all(dlg, NULL); ) и отсылает участникам соединения BYE, но т.к. это сообщение (BYE) не проходит конфиг то и аккаунтинг по этому сообщению не отсылается.

Пытался в коде добавить функцию взвода флага прямо в модуле dialog.so но не получается, я в программировании не силён.

Может у кого есть идеи как это реализовать ? Или может это уже както реализованно в Kamailio, а я не увидел ?


Последний раз редактировалось: Homer (Пн Янв 18, 2010 11:48)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Skype Name
tma



Зарегистрирован:
11.07.2005
Сообщения: 361

Статус: Оффлайн 

СообщениеДобавлено: Пн Янв 18, 2010 11:41    Заголовок сообщения:

Вообще-то аккауинтинг на SER'е не очень хорошая идея поднимать, т.к. SER никак не контроллирует медиа сессию.
Как Вы авторизацию вызова сделали? У меня что-то не получилось. Я поднимал только аудентификацию. Аккаунтинг у меня на Quintum Call Relay.
Я пытался сделать авторизацию вызова по INVITE, но в результате у меня реагирует на каждый re-INVITE и рвет сессию, если не хватает данных.

_________________
Maksim Timofejev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Homer



Зарегистрирован:
24.07.2009
Сообщения: 38

Статус: Оффлайн 

СообщениеДобавлено: Пн Янв 18, 2010 12:10    Заголовок сообщения:

Цитата:
SER никак не контроллирует медиа сессию.

- Модуль tm занимается обработкой stateful SIP транзакций (где результат обработки SIP сообщений зависит от состояния диалога). <...> функция - t_relay(). Она инициирует транзакцию и устанавливает ее состояние, контролирует и отбрасывает повторные передачи с upstream, генерирует повторные передачи SIP сообщений для downstream, и сопоставляет SIP ответы соответствующим запросам.

Цитата:
Я пытался сделать авторизацию вызова по INVITE, но в результате у меня реагирует на каждый re-INVITE и рвет сессию, если не хватает данных.

- модуль rr, функция loose_route() - выполняет маршрутизацию SIP запросов, которые содержат набор параметров для маршрутов. <...> Эта функция часто используется, для маршрутизации запросов в пределах диалога (такие, как: ACK, BYE, re-INVITE).

Надеюсь я правильно понял тебя и это поможет ответить на твой вопрос.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Skype Name
tma



Зарегистрирован:
11.07.2005
Сообщения: 361

Статус: Оффлайн 

СообщениеДобавлено: Пн Янв 18, 2010 12:22    Заголовок сообщения:

Спасибо, попробую.
_________________
Maksim Timofejev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Homer



Зарегистрирован:
24.07.2009
Сообщения: 38

Статус: Оффлайн 

СообщениеДобавлено: Ср Янв 20, 2010 08:40    Заголовок сообщения:

Мой вопрос еще актуален, может хоть подскажите в какую сторону копать ?
_________________
http://arttel.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Skype Name
ddkprog



Зарегистрирован:
03.07.2009
Сообщения: 81

Статус: Оффлайн 

СообщениеДобавлено: Ср Янв 20, 2010 11:55    Заголовок сообщения:

а что подсказывать
поставь дебаг
посмотри по каким частям программы бегает вся стейт-машин
и впендюрь в нужное место что то свое
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
pelingator



Зарегистрирован:
04.01.2010
Сообщения: 9

Статус: Оффлайн 

СообщениеДобавлено: Пт Фев 19, 2010 15:42    Заголовок сообщения:

Homer, а у вас аудентификация работает в радиусе? какая версия радиуса?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Homer



Зарегистрирован:
24.07.2009
Сообщения: 38

Статус: Оффлайн 

СообщениеДобавлено: Вс Фев 21, 2010 19:08    Заголовок сообщения:

Регитстрациия пользователей и авторизация Инвайтов просиходит по протоколу RADIUS. В качетстве сервера FreeRADIUS Version 2.0.4, для аккаунтинга используется правда встроенный radius-сервер биллинга (utm5 в качестве тестов используем, т.к. не все нас устраивало в его работе то прикрутили свой радиус сервер к utm таблицам). По мимо стандартных атрибутов в ответе возвращаются нужные нам дополнительные, в utm такого сделать не знаем как.
Kamailio версии 3.0.0

Кстати выше указанную мною проблему решил:
1. в исходниках модуля dialog в момент исхода таймера сессии вызываем функцию dlg_bye_all(dlg, NULL);
2. перед компиляциея модулей делаем это - make EXTRA_DEFS="-DWITH_EVENT_LOCAL_REQUEST" cfg , что в ключает в модуле tm новые фичи.
3. и собсна в конфиги применяем эту новую фичу: (раньше как говорят она называлась local_route)

event_route[tm:local-request] {
xlog("L_INFO", "event_route $rm\n");
if(is_method("BYE")) {
# Account BYE transactions
xlog("L_INFO", "event_received_BYE from $fU to $tU\n\n");
acc_rad_request("Bablo zakonchilos!");
$avp(s:can_uri) = $ru;
};

_________________
http://arttel.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Skype Name
arcan



Зарегистрирован:
07.03.2010
Сообщения: 3

Статус: Оффлайн 

СообщениеДобавлено: Вс Мар 07, 2010 16:43    Заголовок сообщения:

Есть схожая проблема с использованием модуля Opensips - B2BUA.

Как уже было сказано, модуль ACC шлёт аккаунтинг через радиус при начале вызова (INVITE) и при завершении его (BYE), с помощью взвода нужного флага в нужном месте конфига setflag(1)

Модуль B2BUA создавая новое "плечо" (сессия с новым Call-ID) грубо говоря "перехватывает управления на себя", сообщение (BYE) не проходит конфиг и, как следствие, аккаунтинг по этому сообщению не отсылается.

Согласно описанию http://www.opensips.org/Resources/B2buaTutorial у модуля есть "Special B2B route", но, устанавливать туда флаги бесполезно...

Реально ли использовать указанный выше метод для модуля b2bua?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
drakosha



Зарегистрирован:
03.09.2011
Сообщения: 1

Статус: Оффлайн 

СообщениеДобавлено: Сб Сен 03, 2011 21:29    Заголовок сообщения:

Homer писал(а):



Спасибо за очень ценную информацию.
В данный момент пробую эту тему. Скажите, пожалуйста, а какими арибутами от радиуса Вы "в ответе возвращаются нужные нам дополнительные", т.е. какие атрибуты, и как выглядит часть конфига, которые эти атрубуты отрабатывает (таймер с заданным временем запускает)?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Список форумов Asterisk Forum -> OpenSER Ответить на тему
Страница 1 из 1

Добавить в Избранное

 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You cannot download files in this forum