Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Взаимодействие * и radius

1

Есть разные пути взаимодействия радиуса и астериска. Какой из вариантов является наиболее оптимальным, отказоустойчивым и т.д.

удалить закрыть спам изменить тег редактировать

спросил 2011-08-06 20:17:49 +0400

um2010 Gravatar um2010
2056 70 13 55

4 Ответа

2

наиболее оптимальным использовать модуль fastagi perl+ radius модуль на перле на выбор. но еще более оптимальным являеться неиспользования радиуса. ибо ни один из кодов которые я видел не есответсвует спецификации по отказоусточивости.

ссылка удалить спам редактировать

ответил 2011-08-07 00:32:00 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2011-08-07 00:34:02 +0400

Comments

в чем основные узкие места, при использовании радиуса? какой предел можно считать критическим? um2010 ( 2011-08-07 00:36:51 +0400 )редактировать
радиус очень проработанный и очень древний протокол. в частности он подрозумевает перепосылку запроса. посему сервера если че не так, просто не подтверждают пакет. в надежде на то, что его перепошлют. а астериск клиенты почемуто этого не делают. ибо сделаны "только чтобы работало". вобщем пробелмы начинаються тогда, когда включаеться избыточность протокола(которая по спецификации есть,Ю а на практике нету). meral ( 2011-08-07 03:08:21 +0400 )редактировать
к тому же сам по себе радиус не самый економный протокол, мягко говоря. meral ( 2011-08-07 03:08:56 +0400 )редактировать
поэтому используйте fastagi, в котором можно проанализировать сложную логику и заодно перепослать если неудачно прошло. перл модуль Asterisk::FastAGI при настройке prefork в 10-15 прекрасно справляеться с 4мя сотнями звонков с средней длительностью 10 минут, каждый из которых от одного до 5 раз обращаеться к mysql и имеет 4-30 команд agi переданных астериску. это РЕАЛЬНЫЕ данные, не тестовые, вполне боевые. meral ( 2011-08-07 03:12:09 +0400 )редактировать
радиус имеет смысл только для сложной гетерогенной среды, типо если у вас биллинговая система работает одновременно с мерой, циско и астериском. и то в результате для астерсика были написаны процедуры cdr напрямую в постгресс с спец кодом на с++. ибо с радиусом были потери. meral ( 2011-08-07 03:16:46 +0400 )редактировать
ну вот как обойтись без использования радиуса, если нужен онлайн-биилнг для клиента? т.е. клиент пополняет баланс и должен мочь полностью его выговорить без сильного залезания в минуса? В настоящее время я использую несколько переработанный пример на питоне, который есть везде в интернете. Собственно радиус запрос отправляется при попытке звонить, затем макросом при установке соединения и при завершении на h-экстеншене. Но уже сейчас (при 50 авральных звонках утром) есть проблемы в виде того, что stop-пакет не пришел, к примеру.. хотелось бы оптимизировать. um2010 ( 2011-08-07 10:51:55 +0400 )редактировать
кстати, в чем преимущество fastagi перед простым agi ? um2010 ( 2011-08-07 12:34:13 +0400 )редактировать
а собственно зачем для этого радиус? сразу в fastagi прописываете все проверки, всю логику и напрямую коннектитесь к базе. и звоните не выходя из скрипта. понятно на базе надо permission правильно назадавать. fastagi отличаеться от agi тем, что в первом случае сервер внешний и астериск у него команды просит по tcp. что это дает? нет безумного лоада от запуска agi скриптов при каждом звонке. в частносте модуль выше делает префорк и предварительный коннект к mysql. AGI срипты НИГДЕ не применяються в корпоративных нагруженных системах. единственный известный мне пакет - freepbx. ну вы наверно знаете как он относиться к нагрузке. meral ( 2011-08-07 19:26:17 +0400 )редактировать
а если сам биллинг, находится там же, где и астериск - тогда целесообразно ли применять fastagi ? um2010 ( 2011-08-07 20:30:19 +0400 )редактировать
зависит от сложности логики. но уж радиус в таком случае вообще смысла нету. meral ( 2011-08-07 21:16:43 +0400 )редактировать
если заморачиваться на логику вне радиуса - это коннект к постгресу , он на том же серевере, выполнение в нем 5-6 запросов, установка через через механизм agi обратно в канал 5-7 переменных um2010 ( 2011-08-07 21:23:46 +0400 )редактировать
зачем переменные в канал? вы открываете один коннект к скрипту. он у вас держиться до конца звонка. чегото я не понимаю зачем чтото кроме необходимого кидать в канал. но даже с переменными в канале оно нормально работает. я, правда, только переменные в cdr бросаю. и muscionhold классы. остальное оставляю внутри скрипта. вобщем смотриет как вам удобно. имхо работаь с сриптом проще чем с радиусом. в нем чтото посчитать и агрегировать можно, и не только простые действия внутри радиуса. коннект к постгрессу полюбому, но с fastagi будет пре-коннеект и сглаженные пики, чего нельзя сказать о радиусе. meral ( 2011-08-08 02:38:10 +0400 )редактировать
я себе представлял работу с xAGI следующим образом: из диалплана вызывается скрипт, он делает необходимую логику, возвращает переменные и диалплан выполняется дальше уже в зависимости от этих переменных. Может мое мнение извращенное, и всю логику звонка включая dial , queue вложить нужно в скрипт xAGI? um2010 ( 2011-08-08 08:07:55 +0400 )редактировать
да. всю логику вложить в срипт. ну или всю сложную логику. meral ( 2011-08-09 05:09:19 +0400 )редактировать
понятно, спасибо, попробую um2010 ( 2011-08-09 08:25:28 +0400 )редактировать
0

