AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Radius attribute Digest-Attributes

Биллинг 4 сообщений -
#1

Добрый день!

Пытаюсь доработать свой биллинг для поддержки Digest авторизации (биллинг базируется на биллинге от gnugk).
На настоящий момент есть следующая проблема.
Есть пакет radius'а от Yate к FreeRadius:
Код:

User-Name = "tma"
Service-Type = Sip-Session
Cisco-AVPair = "h323-session-protocol=sipv2"
NAS-Identifier = "Yate"
NAS-IP-Address = 192.168.128.3
Digest-Response = "fa96fef0b9320ae074838911df257a64"
Digest-Attributes = "\002-851e610d10581ae4ed5e8be9a1bb84fe.1226160482"
Digest-Attributes = "\003\nREGISTER"
Digest-Attributes = "\004\023sip:10.0.0.1:5061"
Digest-Attributes = "\n\005tma"
Digest-Attributes = "\001\006Yate"
Digest-Attributes = "\006\005MD5"
h323-remote-address = "h323-remote-address=10.0.0.20"


Вопрос -- как в программе разобрать аттрибут Digest-Attributes на составляющие?
Можно, конечно, в конфиге написать что-то типа Digest-Attributes='%{Digest-Attributes[2]}' (как массив), но это не правильно, т.к. если вдруг поменяется
порядок следования аттрибутов, то все нарушится. А в примере FreeRadius порядок как раз иной:
Код:

NAS-IP-Address = d5 89 45 26 (213.137.69.38)
NAS-Port-Type = 5 (Virtual)
User-Name = "12345678"
Digest-Response (206) = "2ae133421cda65d67dc50d13ba0eb9bc"
Digest-Attributes (207) = [Realm (1) = "deltathree"]
Digest-Attributes (207) = [Nonce (2) = "3bada1a0"]
Digest-Attributes (207) = [Method (3) = "INVITE"]
Digest-Attributes (207) = [URI (4) = "sip:97226491335@213.137.69.38"]
Digest-Attributes (207) = [Algorithm (5) = "md5"]
Digest-Attributes (207) = [User-Name (10) = "12345678"]


Пример взят из draft-sterman-aaa-sip-00.txt.

Натолкните, пожалуйста, на мысль! Ссылки приветствуются!

_________________
Maksim Timofejev
#2

Похоже модуль не конвертирует атрибуты, нашел пример:
"rlm_digest: Converting Digest-Attributes to something sane... "
Кто может подсказать причину?

_________________
Maksim Timofejev
#3

Попробовал OpenSER, получил тот же самый результат:

Код:
rad_recv: Access-Request packet from host 192.168.102.3 port 40438, id=221, length=252
User-Name = "tma@realm"
Digest-Attributes = "\n\005tma"
Digest-Attributes = "\001\nrealm"
Digest-Attributes = "\002*4919a559371dcf3469748a4e19d18aa3f38f8fcc"
Digest-Attributes = "\004\030sip:192.168.102.3:5061"
Digest-Attributes = "\003\nREGISTER"
Digest-Response = "185bf4620df28f6aa6752b18f241c186"
Service-Type = Sip-Session
Sip-Uri-User = "tma"
Cisco-AVPair = "call-id=NDY3MWM2ZTVjMjZlYTA5YjFkNzA1OGRlODFiOGQyYmQ."
NAS-Port = 5060
NAS-IP-Address = 192.168.102.3
+- entering group authorize {...}
++[preprocess] returns ok
[digest] Adding Auth-Type = DIGEST
++[digest] returns ok
[suffix] Looking up realm "realm" for User-Name = "tma@realm"
[suffix] No such realm "realm"


В чем я могу ошибаться?

P.S. FreeRADIUS обновил до 2.1.1.

_________________
Maksim Timofejev


Последний раз редактировалось: tma (Чт Ноя 13, 2008 12:04)
#4

Люди, ау!
Неужели никто не знает?
По-моему проблема в словаре, но я не знаю где взять нормальный!
HELP!!! Mad

_________________
Maksim Timofejev