Перейти к содержимому
Калькуляторы

Биллинг на базе FreeRadius Radius attribute Digest-Attributes

Добрый день!

 

Пытаюсь доработать свой биллинг для поддержки 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.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Похоже модуль не конвертирует атрибуты, нашел пример:

"rlm_digest: Converting Digest-Attributes to something sane... "

Кто может подсказать причину?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

rad_recv: Access-Request packet from host 192.168.102.3 port 40438, id=221, length=252
        User-Name = "tma@voip.zet"
        Digest-Attributes = "\n\005tma"
        Digest-Attributes = "\001\nvoip.zet"
        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 "voip.zet" for User-Name = "tma@voip.zet"
[suffix] No such realm "voip.zet"

 

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

Словарь неправильный или еще что-нибудь?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день!

 

Проблему с разбором атрибутов решил. Оказалось, что нужно вернуть пароль и digest модуль сам все разберет.

Но т.к. возвращать пароль наобум нельзя, я думаю, то пришлось писать свой разбор атрибутов на pgplsql (у меня PostgreSQL).

 

Но, возник новый вопрос -- какие нужно возвращать атрибуты в случае с SIP-сессией?

Сейчас freeradius получает от SQL-сервера следующие атрибуты:

 h323-return-code=0
h323-credit-amount=2137.15
h323-currency=RUB
h323-billing-model=2
h323-ivr-in=terminal-alias:^$

 

Что нужно вернуть для SIP-сервера?

Заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.