Через AGI у меня нормально работает.

ссылка удалить спам редактировать

ответил 2011-08-06 21:04:36 +0400

Aven Gravatar Aven flag of Russian Federation
343 1 13
http://it-need.ru/

Comments

через agi вызываете скрипт, который в примере на питоне написан? а нагрузку какую держите одновременных звонков? um2010 ( 2011-08-06 21:16:35 +0400 )редактировать
аги это зло. можно использовать только если вы УВЕРЕННЫ что у вас будет не больеш 5 стартов в секунду этого скрипта. ибо каджый вызов делает старт процесса. даже если там echo 1234 написано, то все равно сервер ложится. meral ( 2011-08-08 02:45:00 +0400 )редактировать
речь и про fastAGI или только про AGI ? um2010 ( 2011-08-08 08:08:18 +0400 )редактировать
про AGI конечно. fastagi скриптик висит в памяти, и отвечает на запросики(делает thread обычно) по tcp - как fastCGI собсвенно. а аги срипт запускается каждый раз при вызове команды. что довольно накладно особенно для скриптовых языков. в программировании отличается не сильно. только надо следить за глобальными переменными в fastagi. meral ( 2011-08-09 05:12:01 +0400 )редактировать
интересно девки пляшут :) um2010 ( 2011-08-09 08:26:07 +0400 )редактировать
0

Переписал cdr_radius модуль для работы с биллингом UTM5. Авторизация - AGI+Prel. 1.5 года - полёт нормальный. ~100 одновременных звонков, но думаю и больше потянет.

ссылка удалить спам редактировать

ответил 2012-01-13 12:22:29 +0400

GMS Gravatar GMS
1
0

помогите пожалуйста ! Lanbilling пишет в логах такое

:[PreProcessPacket] >=>=>=>=>=>=>=> Packet received from 10.0.0.7, size: 256 >=>=>=>=>=>=>=> [ParseBody] Authenticator: 087d215d3bd15bd4ba14cd8e0ce608fe [ParseBody] Attribute 'NAS-IP-Address', value: "192.168.0.1" [ParseBody] VSA 'NAS-Port-Name', vendor Cisco, value: "SIP/106-00000003" [ParseBody] Attribute 'Calling-Station-Id', value: "106" [ParseBody] Attribute 'Called-Station-Id', value: "102" [ParseBody] Unknown VSA 1, vendor Cisco, value: "call-id=1328536905.3" [ParseBody] Attribute 'User-Name', value: "106" [ParseBody] Attribute 'Digest-Attributes', value: Sublist: subattr 10 => "106" [ParseBody] Attribute 'Digest-Attributes', value: Sublist: subattr 1 => "asterisk" [ParseBody] Attribute 'Digest-Attributes', value: Sublist: subattr 2 => "7a45b212" [ParseBody] Attribute 'Digest-Attributes', value: Sublist: subattr 4 => "sip:102@192.168.0.10" [ParseBody] Attribute 'Digest-Attributes', value: Sublist: subattr 3 => "INVITE" [ParseBody] Attribute 'Digest-Attributes', value: Sublist: subattr 6 => "MD5" [ParseBody] Attribute 'Digest-Response', value: "55821c8da0d0c27f5882f7dd5215b1e2" [ParseBody] VSA 'h323-conf-id', vendor Cisco, value: "A704B469 D13FEF7B 7EBA2E51 0742A4C0" [AuthByExistentSession] Conf-id found in subcache. [GetTimeOut] Incoming call, unlimited session timeout [CreateUpdateSession] Active session 'A704B469 D13FEF7B 7EBA2E51 0742A4C0' updated for User '106' [RunAuthRequest] =============== Output attributes dump: =============== [RunAuthRequest] Attribute 'Class', value: "00007156" [RunAuthRequest] VSA 'h323-credit-amount', vendor Cisco, value: "0.00" [RunAuthRequest] VSA 'h323-currency', vendor Cisco, value: "RUR" [RunAuthRequest] VSA 'h323-credit-time', vendor Cisco, value: "86400" [RunAuthRequest] Attribute 'Session-Timeout', value: "86400" [RunAuthRequest] VSA 'xpgk-ep-number', vendor Cisco, value: "102" [RunAuthRequest] VSA 'h323-return-code', vendor Cisco, value: "0" [RunAuthRequest] Access granted USER=106, Phone=102, h323-credit-time=86400 [RunAuthRequests] <=<=<=<=<=<=<=< Authentication answer sent successfully, time: 0.008 <=<=<=<=<=<=<=<

И так постоянно при звонке на номер . Вопрос скорее в атрибутах или в скрипте radius'a. Скажите куда копать.Спасибо!

ссылка удалить спам редактировать

ответил 2012-02-06 18:14:53 +0400

vok1984 Gravatar vok1984
1

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
1 закладка

подписаться на rss ленту новостей

Статистика

Задан: 2011-08-06 20:17:49 +0400

Просмотрен: 2,935 раз

Обновлен: Feb 06 '12

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.