[OpenSIPS-Users] Route_to_gw not pushing gw_id to the first index of avp

Podrigal, Aron aronp at guaranteedplus.com
Thu Jul 2 18:27:22 CEST 2015


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" <Ben.Newlin at inin.com> 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" <Ben.Newlin at inin.com> 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 <Ben.Newlin at inin.com>
> 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 <
> aronp at guaranteedplus.com> 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" <pwakano at gmail.com> 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
> >>>> Users at lists.opensips.org
> >>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >>>>
> >>>
> >>> _______________________________________________
> >>> Users mailing list
> >>> Users at lists.opensips.org
> >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >>>
> >>
> >>
> >> _______________________________________________
> >> Users mailing list
> >> Users at lists.opensips.org
> >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >>
> >
> >
> >
> > --
> > Aron Podrigal
> > -
> > //Be happy :-)
> >
> > _______________________________________________
> > Users mailing list
> > Users at lists.opensips.org
> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20150702/0112da2a/attachment.htm>


More information about the Users mailing list