[OpenSIPS-Users] rtpengine (setid_avp) issue with BYE and CANCEL
Mickael Hubert
mickael at winlux.fr
Tue Nov 20 09:23:37 EST 2018
I have to use local cache to workaround.
*In INVITE statement:*
$avp(setid) = 1; # group of rtp engine servers / Ex: 1 for FR / 2 for USA
if(cache_store("local","$ci","$avp(setid)",1200)) { xlog("L_INFO","$ci --
Cache Store Name: $ci with port: $avp(setid)\n");
*in CANCEL statement:*
if(cache_fetch("local","$ci",$avp(setid)))
{
xlog("L_INFO","$ci -- Cache fetch Name: $ci with port:
$avp(setid)\n");
cache_remove("local","$ci");
}
$avp(setid) = $(avp(setid){s.int});
And it's not clean but works like a charm.
@Răzvan if you have an idea about the CANCEL issue with $dlg_val is not
populate, I'm interesting ;)
thanks
Le mar. 20 nov. 2018 à 13:58, Mickael Hubert <mickael at winlux.fr> a écrit :
> OK thanks, I will write something about that ;)
>
> I tested your solution, it works for BYE but not force CANCEL.
> Indeed, for BYE from my SBC enters in loose_route statement, but not for a
> CANCEL.
>
> is there a simplest way to choose the good rtpengine ? I want use a group
> of rtpengine (like id:1) for Europe and other group (like id:2) for USA.
>
> ++
>
> Le mar. 20 nov. 2018 à 13:45, Răzvan Crainea <razvan at opensips.org> a
> écrit :
>
>> No, it only survives until the end of transaction :).
>> I agree it would be nice to have it persistent throughout the dialog,
>> but that's not in there yet. But you can always open a feature request
>> for this :):
>>
>> https://github.com/OpenSIPS/opensips/issues
>>
>> Best regards,
>> Răzvan
>>
>> On 11/20/18 12:15 PM, Mickael Hubert wrote:
>> > Hi Răzvan,
>> > thanks a lot for your answer !
>> >
>> > Ok I will try this workaround
>> > But I don't understand the rtpengine module documentation
>> > (http://www.opensips.org/html/docs/modules/2.4.x/rtpengine.html)
>> >
>> > If I have -> modparam("rtpengine", "setid_avp", "$avp(setid)") and I
>> set
>> > setid_avp to 1 (for my example) just once, before rtpengine_manage,
>> this
>> > variable should survives until the end no ?
>> >
>> >
>> > ++
>> >
>> >
>> >
>> > Le mar. 20 nov. 2018 à 09:43, Răzvan Crainea <razvan at opensips.org
>> > <mailto:razvan at opensips.org>> a écrit :
>> >
>> > Hi, Mickael!
>> >
>> > AVPs are only available during transaction - initial request and its
>> > replies, but it is not avaialble to sequential requests (such as
>> CANCEL
>> > or BYE). If you want to store a value throughout the entire dialog,
>> you
>> > should save the variable in a dialog variable[1], something like
>> this:
>> >
>> > # initial INVITE
>> > $avp(setid) = 1;
>> > create_dialog();
>> > $dlg_val(setid) = $avp(setid);
>> >
>> > # CANCEL or BYE, *after* loose_route() is called
>> > # so that the dialog is matched/found
>> > loose_route();
>> > $avp(setid) = $dlg_val(setid);
>> >
>> > Hope this helps.
>> >
>> > [1] https://opensips.org/html/docs/modules/2.4.x/dialog#pv_dlg_val
>> >
>> > Best regards,
>> > Răzvan
>> >
>> > On 11/19/18 6:01 PM, Mickael Hubert wrote:
>> > > Hi all,
>> > > I have a rtpengine with opensips, when I use rtpengine without
>> > setid_avp
>> > > all works like a charm
>> > >
>> > > modparam("rtpengine", "rtpengine_sock", "udp:10.13.0.129:12221
>> > <http://10.13.0.129:12221>
>> > > <http://10.13.0.129:12221>")
>> > >
>> > > _When I want use setid_avp:_
>> > >
>> > > modparam("rtpengine", "setid_avp", "$avp(setid)")
>> > > modparam("rtpengine", "rtpengine_sock", "1 ==
>> > udp:10.13.0.129:12221 <http://10.13.0.129:12221>
>> > > <http://10.13.0.129:12221>")
>> > >
>> > > _I call manage function in initial INVITE:_
>> > >
>> > > $avp(setid) = 1;
>> > > create_dialog();
>> > > xlog("L_INFO","setid: $avp(setid)\n");
>> > > if(rtpengine_manage("ICE=remove"))
>> > > {
>> > > xlog("L_INFO","SDP Offer: $ci for INVITE\n");
>> > > }
>> > >
>> > > for an reply $avp(setid) is populate, and rtpengine works.
>> > >
>> > > _but for BYE and CANCEL I have an issue:_
>> > > _
>> > > _
>> > > you can see the setid variable isn't populate for this CANCEL,
>> > but it is
>> > > populate for 487 reply !
>> > > I have this error log: ERROR:rtpengine:select_rtpe_node: script
>> > error
>> > > -no valid set selected / ERROR:rtpengine:rtpe_function_call: no
>> > > available proxies
>> > >
>> > > When I force the setid to 1 for BYE and CANCEL, there isn't
>> issue.
>> > >
>> > > However, the module documentation explains :
>> > > /IMPORTANT: if you use multiple sets, take care and use the same
>> > set for
>> > > both rtpengine_offer()/rtpengine_answer() and
>> rtpengine_delete()!!
>> > > /
>> > > /If the set was selected using setid_avp, the avp needs to be set
>> > only
>> > > once before rtpengine_offer() or rtpengine_manage() call. /
>> > >
>> > > Can you help me please ?
>> > >
>> > > thanks in advance
>> > >
>> > > PS: same issue with BYE method
>> > > __
>> > >
>> > > __
>> > >
>> > > Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22531]:
>> > >
>> >
>> ################################################################################
>> > > Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22531]:
>> > CANCEL END
>> > > OF CALL : call-id 1def6e7f-66b6-1237-7b9d-0050569229dc
>> > > Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22531]:
>> > >
>> >
>> ################################################################################
>> > > Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22531]:
>> > setid: <null>
>> > > Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22531]:
>> > > *ERROR:rtpengine:select_rtpe_node: script error -no valid set
>> > selected*
>> > > Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22531]:
>> > > *ERROR:rtpengine:rtpe_function_call: no available proxies*
>> > > Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22521]:
>> > > 1def6e7f-66b6-1237-7b9d-0050569229dc In ONREPLY ROUTE 2 - fu :
>> > > sip:+******@am-isbc1-******** , ru : <null> , si : 10.13.0.80,
>> > status : 487
>> > > Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22521]:
>> > setid: 1
>> > >
>> > > if (is_method("CANCEL"))
>> > > {
>> > >
>> > >
>> >
>> xlog("L_INFO","################################################################################
>> >
>> > > \n");
>> > > xlog("L_INFO","CANCEL END OF CALL : call-id $ci \n");
>> > >
>> > >
>> >
>> xlog("L_INFO","################################################################################
>> >
>> > > \n");
>> > > xlog("L_INFO","setid: $avp(setid)\n");
>> > > if(rtpengine_manage("ICE=remove"))
>> > > {
>> > > xlog("L_INFO","SDP Offer: $ci for CANCEL\n");
>> > > }
>> > > .............
>> > >
>> > >
>> > >
>> > >
>> > >
>> > >
>> > > _______________________________________________
>> > > Users mailing list
>> > > Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>> > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>> > >
>> >
>> > --
>> > Răzvan Crainea
>> > OpenSIPS Core Developer
>> > http://www.opensips-solutions.com
>> >
>> > _______________________________________________
>> > Users mailing list
>> > Users at lists.opensips.org <mailto: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
>> >
>>
>> --
>> Răzvan Crainea
>> OpenSIPS Core Developer
>> http://www.opensips-solutions.com
>>
>> _______________________________________________
>> 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/20181120/267b0b33/attachment.html>
More information about the Users
mailing list