[OpenSIPS-Users] radius_send_auth returns Vendor Specific Attributes
John Quick
john.quick at smartvox.co.uk
Tue Apr 8 11:38:11 CEST 2014
You could add a modparam option to make it keep working as before or in the
new way, then set default for that parameter to "old way".
John
-----Original Message-----
From: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
Sent: 07 April 2014 23:00
To: john.quick at smartvox.co.uk
Cc: 'OpenSIPS users mailling list'
Subject: Re: [OpenSIPS-Users] radius_send_auth returns Vendor Specific
Attributes
I'm glad it works.
I definitely think this must be pushed as bug fix (as it poses serious
limitations) , but we need to be very careful to backward compatibility
(which may be affected)...do you see any way nicely deal with this ?
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 07.04.2014 18:22, John Quick wrote:
> Bogdan,
>
> That seems to have fixed it. Thanks.
>
> John
>
>
> -----Original Message-----
> From: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
> Sent: 04 April 2014 16:15
> To: john.quick at smartvox.co.uk
> Cc: 'OpenSIPS users mailling list'
> Subject: Re: [OpenSIPS-Users] radius_send_auth returns Vendor Specific
> Attributes
>
> Hi John,
>
> There was a small bug - please test this new attached patch (remove
> the prev one).
>
> Regards,
>
> Bogdan-Andrei Iancu
> OpenSIPS Founder and Developer
> http://www.opensips-solutions.com
>
> On 04.04.2014 17:29, John Quick wrote:
>> Hi Bogdan,
>>
>> From my initial testing, I think the inner while loop never terminates.
>> Luckily I added a trap using an integer counter with a limit of 40
>> iterations.
>> What is it in the call to rc_avpair_get() that allows it to cycle
>> through each instance with a matching name rather than just keep
>> getting the first instance?
>>
>> John
>>
>>
>> -----Original Message-----
>> From: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
>> Sent: 03 April 2014 17:21
>> To: john.quick at smartvox.co.uk
>> Cc: 'OpenSIPS users mailling list'
>> Subject: Re: [OpenSIPS-Users] radius_send_auth returns Vendor
>> Specific Attributes
>>
>> John - please try the attached patch, with all the disclaimers it was
>> not tested :)
>>
>> Regards,
>>
>> Bogdan-Andrei Iancu
>> OpenSIPS Founder and Developer
>> http://www.opensips-solutions.com
>>
>> On 03.04.2014 19:13, John Quick wrote:
>>> Hi Bogdan,
>>>
>>> If the variable is a var, at the moment you would only get the first
>> value.
>>> After modification, you would only get the last value. I agree this
>>> is changed behaviour, but one case does not seem to me to be any
>>> worse than the other. The advantage that multiple values *can* be
>>> returned in an AVP seems to me to outweigh the risk of changed
>>> behaviour on the next release of OpenSIPS. For me, it would be a
>>> great advantage to be able to retrieve multiple values where this is
>>> not
> possible at the moment.
>>> If you are able to send me the diff file (or simply a description)
>>> for the changes, I would be happy to test it here.
>>>
>>> Thanks for responding.
>>>
>>> John
>>>
>>> -----Original Message-----
>>> From: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
>>> Sent: 03 April 2014 16:53
>>> To: john.quick at smartvox.co.uk
>>> Cc: 'OpenSIPS users mailling list'
>>> Subject: Re: [OpenSIPS-Users] radius_send_auth returns Vendor
>>> Specific Attributes
>>>
>>> John,
>>>
>>> We could do that (pushing back to OpenSIPS all values for that
>>> RADIUS AVP), but it may be dangerous if you use on the OpenSIPS side
>>> a variable that does not support multiple values - actually the AVPs
>>> are the
>> only one doing that.
>>> Imagine the RADIUS reply returns multiple instances on an RADIUS AVP.
>>> And you use a $var() variable to get the value - each value will be
>>> pushed to that $var(), but as it can hold only one value, it will
>>> keep being overwritten -> only last value will be actually available.
>>> If this behavior is not a problem, we can fix the code and iterate
>>> through the entire list of RADIUS AVP and get all instances.
>>>
>>> Regards,
>>>
>>> Bogdan-Andrei Iancu
>>> OpenSIPS Founder and Developer
>>> http://www.opensips-solutions.com
>>>
>>> On 02.04.2014 10:20, John Quick wrote:
>>>> Bogdan,
>>>>
>>>> I was hoping to get all the values returned in 1 avp, the avp
>>>> defined for Cisco-AVPairs in set2. This takes advantage of the
>>>> ability of OpenSIPS avps to hold multiple indexed values and also
>>>> means minimal changes to the documentation of the aaa_radius module.
>>>> If you add a numeric index in the set definition, you must know
>>>> which position the required attribute is in and it is even possible
>>>> the server may return
>>> them in a different order.
>>>> Also, if you want to retrieve 10 values this makes the set2
>>>> definition very big and clumsy. Adding an index in the set
>>>> definition would only be a good solution if the index was a string
>>>> identifying the Attribute name within Cisco-AVPairs.
>>>>
>>>> I would be very happy to test if you can show me what changes need
>>>> to be made in the sources. I would have tried it already, but
>>>> wasn't sure how to add multiple values to the avp.
>>>>
>>>> John
>>>>
>>>> -----Original Message-----
>>>> From: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
>>>> Sent: 01 April 2014 22:49
>>>> To: john.quick at smartvox.co.uk
>>>> Cc: 'OpenSIPS users mailling list'
>>>> Subject: Re: [OpenSIPS-Users] radius_send_auth returns Vendor
>>>> Specific Attributes
>>>>
>>>> John,
>>>>
>>>> I understand the issue and agree over the need of a solution. Two
>>>> possible
>>>> approaches:
>>>> - return all the values for that radius AVP
>>>> - include an index in the set definition - to say which
>>>> instance of the radius AVP you are looking for
>>>>
>>>> Regards,
>>>>
>>>> Bogdan-Andrei Iancu
>>>> OpenSIPS Founder and Developer
>>>> http://www.opensips-solutions.com
>>>>
>>>> On 01.04.2014 21:29, John Quick wrote:
>>>>> Hi Bogdan,
>>>>>
>>>>> Yes absolutely certain. I used Wireshark to check.
>>>>>
>>>>> I did make a little progress with this problem after finding some
>>>>> info on the Internet.
>>>>> The name that has to be used in set2 is "Cisco-AVPair". This
>>>>> allows me to retrieve just one VSA value.
>>>>> The *real* problem is that you cannot retrieve values 2, 3, 4, etc.
>>>>> This is because multiple instances are returned using the same VSA.
>>>>> They are all returned by the server in the attribute called
>>>>> h323-ivr-in. I even found the code in the sources that retrieves them.
>>>>> It loops through every instance in
>>>>> set2 and looks for 1 matching value. So even if you add "Cisco-AVPair"
>>>>> several times into set2 all you get is the first matching value
>>>>> many
>>>> times.
>>>>> John
>>>>>
>>>>> -----Original Message-----
>>>>> From: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
>>>>> Sent: 01 April 2014 19:15
>>>>> To: john.quick at smartvox.co.uk; OpenSIPS users mailling list
>>>>> Subject: Re: [OpenSIPS-Users] radius_send_auth returns Vendor
>>>>> Specific Attributes
>>>>>
>>>>> Hi John,
>>>>>
>>>>> It may be a stupid question, but are you sure the AVP does exist
>>>>> in the RADIUS reply ?
>>>>>
>>>>> Regards,
>>>>>
>>>>> Bogdan-Andrei Iancu
>>>>> OpenSIPS Founder and Developer
>>>>> http://www.opensips-solutions.com
>>>>>
>>>>> On 28.03.2014 13:23, John Quick wrote:
>>>>>> Hi,
>>>>>>
>>>>>> With help from this forum, I have just got radius_send_auth working.
>>>>>> I needed some extra dictionaries including dictionary.cisco In
>>>>>> that dictionary, there are vendor specific attributes like this:
>>>>>> ATTRIBUTE h323-ivr-in 100 string
>>>>>> Cisco
>>>>>> ATTRIBUTE h323-credit-amount 101 string
>>>>>> Cisco
>>>>>>
>>>>>> My Radius server returns some data using these VSA's. In
>>>>>> particular, it returns many values using the same VSA -
>>>>>> h323-ivr-in
>>>>>>
>>>>>> I am having trouble recovering the returned values using set2 of
>>>>>> radius_send_auth Can anyone advise me how I should define set2 to
>>>>>> get at these returned values? I have tried the following with no
>>> success:
>>>>>> modparam("aaa_radius", "sets", "set2 =
>>>>>> (h323-return-code=$avp(retcode),
>>>>>> h323-ivr-in=$avp(authretvals))")
>>>>>>
>>>>>> After the function is called, there are no values in
>>>>>> $avp(authretvals)
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> John Quick
>>>>>> Smartvox Limited
>>>>>> Web: www.smartvox.co.uk
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Users mailing list
>>>>>> Users at lists.opensips.org
>>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>>>
>>>>>>
>>
>
>
More information about the Users
mailing list