Radius attribute Digest-Attributes
Добрый день!
Пытаюсь доработать свой биллинг для поддержки Digest авторизации.
На настоящий момент есть следующая проблема.
Есть пакет 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.
Натолкните, пожалуйста, на мысль! Ссылки приветствуются!
|