Bogdan, That seems to have fixed it. Thanks.
John -----Original Message----- From: Bogdan-Andrei Iancu [mailto:[email protected]] Sent: 04 April 2014 16:15 To: [email protected] 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:[email protected]] > Sent: 03 April 2014 17:21 > To: [email protected] > 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:[email protected]] >> Sent: 03 April 2014 16:53 >> To: [email protected] >> 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:[email protected]] >>> Sent: 01 April 2014 22:49 >>> To: [email protected] >>> 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:[email protected]] >>>> Sent: 01 April 2014 19:15 >>>> To: [email protected]; 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 >>>>> [email protected] >>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>>>> >>>>> >> > > _______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
