This is more for the dev people. But I would assume that there is some pointer set to the current avp index and thats the slot which is returned when accessing without an explicit index. Each time an avp value is pushed, it updates that pointer to point to that index, which is not done by the route_to_gw function.
Perhaps this is a bug. On Jul 2, 2015 8:34 AM, "Newlin, Ben" <[email protected]> wrote: > Yes, accessing the AVP without an index returns the same value as > accessing with index 0. > > Ben Newlin > > From: <Podrigal>, Aron > Reply-To: OpenSIPS users mailling list > Date: Wednesday, July 1, 2015 at 8:33 PM > To: OpenSIPS users mailling list > Subject: Re: [OpenSIPS-Users] Route_to_gw not pushing gw_id to the first > index of avp > > > On Jul 1, 2015 3:44 PM, "Newlin, Ben" <[email protected]> wrote: > > > > Sorry, actually the documentation confused me. > > > > You are correct in the way that it should work if the do_routing() and > route_to_gw() are really pushing the functions on the end of the AVP. > However, they must not be doing that because that is not the operation. To > modify your example: > > > > # first time avp_gw_id is set > > is_from_gw(, i); # function adds gw1 to AVP > > > > If I access the AVP without an index I get gw1. > > > > route_to_gw("gw2,gw3,gw4"); > > # function adds gw2, gw3, gw4 to AVP > > > > If I access the AVP without an index I still get gw1. Accessing AVP[1] > gives gw2. > Is that that accessing the avp without a index the same as accessing > AVP[0]? > > > > Ben Newlin > > > > From: <Newlin>, "Newlin, Ben" > > > > Reply-To: OpenSIPS users mailling list > > Date: Wednesday, July 1, 2015 at 2:40 PM > > > > To: OpenSIPS users mailling list > > Subject: Re: [OpenSIPS-Users] Route_to_gw not pushing gw_id to the first > index of avp > > > > No, that is wrong. > > > > "If no index is given, the first value will be returned.” [1] > > > > [1] http://www.opensips.org/Documentation/Script-CoreVar-1-11#toc2 > > > > Ben Newlin > > > > From: <Podrigal>, Aron > > Reply-To: OpenSIPS users mailling list > > Date: Wednesday, July 1, 2015 at 1:29 PM > > To: OpenSIPS users mailling list > > Subject: Re: [OpenSIPS-Users] Route_to_gw not pushing gw_id to the first > index of avp > > > > When accessing an avp without explicit index isn't it returning the last > index? > > > > # first time svp_gw_id is set > > is_from_gw(, i); # avp now has (1) > > > > route_to_gw("gw2,gw3,gw4"); > > # avp now has (gw1, gw2); > > > > if we now access the avp, we can either get explicitly the specific > index, or we get the last index which is `gw2`. > > So if I'm not mistaken, then I don't understand what the problem is here? > > > > > > Correct me if this is wrong. > > > > On Wed, Jul 1, 2015 at 11:46 AM, Newlin, Ben <[email protected]> > wrote: > >> > >> I found similar behavior in my implementation, except that I use > dr_routing() instead of route_to_gw(). When the AVP is already populated, > these functions simply push on the end. This may be an implementation > decision, but it is certainly not intuitive or what I expected. > >> > >> I am currently using the same workaround of clearing out the AVPs prior > to each DROUTING module call that populates them. > >> > >> Ben Newlin > >> > >> From: Patrick Wakano > >> Reply-To: OpenSIPS users mailling list > >> Date: Wednesday, July 1, 2015 at 11:41 AM > >> To: OpenSIPS users mailling list > >> Subject: Re: [OpenSIPS-Users] Route_to_gw not pushing gw_id to the > first index of avp > >> > >> Hello Aron, > >> After calling is_from_gw("-1","i") I don't need to use the index, > because it is the only value hold by the avp, but later in my script, if I > call route_to_gw() and use $avp(dr_gw_id), it still has the value > previously pushed by is_from_gw(). Then to get the gw id pushed by > route_to_gw() I have either to use the avp index (e.g. $avp(dr_gw_id)[1]) > or I set $avp(dr_gw_id) to null before calling route_to_gw() (which is what > I am doing now). > >> > >> > >> On Wed, Jul 1, 2015 at 9:50 AM, Podrigal, Aron < > [email protected]> wrote: > >>> > >>> I guess pushing to the last index of the avp is what's expected. > >>> > >>> But how did you retrieve the gw_id from is_from_gw, did you use an > explicit index? > >>> > >>> On Jul 1, 2015 8:16 AM, "Patrick Wakano" <[email protected]> wrote: > >>>> > >>>> Hello Opensips list, > >>>> > >>>> When using the route_to_gw() function, I noticed that the gw_id that > is pushed back to the avp wasn't matching the address actually selected by > the drouting engine. > >>>> After some investigation I noticed that earlier in my script I was > calling the is_from_gw() function with the 'i' flag which also pushes the > gw_id to the avp and this was the value I was seeing in my avp after > calling the route_to_gw(). > >>>> By debuging with the avp_print() function I could see that the > route_to_gw() does not pushes the gw_id to first index of the avp, but to > the end of it. Any reason for that or is it a bug? > >>>> > >>>> Regards, > >>>> > >>>> Patrick > >>>> > >>>> _______________________________________________ > >>>> 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 > >>> > >> > >> > >> _______________________________________________ > >> Users mailing list > >> [email protected] > >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > >> > > > > > > > > -- > > Aron Podrigal > > - > > //Be happy :-) > > > > _______________________________________________ > > 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 > >
_______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
