Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Разработка / * и radius

* и radius

1 2>
Сообщений: 1530

* и radius

Добрый день!

Вот надумал смарганить взаимодействие asterisk'а с radius'ом БЕЗ патча на сам asterisk!
К сожалению мои познания radius'а не очень велики, но небольшую биллинговую систему для аналоговой cisco и radius'а я делал.
Если я правильно понимаю, взаимодействие должно включать: start, alive и stop -запросы к radius'у.

Если сделать AGI скрипт, который обращается к radius'у (start), вызывает Dial, а по его завершению (опция 'g') обращается к radius'у (stop) выйдет половина дела.
Нужно еще решить вопрос с alive, с которыми проблема из-за того, что Dial не прерывается, пока работает.
Вторая проблема -- "прибить" Dial, если средства исчерпались.
Тут я не знаю не то, чтобы как это можно реализовать (прибить Dial, точнее канал, можно через Monitor), а как биллинг посредством radius'а собирается сообщить клиенту, что хватит ему болтать.

По поводу решения первой проблемы с alive есть мысль -- AGI скрипт может в другом треде посылать alive на radius сервер.
Хотя проще это реализовать по таймеру -- конечно это мое мнение, т.к. с тредами я работать не умею. ;)
Но тут возникает еще одна проблема -- как узнать, что Dial уже установил соединение?!! Опять лезть через monitor?

Короче говоря, хотелось бы услышать мнение других умудренных опытом господ. ;)
http://www.telecomtechnology.net - premium терминация
2006-09-28 10:41

Сообщений: 1530

Re: * и radius

Я не первый. ;)
http://www.asterisk-support.ru/forums/development/590214268079/forum_topic
Только так и не понял, реализовали ли тот AGI скрипт, что описан по той ссылке или нет?
http://www.telecomtechnology.net - premium терминация
2006-09-28 10:53

Откуда: Киев
Сообщений: 749

Re: * и radius

с моей точки зрения:
1) необходимы только авторизации и стопы
2) прекращение звонка идет через dial (s(x))
S(x) - Hang up the call after 'x' seconds *after* the called party has answered the call.
3) стопы ложаться механизмом cdr - у меня в postgres напрямую - ьез радиусаЮ но можно скрипт сделать который будет их по radius ложить - неважно
4) поддержку radius обещают наскоко я помню в 1.4 - до релиза не так много осталось - потерпи ;)

2006-09-28 12:15

Сообщений: 1530

Re: * и radius

Прекращение конечно же пойдет через 's(x)', но в случае нескольких параллельных звонков как быть?
Сейчас я делаю так (у меня система работает напрямую с PostgreSQL) -- есть отдельная таблица "резерв", куда вносится зарезервированная сумма на XXXX секунд разговора по данному направлению, а при каждом следующем звонке, при высчитывании общей суммы, система из остатка денег у клиента вычитает также зарезервированные суммы.

Это неудобно -- лучше бы по alive высчитывать есть ли средства у клиента и посылать в канал hangup.

Напрямую работать с БД не очень хорошо, т.к. тогда система будет привязана к конкретной биллинговой системе и при смене биллинга или развертывании системы в другой организации, придется писать новые AGI скрипты, а radius стандартен!
http://www.telecomtechnology.net - premium терминация
2006-09-28 16:07

Сообщений: 1530

Re: * и radius

asterisk 1.4 почти что вышел, но radius'а там вроде бы нет.
Или за оставшееся время туда могут внести такие кардинальные изменения?!!
http://www.telecomtechnology.net - premium терминация
2006-09-28 16:09

Сообщений: 1530

Re: * и radius

Кстати CDR у меня кладется в PostgreSQL, но мой биллинг имеет свой собственный CDR (иначе названный), размазанный по нескольким таблицам.
Стандартный CDR зачастую имеет кучу ненужных записей.
Особенно это проявляется в случае использования LOCAL channels, а также очередей с агентами.
В этом случае записи в CDR дворятся, дублируются и т.п., короче говоря появляется масса ненужного мусора.

На мой взгляд стандартный CDR нужно использовать при разборе полетов, если возникают вопросы у клиентов.
http://www.telecomtechnology.net - premium терминация
2006-09-28 16:16

Откуда: Киев
Сообщений: 749

Re: * и radius

у меня ложиться в стандартный СДР(ибо часто версиии * меняю, влом менять код каждый раз)
потом разбираеться спец. скриптом в билллинг.
2006-10-01 21:34

Сообщений: 1530

Re: * и radius

Так можно только счета выставлять и клиент может уйти в минус...
Хотя тоже вариант... Но уж больно в CDR много лишнего при использовании LOCAL появляется. ;(
http://www.telecomtechnology.net - premium терминация
2006-10-02 01:20

Откуда: Киев
Сообщений: 749

Re: * и radius

а зачем вы используете локал?
я пока его обходил вполне успешно ;)
проблем с мусором у меня нет
ибо я ОТМЕЧАЮ все СДР которые надо использовать - остальные игнорируються.
там есть замечательное поле userfield
у меня так организован диалплан, что в нем к концу разговора содержиться вся биллинговая информация...
если поле пустое - значит эту запись не надо тарифицировать...
с конференциями прекрасно работает.
локал, как я говорил , я просто обхожу...


2006-10-02 13:12

Сообщений: 1530

Re: * и radius

К примеру LOCAL используется при Attended transfer, при использовании agent'ов для очередей...
Как обойти, если это делает сам asterisk?
и не всегда есть куда всунуть nocdr ;)
http://www.telecomtechnology.net - premium терминация
2006-10-02 14:00

1 2>
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru