BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 19 апр 2024, 18:10

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 26 ] 
Автор Сообщение
 Заголовок сообщения: Asterisk и Radius Authentification
СообщениеДобавлено: 21 апр 2008, 20:56 
Не в сети

Зарегистрирован: 28 ноя 2006, 14:47
Сообщения: 64
Откуда: Костанай, Казахстан
Карма: 0
Пытаюсь заставить Астериск авторизовать пользователя при совершении им звонка. Для этого дополнил Астериск модулем app_viaradius. Связка в первом приближении уже работает.
Но столкнулся с некоторыми проблемами при реализации Subj:

1. Пока не совсем понял, в чем глубокий смысл необходимости отправки двух последовательных запросов аудентификации, описанных в http://bgbilling.ru/v4.4/doc/ch08s02.html? Разве нельзя обойтись одним, в котором содержится сразу вся информация о звонке? Это какая-то особенность Cisco? Или что-то еще, до чего я еще не дошел? Сейчас у меня и с одним запросом вроде как работает...

2. Возникает какая-то ошибка при добавлении атрибутов для типа логина.

Вот лог Астериска и БГБиллинга при успешном звонке без атрибутов:
Код:
softswitch*CLI>
    -- Executing [77142052@ael-from-pbxpress:1] Goto("SIP/212.154.238.140-00a12ae0", "ael-international|77142052|1") in new stack
    -- Goto (ael-international,77142052,1)
    -- Executing [77142052@ael-international:1] viaRadius("SIP/212.154.238.140-00a12ae0", "9|pbxpress|12345|callrate|ael-international|77142052|val1:val2") in new stack
[Apr 21 19:45:29] DEBUG[20561]: app_viaradius.c:199 viaradius_exec: Vendor ID for this call 9 Cisco
    -- RADIUS AV PAIR to be sent
User-Name                        = 'pbxpress'
Calling-Station-Id               = '10027341001'
Called-Station-Id                = '77142052'
h323-call-type                   = 'VOIP'
h323-conf-id                     = '1208785529.34'
h323-ivr-out                     = 'val1:val2'
h323-call-origin                 = 'originate'
Password                         = '12345'
[Apr 21 19:45:29] DEBUG[20561]: app_viaradius.c:268 viaradius_exec: RADIUS Authentication result (RC=0)
    -- RADIUS AV PAIR received
h323-credit-amount               = 'h323-credit-amount=4411.0'
h323-credit-time                 = 'h323-credit-time=1800'
h323-return-code                 = 'h323-return-code=0'
[Apr 21 19:45:29] DEBUG[20561]: app_viaradius.c:81 myvalue: attribute h323-credit-amount        value 4411.0
[Apr 21 19:45:29] DEBUG[20561]: app_viaradius.c:81 myvalue: attribute h323-credit-time  value 1800
[Apr 21 19:45:29] DEBUG[20561]: app_viaradius.c:81 myvalue: attribute h323-return-code  value 0
[Apr 21 19:45:29] DEBUG[20561]: app_viaradius.c:390 viaradius_exec: H323 return code Success-Proceed
[Apr 21 19:45:29] DEBUG[20561]: app_viaradius.c:396 viaradius_exec: debug ok 6
    -- Executing [77142052@ael-international:2] NoOp("SIP/212.154.238.140-00a12ae0", "|4411.0|1800|") in new stack
    -- Executing [77142052@ael-international:3] Playback("SIP/212.154.238.140-00a12ae0", "silence/1&beep&demo-congrats") in new stack
    -- <SIP/212.154.238.140-00a12ae0> Playing 'silence/1' (language 'ru')
    -- <SIP/212.154.238.140-00a12ae0> Playing 'beep' (language 'ru')
    -- <SIP/212.154.238.140-00a12ae0> Playing 'demo-congrats' (language 'ru')
  == Spawn extension (ael-international, 77142052, 3) exited non-zero on 'SIP/212.154.238.140-00a12ae0'

Код:
==> radius.log <==
INFO   21.04.2008 20:10:23   AUTH:
Type=AUTHENTICATION_REQUEST
Attributes:
        User-Name=pbxpress
        User-Password=12345
        NAS-IP-Address=212.154.238.140
        NAS-Port=0
        Calling-Station-Id=10027341001
        Called-Station-Id=77142052
        h323-ivr-out=val1:val2
        h323-conf-id=1208785529.34
        h323-call-origin=originate
        h323-call-type=VOIP

INFO   21.04.2008 20:10:23   RESPONSE:
Type=AUTHENTICATION_ACCEPT
Process time:46
Attributes:
        h323-credit-amount=4411.0
        h323-credit-time=1800
        h323-return-code=0
INFO   21.04.2008 20:10:30   ACCOUNT:
Type=ACCOUNTING_REQUEST
Attributes:
        User-Name=pbxpress
        NAS-IP-Address=212.154.238.140
        NAS-Port=0
        Acct-Status-Type=2
        Acct-Delay-Time=0
        Acct-Session-Time=7
        Calling-Station-Id=10027341001
        Acct-Session-Id=1208785529.34
        Called-Station-Id=77142052
        Asterisk-Unique-ID=1208785529.34
        Asterisk-Dst-Ctx=ael-international
        Asterisk-Clid="Arthur Kalagov" <10027341001>
        Asterisk-Disposition=ANSWERED
        Asterisk-Chan=SIP/212.154.238.140-00a12ae0
        Asterisk-AMA-Flags=DOCUMENTATION
        Asterisk-Last-App=Playback
        h323-disconnect-cause=0
        Asterisk-Last-Data=silence/1&beep&demo-congrats
        h323-connect-time=2008-04-21 19:45:29 +0000
        h323-disconnect-time=2008-04-21 19:45:36 +0000
        h323-conf-id=1208785529.34
        h323-setup-time=2008-04-21 19:45:29 +0000
        h323-call-origin=originate
        h323-call-type=VOIP
        Asterisk-Start-Time=2008-04-21 19:45:29 +0000
        Asterisk-Acc-Code=pbxpress
        Asterisk-Bill-Sec=7
        Asterisk-Duration=7
        Asterisk-Dst=77142052
        Asterisk-End-Time=2008-04-21 19:45:36 +0000
        Asterisk-Src=10027341001
        Asterisk-Answer-Time=2008-04-21 19:45:29 +0000

INFO   21.04.2008 20:10:30   RESPONSE:
Type=ACCOUNTING_RESPONSE
Attributes:


А вот уже логи с добавленным атрибутами для используемого типа логина:
Код:
softswitch*CLI>
    -- Executing [77142052@ael-from-pbxpress:1] Goto("SIP/212.154.238.140-c000cae0", "ael-international|77142052|1") in new stack
    -- Goto (ael-international,77142052,1)
    -- Executing [77142052@ael-international:1] viaRadius("SIP/212.154.238.140-c000cae0", "9|pbxpress|12345|callrate|ael-international|77142052|val1:val2") in new stack
[Apr 21 20:22:35] DEBUG[21185]: app_viaradius.c:199 viaradius_exec: Vendor ID for this call 9 Cisco
    -- RADIUS AV PAIR to be sent
User-Name                        = 'pbxpress'
Calling-Station-Id               = '10027341001'
Called-Station-Id                = '77142052'
h323-call-type                   = 'VOIP'
h323-conf-id                     = '1208787755.37'
h323-ivr-out                     = 'val1:val2'
h323-call-origin                 = 'originate'
Password                         = '12345'
[Apr 21 20:22:39] ERROR[21185]: app_viaradius.c:264 viaradius_exec: received an empty list for this call
  == Spawn extension (ael-international, 77142052, 1) exited non-zero on 'SIP/212.154.238.140-c000cae0'
[Apr 21 20:22:39] NOTICE[21185]: cdr.c:434 ast_cdr_free: CDR on channel 'SIP/212.154.238.140-c000cae0' not posted

Код:
INFO   21.04.2008 20:47:30   AUTH:
Type=AUTHENTICATION_REQUEST
Attributes:
        User-Name=pbxpress
        User-Password=12345
        NAS-IP-Address=212.154.238.140
        NAS-Port=0
        Calling-Station-Id=10027341001
        Called-Station-Id=77142052
        h323-ivr-out=val1:val2
        h323-conf-id=1208787755.37
        h323-call-origin=originate
        h323-call-type=VOIP

INFO   21.04.2008 20:47:33   RESPONSE:
Type=AUTHENTICATION_ACCEPT
Process time:3408
Attributes:
        h323-credit-amount=4411.0
        h323-currency-type=KZT
        h323-credit-time=1800
        h323-return-code=0
        h323-preferred-lang=ru


Как мы видим, Астериск спотыкается на аудентификации при наличии дополнительных атрибутов, хотя, судя по логу БГБиллинга, криминального в этих атрибутах ничего нет... я пробовал ставить другие атрибуты - результат тот-же!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 май 2008, 21:50 
Не в сети

Зарегистрирован: 29 мар 2007, 16:21
Сообщения: 109
Откуда: Иркутск
Карма: 2
циска отправляет запрос на каждый call leg
их 2 штуки (как правило)
один с телефонии (ISDN/FXS/FXS) а другой в IP уходит
нужно в фильтром выбирать правильный call leg


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 14 май 2008, 02:44 
Не в сети

Зарегистрирован: 07 май 2008, 13:34
Сообщения: 594
Откуда: Москва
Карма: 27
ArtKZ писал(а):
1. Пока не совсем понял, в чем глубокий смысл необходимости отправки двух последовательных запросов аудентификации, описанных в http://bgbilling.ru/v4.4/doc/ch08s02.html? Разве нельзя обойтись одним, в котором содержится сразу вся информация о звонке? Это какая-то особенность Cisco? Или что-то еще, до чего я еще не дошел? Сейчас у меня и с одним запросом вроде как работает...


некропостинг решает... :)
две последовательных авторизации делались для карточных платформ, а не для транзитов или IPPBX, схема очень проста:
- набрали номер DISA, послушали сексуальный женский голос предлагаюший нам ввести, кхм, пин код, конечно же
- скрипт генерит запрос на аутентификацию и проверяет есть ли такой абонент в системе, не заблокирован ли, а заодно может получить параметры на, например, callback, а так же на этой фазе скрипт получает данные о балансе пользователя, который он сможет сообщить при случае и тд и тп
- абоненту, все тот же женский голос сообщает что введен правильный пин-код, а предлагают ввести еще раз, кхм, на сей раз номер куда абонент хочет позвонить

ну дальше я думаю понятно становится откуда берется необходимость во втором запросе, и что самое интересное, последний пунк может повторяться несколько раз, несколько исходящих звонков, без отваливания абонента с DISA


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 май 2008, 11:58 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Добавлю от себя, что биллингу количество авторизаций без разницы. Все проверки идут при любой авторизации.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2008, 18:56 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Помогите пожалуйста настроить авторизацию астериска и бгбиллинга, кто настроил у себя.

Заранее спасибо большое!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 04 апр 2016, 13:12 
Не в сети

Зарегистрирован: 25 янв 2016, 14:19
Сообщения: 13
Откуда: Старый Оскол
Карма: 0
Здравствуйте, подскажите пожалуйста, где можно добыть модуль app_viaradius для asterisk?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 04 апр 2016, 14:18 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Polyarnik писал(а):
Здравствуйте, подскажите пожалуйста, где можно добыть модуль app_viaradius для asterisk?


У нас нет такого модуля. Для модуля voiceip у нас есть свой BGRadiusVoip, который можно скачать на странице загрузок. https://bgbilling.ru/v6.2/download.shtml#

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 04 апр 2016, 16:45 
Не в сети

Зарегистрирован: 25 янв 2016, 14:19
Сообщения: 13
Откуда: Старый Оскол
Карма: 0
BGRadiusVoip установлен. Уже даже настроен аккаунтинг с астериском. Теперь загвоздка в авторизации звонков (дабы не уходить в минус).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 04 апр 2016, 17:45 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Polyarnik писал(а):
BGRadiusVoip установлен. Уже даже настроен аккаунтинг с астериском. Теперь загвоздка в авторизации звонков (дабы не уходить в минус).


Опишите подробнее в чем состоит загвоздка? Но сперва опишите вашу задачу, что вы сделали попунктно, чтобы ее решить и что у вас не получилось. Не забывайте указывать используемые версии, конфигурацию, скрипты и тарифы (то, с чем возникли проблемы)

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 05 апр 2016, 11:49 
Не в сети

Зарегистрирован: 25 янв 2016, 14:19
Сообщения: 13
Откуда: Старый Оскол
Карма: 0
Имеем:
1) BGBilling 6.2.783 + BGRadiusVoip
2) Asterisk 13.8.0 + Radiusclient-ng 0.5.6
Задача: аутентификация и аккаунтинг звонков.
Цель: не пропускать и разрывать звонки при пересечении 0 значения баланса на договоре.
На данный момент готова связка asterisk и bgbilling по статье: http://wiki.bitel.ru/index.php/%D0%98%D ... %B2_Radius
Трудность состоит в выборе методики аутентификации звонков (чтобы с asterisk приходили пакеты authentication-request или access-request для передачи в обратную сторону h323-credit-amount=X, h323-credit-time=X, h323-return-code=X)
Как вариант: https://forum.bitel.ru/viewtopic.php?f= ... risk#p5813 , однако о данном модуле для asterisk информация на форуме bitel и оканчивается. На сайте: http://www.voip-info.org/wiki/view/app_viaRadius , ссылка на него недействительная. Другой информации нет (либо невнимательный).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 05 апр 2016, 13:49 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Правильно ли я понимаю, что при авторизации со стороны астерикса биллинг не выдает атрибуты h323-credit-amount=X, h323-credit-time=X, h323-return-code=X, которые бы позволили астериксу вовремя выключить или вообще не пустить абонента?

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 05 апр 2016, 14:13 
Не в сети

Зарегистрирован: 25 янв 2016, 14:19
Сообщения: 13
Откуда: Старый Оскол
Карма: 0
Правильно. На данный момент сделан только аккаунтинг и хочу получить совет, что использовать на астериске, чтобы была еще и аутентификация звонков?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 05 апр 2016, 21:14 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
А запросы авторизации вообще доходят до биллинга? Или вас интересует как это настраивается в астериксе?

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 06 апр 2016, 11:09 
Не в сети

Зарегистрирован: 25 янв 2016, 14:19
Сообщения: 13
Откуда: Старый Оскол
Карма: 0
Приходят только accounting-request, запросы авторизации не отправляются. Посоветуйте какими методами можно настроить отправку запросов авторизации (со стороны астериска). Со стороны биллинга, я так понимаю, достаточно настройки радиус-сервера с добавлением NAS'a в модуле ip-телефония и настройки режимов поиска.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 06 апр 2016, 14:30 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Polyarnik писал(а):
Приходят только accounting-request, запросы авторизации не отправляются. Посоветуйте какими методами можно настроить отправку запросов авторизации (со стороны астериска). Со стороны биллинга, я так понимаю, достаточно настройки радиус-сервера с добавлением NAS'a в модуле ip-телефония и настройки режимов поиска.

Да, со стороны биллинга проблем нет. По астериксу, к сожалению, не силен. Подождем сведующих спецов.

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 06 апр 2016, 14:42 
Не в сети
Клиент

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
cat /etc/asterisk/extensions.conf|grep agi.py:
Код:
;exten => s,1,Agi( agi.py,start,${ARG1},${ARG2},${ARG3},${ARG4});
exten => _X.,n,Agi( agi.py,auth,u_${usr},secret,${CALLERID(num)},${usr},${CHANNEL})
exten => h,1,Agi( agi.py,stop,u_${usr},${CHANNEL},${CALLERID(num)},${usr},${CDR(billsec)})
exten => _8.,n, Agi( agi.py,auth,u_${usr},secret,${usr},${EXTEN},${CHANNEL})
exten => h,1,Agi( agi.py,stop,u_${usr},${CHANNEL},${usr},${callingNUM},${CDR(billsec)})
exten => _9X.,n, Agi( agi.py,auth,u_${usr},secret,${usr},${EXTEN},${CHANNEL})  ; ******
exten => _X.,n, Agi( agi.py,auth,u_${usr},secret,${usr},${EXTEN},${CHANNEL}) ; *******
exten => h,1,Agi( agi.py,stop,u_${usr},${CHANNEL},${usr},${callingNUM},${CDR(billsec)})


cat /usr/share/asterisk/agi-bin/agi.py:
Код:
#!/usr/bin/python
import socket, sys
import pyrad.packet
from pyrad.client import Client
from pyrad.dictionary import Dictionary
import asterisk.agitb, asterisk.agi
asterisk.agitb.enable(display = False, logdir = '/var/log/asterisk/')
agi=asterisk.agi.AGI()
asterisk.agitb.enable(agi, False, '/var/log/asterisk')

def auth(user,password,src,dst,id):
        srv=Client(server="8.8.8.8", secret="12345678", dict=Dictionary("/etc/radiusclient-ng/dictionary", "/etc/radiusclient-ng/dictionary.cisco"))
        req=srv.CreateAuthPacket(code=pyrad.packet.AccessRequest)
        req["NAS-IP-Address"] = "192.168.121.20"
        req["User-Name"] = user
        req["Password"] = req.PwCrypt(password)
        req["Calling-Station-Id"] = src
        req["Called-Station-Id"] = dst
        req["Service-Type"] = 10
        req["h323-conf-id"] = id
        maxdur=0
        try:
                reply=srv.SendPacket(req)
        except pyrad.client.Timeout:
                agi.verbose("RADIUS server does not reply")
                #sys.exit(1)
                return 0
        except socket.error, error:
                agi.verbose("Network error: " + error[1])
                #sys.exit(1)
                return 0
        if reply.code==pyrad.packet.AccessAccept:
                agi.verbose("Access accepted")
                maxdur=int(reply[(9, 102)][0].split("=")[1])*1000
                agi.verbose("Max duration: %d" % maxdur)
        else:
                agi.verbose("Access denied")
                agi.hangup()
        return maxdur
def start(user,id,src,dst):
        srv=Client(server="8.8.8.8", secret="12345678", dict=Dictionary("/etc/radiusclient-ng/dictionary", "/etc/radiusclient-ng/dictionary.cisco"))
        req=srv.CreateAcctPacket()
        req["Acct-Status-Type"]="Start"
        req["NAS-IP-Address"] = "192.168.121.20"
        req["User-Name"] = user
        req["Calling-Station-Id"] = src
        req["Called-Station-Id"] = dst
        req["Acct-Session-Id"] = id
        req["h323-conf-id"] = id
        req["h323-call-type"]="VoIP"
        req["h323-call-origin"]="originate"
        try:
                reply=srv.SendPacket(req)
        except pyrad.client.Timeout:
                agi.verbose("RADIUS server does not reply")
                sys.exit(1)
        except socket.error, error:
                agi.verbose("Network error: " + error[1])
                sys.exit(1)

def stop(user,id,src,dst,dur):
        srv=Client(server="8.8.8.8", secret="12345678", dict=Dictionary("/etc/radiusclient-ng/dictionary", "/etc/radiusclient-ng/dictionary.cisco"))
        req=srv.CreateAcctPacket()
        req["Acct-Status-Type"]="Stop"
        req["NAS-IP-Address"] = "192.168.121.20"
        req["User-Name"] = user
        req["Calling-Station-Id"] = src
        req["Called-Station-Id"] = dst
        req["Acct-Session-Id"] = id
        req["h323-conf-id"] = id
        req["Acct-Session-Time"] = int(dur)
        try:
                reply=srv.SendPacket(req)
        except pyrad.client.Timeout:
                agi.verbose("RADIUS server does not reply")
                sys.exit(1)
        except socket.error, error:
                agi.verbose("Network error: " + error[1])
                sys.exit(1)

agi.verbose("begin")
if sys.argv[1]=="auth":
        if len(sys.argv[2])>1 and len(sys.argv[3]) > 1 and len(sys.argv[4]) >1 and len(sys.argv[5]) >1:
                agi.verbose("auth")
                maxdur=auth(sys.argv[2],sys.argv[3],sys.argv[4],sys.argv[5],sys.argv[6])
                agi.set_variable('maxdur',str(maxdur))
        else:
                agi.verbose("auth: bad params")
elif sys.argv[1]=="start":
       if len(sys.argv[2])>1 and len(sys.argv[3]) > 1 and len(sys.argv[4]) and len(sys.argv[5])>1 :
               agi.verbose("start")
               start(sys.argv[2],sys.argv[3],sys.argv[4],sys.argv[5])
       else:
               agi.verbose("start: bad params")
elif sys.argv[1]=="stop":
        if len(sys.argv[2])>1 and len(sys.argv[3]) > 1 and len(sys.argv[4]) and len(sys.argv[5])>1 :
                agi.verbose("stop")
                stop(sys.argv[2],sys.argv[3],sys.argv[4],sys.argv[5],sys.argv[6])
        else:
                agi.verbose("stop: bad params")
else:
        agi.verbose("bad action")

agi.verbose("end")


Как-то так...
зы:
надо pyst и pyrad пакетики питона
в pyrad/client.py зашиты authport=1812, acctport=1813, можно там поправить,если отличаются. radiusclient-ng ващето нафиг не нужен, тока диктионарий от него

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 06 апр 2016, 17:55 
Не в сети

Зарегистрирован: 25 янв 2016, 14:19
Сообщения: 13
Откуда: Старый Оскол
Карма: 0
Установил пакеты pyst и pyrad, подправил в /usr/share/pyshared/pyrad/client.py порты. В /usr/share/asterisk/agi-bin/ отсутствовал файл agi.py. Добавил вручную и внёс указанную информацию, предварительно подправив адрес и пароль сервера биллинга, а так же ip nas'a. Осталась проблема с extensions.conf. Пробую добавлять в него, например [sip-auth] и далее указанный код, а в sip.conf к записи телефона context=sip-auth. В итоге выдает ошибку: Call from XXX to extension XXX rejected because extensions not found in context 'sip-auth'. Причем на asterisk данный контекст регистрацию проходит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 07 апр 2016, 16:33 
Не в сети
Клиент

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
sip.conf:
Код:
[u_sets](!)
type = friend
context = 499_IP
t38pt_udptl=yes
host = dynamic
canreinvite = no
call-limit = 1
disallow = all
allow = g729
allow = g723
allow = alaw
dtmfmode=rfc2833

[XXXXXXXX](u_sets)
secret = xxxxxxxxx
callerid = XXXXXXXX
call-limit = 2
defaultip = 10.0.9.211


extensions.conf:
Код:
[499_IP]
exten => _X.,1, Set(usr=${CALLERID(num)})
exten => _X.,n, Set(callingNUM=${EXTEN})
exten => _X.,n, Set(CALLERID(num)=499${CALLERID(num)})
exten => _X.,n, Agi(utm5-agi.py,auth,u_${usr},secret,${usr},${EXTEN},${CHANNEL})
exten => _X.,n, GoTo(outgoing_TOTAL,,1)

[outgoing_TOTAL]
exten => h,1,Agi(utm5-agi.py,stop,u_${usr},${CHANNEL},${usr},${callingNUM},${CDR(billsec)})

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 12 апр 2016, 11:55 
Не в сети

Зарегистрирован: 25 янв 2016, 14:19
Сообщения: 13
Откуда: Старый Оскол
Карма: 0
Уже лучше, вот лог звонка (с XXXXX0 на XXXXX1):
-- Executing [XXXXX1@499_IP:1] Set("SIP/XXXXX0-00000000", "usr=XXXXX0") in new stack
-- Executing [XXXXX1@499_IP:2] Set("SIP/XXXXX0-00000000", "callingNUM=XXXXX1") in new stack
-- Executing [XXXXX1@499_IP:3] Set("SIP/XXXXX0-00000000", "CALLERID(num)=499XXXXX0") in new stack
-- Executing [XXXXX1@499_IP:4] AGI("SIP/XXXXX0-00000000", "utm5-agi.py,auth,u_XXXXX0,secret,XXXXX0,XXXXX1,SIP/XXXXX0-00000000") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/utm5-agi.py
-- <SIP/XXXXX0-00000000>AGI Script utm5-agi.py completed, returning 0
-- Auto fallthrough, channel 'SIP/XXXXX0-00000000' status is 'UNKNOWN'

Пока, к сожалению, звонки не проходят.
в CALLERID(num) - 499, я так понимаю для меня лишнее? (пробовал без него, результат тот же)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 12 апр 2016, 12:18 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
А в биллинг запрос доходит? что при этом в radius.log?

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 12 апр 2016, 12:26 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Также напишите, как у вас заведен тип логина, в каком поле пакетов авторизации приходят логин/пароль...

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 12 апр 2016, 12:31 
Не в сети

Зарегистрирован: 25 янв 2016, 14:19
Сообщения: 13
Откуда: Старый Оскол
Карма: 0
Пока еще проблемы на стороне астериска, в сторону биллинга пакеты не отправляются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 12 апр 2016, 12:40 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Возможно, ok-2004 подсобит по астериксу..

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 12 апр 2016, 16:15 
Не в сети

Зарегистрирован: 25 янв 2016, 14:19
Сообщения: 13
Откуда: Старый Оскол
Карма: 0
Интересная вещь, скрипту не понравился словарь dictionary.cisco, хотя для accounting'a по http://wiki.bitel.ru/index.php/%D0%98%D ... %B2_Radius он подходил.
На данный момент пакеты от астериск отправляются. В радиус.лог выходит сообщение RadiusProcessor - addr is of illegal length. В пакете отправляется NAS-IP-Address, User-Name, User-Password, Calling-Station-Id, Called-Station-Id.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 12 апр 2016, 16:45 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Нужно смотреть, как у вас настроен нас, типы логинов, dictionary и т.п.

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Asterisk и Radius Authentification
СообщениеДобавлено: 12 апр 2016, 17:36 
Не в сети

Зарегистрирован: 25 янв 2016, 14:19
Сообщения: 13
Откуда: Старый Оскол
Карма: 0
NAS: вендор Cisco. ip, идентификатор и секрет установлены
Конфигурация:
auth.in=VOIP/answer
auth.out=VOIP/originate
acct.in=VOIP/answer
acct.out=VOIP/originate
service=240
find.order=1
acct.logError=1
auth.income.full=1
Типы логинов: все поиски по User-Name=Alias. Тарификация исходящих: по номеру звонящего, входящих - не тарифицировать. Опции: использовать DC-фильтр, обсчет при каждом звонке.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.106s | 70 Queries | GZIP : On ]